Calculer Block Check Character (CCI) pour la communication série
Je suis en communication avec un appareil via un port série via la classe SerialPort .NET et basé sur des tiers de spécification du périphérique, j'ai besoin de calculer un "block check character". La seule information que je me suis dit, c'est que c'est un OU exclusif (XOR) et elle doit être effectuée sur tous les personnages.
Donc, si j'ai la chaîne "Bob,001" comment pourrait-on calculer la CCI?
OriginalL'auteur GONeale | 2009-05-21
Vous devez vous connecter pour publier un commentaire.
Le plus probable, c'est le caractère en fonction XOR. Vous aurez besoin pour obtenir des échantillons de leur pour vérifier, mais la plupart des sommes de contrôle finissent généralement à 0.
Donc, pour un XOR de la somme de contrôle, vous avez le paquet:
où X est la somme de contrôle et, lorsque vous XOR de tous ces personnages, vous auriez plus de chance d'obtenir 0.
Donc, à X, vous venez de le XOR de tous les personnages dans "Bob,001". C'est en vertu du fait que N xor N est toujours 0, pour tout N.
Maintenant, il se peut que X aura deux caractères hexadécimaux si tout ce que vous êtes autorisé à avoir est des caractères alphanumériques. C'est pourquoi vous avez besoin des données de l'échantillon (on peut s'en sortir) ou un bon spec (qui doit être fournie par le fabricant de l'appareil).
Ce est le réel de l'appareil, vous avez parlé? Il peut être il y a d'info sur le web qui montre comment le faire.
Basée sur la mise à jour:
Vous aurez besoin pour obtenir un exemple de données pour confirmer, mais il est probable à un flux de données à quelque chose comme:
La position de la somme de contrôle peut varier et, en effet, ce calcul peut varier trop si c'est beaucoup moins probable. Je ne pense pas que beaucoup plus peut être fait sans l'échantillon de données ou d'informations complémentaires de la part du vendeur. Une fouille superficielle de l'internet n'a pas de détails techniques.
J'ai une fonction que j'ai écrit et c'est le calcul de la -chose-, juste ne sais pas si c'est la bonne CCI droite maintenant. Allons revenir à vous, merci.
OriginalL'auteur paxdiablo