LOCODUINO

Discussions Générales => Bus DCC => Discussion démarrée par: sajuuk le avril 04, 2020, 02:21:59 pm

Titre: L'octet de détection d'erreur dans les trains longs
Posté par: sajuuk le avril 04, 2020, 02:21:59 pm
Bonjour à tous !

Mon petit logiciel de commande avance, un peu grâce au confinement. ::)

Cette fois ci, j'aurais besoin de votre aide sur l'octet de détection d'erreur, pour les trains de donnée de plus de 3 octets.
Je ne sais pas comment le calculer dès qu'il y a autre chose qu'un octet adresse et un octet data ...  :-\


Pour l'instant, je sais faire pour un train à 3 octets :
AAAAAAAA '0' DDDDDDDD '0' EEEEEEEE
un octet adresse (A), un octet données (D), un octet détection d'erreur (E)
pour chaque E, on calcule XOR de A et D pour la même position.

Pour les trains à davantage d'octets :
AAAAAAAA '0' BBBBBBBB '0' CCCCCCCC '0' DDDDDDDD '0' EEEEEEEE
quatre octets pouvant être adresse et/ou donnée (de A à D), un octet détection d'erreur (E)
Là, je ne comprends plus les NMRA ...

Dois-je faire octet par octet ?
Par exemple, A XOR B donne x, x XOR C donne y, y XOR D donne E ?
Ou suis-je à la ramasse ?  :o

Merci à tous !
Titre: Re : L'octet de détection d'erreur dans les trains longs
Posté par: Dominique le avril 04, 2020, 04:41:53 pm
C'est clair dans la norme :
https://www.nmra.org/sites/default/files/s-92-2004-07.pdf (https://www.nmra.org/sites/default/files/s-92-2004-07.pdf)

The contents of the Error Detection Data Byte shall be the bitwise exclusive OR of the contents of the Address Data Byte and the Instruction Data Byte in the packet concerned. (e.g. the exclusive OR of bit 0 of the address data byte and bit 0 of the instruction data byte will be placed in bit 0 of the error detection data byte...)

Par exemple, A XOR B donne x, x XOR C donne y, y XOR D donne E ? ->> OUI
Titre: Re : L'octet de détection d'erreur dans les trains longs
Posté par: sajuuk le avril 04, 2020, 07:42:01 pm
Justement, je posais la question parce que j'ai lu la norme, sans la comprendre  ???

Merci beaucoup, je vais pouvoir continuer à pousser  ;D