Hallo,
ich muss für einen Verpflegungsautomaten eine Anbindung schreiben und habe jetzt ein Problem beim Berechnen der CheckSum des Protokolls.
Hier mal die Beschreibung aus der Doku des Protokolls
Zitat:
The checksum is 1 byte calculated such that the binary sum of the total Datafile, ignoring any overflow, has a value equal to 0.
Byte 1 bis 3 sind der Header und 4 bis 8 sind die Databytes. Alles zusammen inkl. der CheckSum ist das Datafile.
Mit einem Münzer habe ich mal mitgeloggt, was der an den Automaten sendet und folgendes kommt heraus.
Zitat:
Beispiel 1
10000001 Byte 1
00001010 Byte 2
00001011 Byte 3
00100000 Byte 4
00000000 Byte 5
10110000 Byte 6
00000101 Byte 7
00000000 Byte 8
10010101 Ergebnis
Zitat:
Beispiel 2
10000001 Byte 1
00001010 Byte 2
00001011 Byte 3
01000000 Byte 4
00000000 Byte 5
10110000 Byte 6
00000101 Byte 7
00000000 Byte 8
01110101 Ergebnis
Zitat:
Beispiel 3
10000001 Byte 1
00001010 Byte 2
00001011 Byte 3
01010000 Byte 4
00000000 Byte 5
10110000 Byte 6
00000101 Byte 7
00000000 Byte 8
01100101 Ergebnis
Zitat:
Beispiel 4
10000001 Byte 1
00001010 Byte 2
00001011 Byte 3
00000000 Byte 4
00000001 Byte 5
10110000 Byte 6
00000101 Byte 7
00000000 Byte 8
10110100 Ergebnis
Entweder bin ich zu doof oder vor lauter 0 und 1 sehe ich nichts mehr oder ich verstehe einfach nicht, was die meinen, wie das berechnet wird. Ich habe schon mit AND, OR und XOR versucht und bei AND und OR klappt es nie und bei XOR nicht jedesmal. Irgendwie bin ich da auf der falschen fährte.
Kann mir jemand weiterhelfen?
Danke
Sven