Pregunta

Me estoy comunicando con un dispositivo a través de serie a través de la clase de .NET SerialPort y en base a los requisitos de especificación dispositivo de terceros que necesito para calcular un "bloque de caracteres de verificación". La única información que me han dicho es que es un operación OR exclusiva (XOR) y debe llevarse a cabo sobre todos los personajes.

Así que si tengo la cadena "Bob, 001" ¿cómo se calculará el BCC?

¿Fue útil?

Solución

Lo más probable es XOR basada en caracteres. Tendrá que obtener muestras de ellos para verificar pero la mayoría de las sumas de comprobación por lo general terminan en 0.

Así que, por una suma de comprobación XOR, que tendría el paquete:

Bob,001X

donde X es la suma de comprobación y, cuando XOR todos los personajes juntos, que había más probable es obtener 0.

Por lo tanto, para resolver X, sólo XOR todos los personajes de "Bob, 001". Eso es por virtud del hecho de que la N XOR N es siempre 0, para cualquier n.

Ahora bien, puede ser que X será de dos caracteres hexadecimales si todo lo que les permite tener es alfanuméricos. Es por eso que necesita ya sea datos de la muestra (por lo que podemos trabajar hacia fuera) o una especificación adecuada (que debe ser proporcionada por el fabricante del dispositivo).

Lo que es el dispositivo real que usted se refiere? Puede ser que hay información en la web que muestra cómo hacerlo.

Con base en la actualización:

  

Es un dispositivo de hospitalidad PMS de Amadeus. No todo lo que dicen es que debe realizarse sobre todos los caracteres. con exclusión de la STX y ETX.

Usted tendrá que obtener algunos datos de la muestra para confirmar pero es probable que un flujo de datos algo como:

        Running
Data     ChkSum
======  =======
STX 02
B   42     42
o   6f     2d
b   62     4f
,   2c     63
0   30     53
0   30     63
1   31     52
4   52     00
ETX 03

La posición de la suma de control puede variar y, de hecho, es el cálculo puede variar también, aunque eso es mucho menos probable. No creo que mucho más se puede hacer sin datos de la muestra o información adicional por parte del proveedor. Una búsqueda superficial de internet apareció sin detalles técnicos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top