Question

Je communique avec un appareil via série via la classe SerialPort de .NET et en fonction des exigences de la spécification de l'appareil tiers dont j'ai besoin de calculer un « caractère de contrôle de bloc ». La seule information que je dis est que c'est un OU exclusif (XOR) et il doit être effectué sur tous les caractères.

Donc, si j'ai la chaîne "Bob, 001" comment peut-on calculer la BCC?

Était-ce utile?

La solution

Le plus probable est le caractère XOR base. Vous aurez besoin d'obtenir des échantillons d'entre eux pour vérifier, mais la plupart des checksums finissent généralement à 0.

Ainsi, pour une somme de contrôle XOR, vous auriez le paquet:

Bob,001X

où X est la somme de contrôle et, lorsque vous XOR tous ces personnages ensemble, vous auriez fort probablement 0.

Alors, pour travailler sur X, il vous suffit XOR tous les personnages de "Bob, 001". C'est en vertu du fait que N XOR N est toujours 0, pour tout N.

Maintenant, il se peut que X sera deux caractères hexadécimaux si tout ce que vous êtes autorisé à avoir est Alphanumériques. Voilà pourquoi vous avez besoin soit des données d'échantillon (afin que nous puissions travailler dehors) ou une spécification correcte (qui devrait être fourni par le fabricant de l'appareil).

Qu'est-ce que l'appareil réel que vous faites référence? Peut-être il y a d'info sur le web qui montre comment le faire.

Sur la base de la mise à jour:

  

Il est un dispositif de PMS Amadeus Hospitality. Non tout ce qu'ils disent est qu'il doit être effectué sur tous les caractères. à l'exclusion du STX et ETX.

Vous aurez besoin d'obtenir des données d'échantillon pour confirmer, mais il est susceptible d'un quelque chose comme flux de données:

        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 position de la somme de contrôle peut varier et, en effet, il est le calcul peut varier aussi bien que ce soit beaucoup moins probable. Je ne pense pas que beaucoup plus peut être fait sans données d'échantillons ou de plus amples informations auprès du fournisseur. Une recherche rapide de l'Internet relevai pas de détails techniques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top