Einzelnen Beitrag anzeigen

GPR-Man

Registriert seit: 28. Okt 2008
Ort: Zürich
14 Beiträge
 
RAD-Studio 2009 Pro
 
#1

checksum eines RS232-strings erstellen

  Alt 14. Dez 2010, 13:33
Ein serielles Gerät verlangt zu jedem Befehl eine Checksum. Wie kann ich diese jedoch berechnen? Hier ein paar Beispiele:

- #$FF#$30#$00 -> #$D1
- #$FF#$90#$02#$00#$FF -> #$70
- #$FF#$D0#$02#$00#$05 -> #$2A

Die Beschreibung des Herstellers lautet wie folgt: "...If all message bytes excluding the preamble are summed and the lower byte value of the result equals zero, the message is valid and it may be processed. The checksum value of the message should be included in the summation." Die hier besprochene Preambel (#$FA) habe ich bei den Beispielen bereits weggelassen. Eine simple Aufaddierung mit
Delphi-Quellcode:
  sum := 0;
  if i := 0 to length(s)-1 then
    inc(sum, ord(s[i])):
gibt leider nicht das gesuchte Resultat. Wie muss ich diese Quersumme berechnen?
  Mit Zitat antworten Zitat