Berechnung Checksum.



  • Hallo,

    ich weiß nicht, ob es hier genau hingehört, aber ich hab ein Gerät, was über eine serielle Schnittstelle mit dem Rechner kommuniziert.
    Dabei wird am Ende immer eine Prüfsumme übermittelt. Allerdings versteh ich die Berechnung dieser Prüfsumme nicht.
    Beispiel:

    $MD,27*D9
    

    Die Berechnung erfolgt laut Handbuch so:

    The checksum is the result of a complemented, no-carry binary addition of all characters between the '$' and the '*’ before the checksum.

    Ich hab verschiedene Methoden ausprobiert, aber ich komme niemals auf "D9"
    Ich hab es so verstanden. Erst muss die "complemented" jedes Zeichen erzeugt werden dieses dann addiert werden, unter Vernachlässigung des Übertrages.
    Wenn ich es dann erst einmal verstanden habe, soll dazu noch ein C++-Code geschrieben werden, aber vorher muss ich die Berechnung verstehen :p
    Ich danke schon einmal für hilfreiche Vorschläge.



  • das letzte Byte von ~('M' + 'D' + ',' + '2' + '7') ist D9 (Ergebnis ist FFFFFED9)

    greetz KN4CK3R



  • Danke, es geht! 😃 😃 😃
    Jetzt muss ich noch verstehen was da wirklich abläuft, aber das pack ich schon.
    Danke noch einmal


Anmelden zum Antworten