Tengo problemas para calcular la implementación CRC-16 de una matriz de bytes en java. Básicamente, estoy tratando de enviar bytes a una RFID que comienza a escribir en una etiqueta. Puedo ver el valor de la suma de comprobación de la matriz mirando el comando tcpdump en mac. Pero mi objetivo es generarlo solo. Aquí está mi matriz de bytes que deben generar 0xBE, 0xd9:crc16 implementation java
byte[] bytes = new byte[]{(byte) 0x55,(byte) 0x08,(byte) 0x68, (byte) 0x14,
(byte) 0x93, (byte) 0x01, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x06,
(byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0x00,
(byte) 0x13, (byte) 0x50, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x22, (byte) 0x09, (byte) 0x11};
0x55 es el encabezado. Como dice la documentación, será excluido.
Cada vez que pruebo esta matriz en java (con 0xbe, 0xd9), funciona la RFID. Mi problema es la generación de esos valores de suma de comprobación. Busqué en casi toda la web pero no tuve oportunidad. No pude encontrar ningún algoritmo que produzca 0xbe, 0xd9.
Cualquier idea es bienvenida para mí. Gracias por adelantado.
edición: here is the protocol que dotado de RFID
No sé cómo agradecerte. Muy acertado. Pero no puedo evitar preguntar, ¿cuál ves como el problema entre esos dos? –