Bumbum
18.08.2011, 16:29
Hallo,
ich benötige schon wieder Hilfe. Ich möchte mit einem Barcode-Modul kommunizieren. Speziell handelt es sich um das SE955 von Symbol.
Laut Datenblatt läuft die Kommunikation in Datenpaketen ab, die mit einer Checksumme abgeschlossen werden. Leider werde ich aus den Beispielen und der Beschreibung nicht schlau, wie ich diese Checksumme berechne.
Das erste Byte im Paket ist die Länge in Bytes, ohne die Checksumme. Die letzten beiden Bytes sind die Checksumme. Laut Datenblatt nur als "2's complement sum of message contents excluding checksum" beschrieben.
Hier sind ein paar Beispiel-Pakete aus dem Datenblatt:
05 C7 04 00 FE FE 32
06 C7 04 00 01 9C FE 92
07 C7 04 00 FE 01 9C FD 93
07 C7 04 00 01 9C FE FD 93
05 C7 04 00 04 FF 2C
07 C7 04 00 FE FE FE FC 34
07 C7 04 00 01 01 01 FF 2B
Und hier die Antworten des Moduls dazu. Ich bin mir aber nicht sicher, ob da die Checksumme genauso berechnet wird:
0D C6 00 00 FF 01 00 02 01 9C 07 E6 63 FC 3E
09 C6 00 00 FF 01 00 9C 07 FD 8E
0D C6 00 00 FF 01 00 02 01 9C 07 E6 63 FC 3E
09 C6 00 00 FF 01 00 9C 07 FD 8E
05 C6 00 00 FF FE 36
0D C6 00 00 FF 01 00 02 01 9C 07 E6 63 FC 3E
0B C6 00 00 FF 01 00 01 00 01 00 FE 2D
Irgendwie stehe ich auf dem Schlauch. Egal wie ich rechne, ich komme einfach nicht dahinter, wie diese zwei Bytes Checksumme berechnet werden sollen. Erkennt von euch vielleicht jemand die Logik dahinter, oder kann mit dem Begriff "2's complement sum" etwas anfangen? Die Google Treffer erklären mir immer nur, dass es sich dabei wohl um die binäre Darstellungsweise von negativen Zahlen handelt...
Viele Grüße
Andreas
ich benötige schon wieder Hilfe. Ich möchte mit einem Barcode-Modul kommunizieren. Speziell handelt es sich um das SE955 von Symbol.
Laut Datenblatt läuft die Kommunikation in Datenpaketen ab, die mit einer Checksumme abgeschlossen werden. Leider werde ich aus den Beispielen und der Beschreibung nicht schlau, wie ich diese Checksumme berechne.
Das erste Byte im Paket ist die Länge in Bytes, ohne die Checksumme. Die letzten beiden Bytes sind die Checksumme. Laut Datenblatt nur als "2's complement sum of message contents excluding checksum" beschrieben.
Hier sind ein paar Beispiel-Pakete aus dem Datenblatt:
05 C7 04 00 FE FE 32
06 C7 04 00 01 9C FE 92
07 C7 04 00 FE 01 9C FD 93
07 C7 04 00 01 9C FE FD 93
05 C7 04 00 04 FF 2C
07 C7 04 00 FE FE FE FC 34
07 C7 04 00 01 01 01 FF 2B
Und hier die Antworten des Moduls dazu. Ich bin mir aber nicht sicher, ob da die Checksumme genauso berechnet wird:
0D C6 00 00 FF 01 00 02 01 9C 07 E6 63 FC 3E
09 C6 00 00 FF 01 00 9C 07 FD 8E
0D C6 00 00 FF 01 00 02 01 9C 07 E6 63 FC 3E
09 C6 00 00 FF 01 00 9C 07 FD 8E
05 C6 00 00 FF FE 36
0D C6 00 00 FF 01 00 02 01 9C 07 E6 63 FC 3E
0B C6 00 00 FF 01 00 01 00 01 00 FE 2D
Irgendwie stehe ich auf dem Schlauch. Egal wie ich rechne, ich komme einfach nicht dahinter, wie diese zwei Bytes Checksumme berechnet werden sollen. Erkennt von euch vielleicht jemand die Logik dahinter, oder kann mit dem Begriff "2's complement sum" etwas anfangen? Die Google Treffer erklären mir immer nur, dass es sich dabei wohl um die binäre Darstellungsweise von negativen Zahlen handelt...
Viele Grüße
Andreas