Checksumme - wie ist diese berechnet ???
-
Hallo liebe Entwickler,
ich habe ein Problem, daß ich bisher nicht lösen konnte. Es werden über Modem Daten zwischen einem Server und einer Steuerung übertragen. Abgesichert werden die Daten durch eine Checksumme. Bisher habe ich aufsummieren, alle Werte miteinander mit XOR behandeln und sonstige abstruse Kombinationen probiert, aber keine Lösung gefunden.
Hier ein paar Datensätze:
(02 fd d0 e0 00 00) (05) (7e 52 49 44 3b) 70
(02 fd d0 e0 01 00) (00) (7e 53 50 2c 4e 52 3d 38 33 2c 56 41 4c 3d 34 30 3b) 70
(02 fd d0 e0 01 00) (00) (7e 53 50 2c 4e 52 3d 36 39 2c 56 41 4c 3d 31 39 3b) 68
(02 fd d0 e0 01 00) (00) (7e 53 50 2c 4e 52 3d 37 36 2c 56 41 4c 3d 31 37 3b) 68
(02 fd d0 e0 00 00) (0b) (7e 53 50 2c 4e 52 3d 31 37 31 3b) c8Die Daten bedeuten folgendes:
02 fd d0 e0 00 00 sind Steuerungsdaten, damit die Anlage weiß was sie machen soll. Steht eine e0 00 da, bedeutet es lesen. Danach kommt die Anzahl der Datenbytes und die letzte Zahl ist die Checksumme.
Bei e0 01 (schreiben) wird die Anzahl der Datenbytes nicht gesetzt.Ich habe mal die Zahlenreihen mit gleichen Checksummen hier reingeschrieben, damit man vielleicht was vergleichen kann.
Kann jemand mir dabei helfen, wie das berechnet sein könnte ? Momentan helfe ich mir so, daß ich einfach alle 255 werte durchprobiere, aber besser wäre es natürlich auf die Berechnung zu kommen.
Im Internet habe ich schon viele Seiten mit Onlinerechnern zu Checksummen, CRC's, Hash usw. durchprobiert, aber leider war nichts richtiges dabei.
Schöne Weihnachten
-
Vielleicht so was wie bei ISBN Nummern, aber es sind ja auch noch Buchstaben
dabei. Ich wäre für irgendeinen Algorythmus mit Primzahlen. Für die
Buchstaben könntest du ja den ASCII-Wert hernehemen oder die Position im
Alphabet.
-
D schrieb:
Algorythmus
Argh.
D schrieb:
Für die Buchstaben könntest du ja den ASCII-Wert hernehemen oder die Position im Alphabet.
Die Tatsache, dass kein Buchstabe >f vorkommt und es immer Zweierpaare sind legt nahe, dass es sich dabei um Bytes als hexadezimale Zahlen handelt. Die Werte sind denke ich alle im lesbaren Bereich. Viel Spaß damit.
-
Hallo,
danke erst mal, daß sich jemand die Mühe gemacht hat das anzusehen
Es sind stinknormale Hexzahlen, die über die serielle Schnittstelle als Daten gesendet werden.
Falls noch Fragen sind, kann ich diese gerne beantworten. Momentan behelfe ich mir damit, daß ich bei der Checksumme einfach alle Werte von 00 - FF durchprobiere, solange bis die Steuerung den Befehl ohne Checksum Error akzeptiert, aber es wäre wohl besser, gleich die richtige Checksumme zu berechnen.
Wünsche Euch allen einen guten Rutsch und vielleicht kommt 2008 jemand auf die Berechnung.