Beim Versuch, mit einem Audioverarbeitungsgerät namens BSS London Blu-80 zu kommunizieren, entdeckte ich, dass ich eine Prüfsumme senden muss, die durch Xoring der Nachricht erstellt wurde. Eine Beispielnachricht, die gesendet wird, wäre:Erstellen von xor-Prüfsummen aller Bytes in Hexadezimalzeichen In Python
0x8d 0x1e 0x19 0x1b 0x83 0x00 0x01 0x01 0x00 0x00 0x00 0x4b 0x00 0x00 0xc2
Mit 0xc2 ist die richtige Prüfsumme für diese Nachricht.
"Die Prüfsumme ist ein einzelnes Byte exklusive oder (xor) aller Bytes im Nachrichtentext."
Der Nachrichtentext ist oberhalb der Prüfsumme.
Der Code, den ich versuchen, aber:
packet = '0x8d 0x1e 0x19 0x1b 0x83 0x00 0x01 0x01 0x00 0x00 0x00 0x4b 0x00 0x00'
xor = 0
i = 0
while i < len(packet):
xor = xor^ord(packet[i])
i += 1
>>print xor
46
>>print hex(xor)
'0x2e'
ich natürlich bin hier falsch, etwas zu tun, und nicht in vollem Umfang das zu verstehen. Jede Hilfe wird sehr geschätzt.
Danke!
Versuchen Sie 'packet = '\ x8d \ x1e \ x19 \ x1b \ x83 \ x00 \ x01 \ x01 \ x00 \ x00 \ x00 \ x4b \ x00 \ x00''. –
Sie können Ihr Ergebnis hier überprüfen: th-thelemann.de/tools/checksum.html –