Programmering
Checksum af Hex Streng
Hej
Dette er et arbejdsrelateret problem og jeg har brug for en der ved lidt om hex og checksum
Jeg skal styrer en projektor med et andet system (Beolink gateway) via usb/rs232
For at kunne ændre aspect eller tændsluk skal der skrives en hex streng..
Jeg ved hvad der skal skrives alle steder bortset fra feltet checksum
Dette er et eksempel der stemmer:
ITEM NUMBER = 0020h (ASPECT)
SET/GET = 00h (SET)
DATA = 000Ch (1.85:1 Zoom)
CHECK SUM = 23h
Men hvad hvis der står følgende:
ITEM NUMBER = 0020h (ASPECT)
SET/GET = 00h (SET)
DATA = 000Dh (2:35:1 Zoom)
CHECK SUM = ????
Checksum are calculated by OR. Refer to the example below.
<Example of Calculation>
0xA9 1010 1001 0xA9 1010 1001
0xA9 1010 1001 0x9A 1001 1010
Answer 1010 1001 Answer 1011 1011
0xA9 0xBB
Svar #1
15. november 2014 af hesch (Slettet)
0: Dette giver delvis fornuft:
Checksum are calculated by OR.
Det er så ikke en checksum men en checkcode. "Sum" forbindes med (måske "shifted") addition.
<Example of Calculation>
0xA9 1010 1001 0xA9 1010 1001
0xA9 1010 1001 0x9A 1001 1010
Checkcode 1010 1001 Checkcode 1011 1011
0xA9 0xBB
Altså, de i kommandoen indgående bytes OR-res blot sammen. Indgår der tilstrækkeligt mange bytes i kommandoen, bliver checkcode hurtigt = 0xFF, næsten ligegyldigt hvad, og denne checkcode er derfor ikke særlig effektiv, omend meget let at implementere. ( 8 OR-gates + 8 D-flipflop ).
Til gengæld stemmer dette så ikke:
ITEM NUMBER = 0020h (ASPECT)
SET/GET = 00h (SET)
DATA = 000Ch (1.85:1 Zoom)
CHECK SUM = 23h
. . . for her burde checkcode = 0x2C ( 00h OR 20h OR 00h OR 00h OR 0Ch )
Din vedhæftede manual er noget bras, for den beskriver ikke protokollen strigent, fx ved gode gamle "Bachus-Naur notation". Dette kan meget vel indikere, at protokollen i sig selv ikke er stringent, og derfor netop ikke kan beskrives ved Bachus-Naur, (og så er der noget galt).
Stil bare flere spørgsmål.
Skriv et svar til: Checksum af Hex Streng
Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk?
Klik her for at oprette en bruger.