Лучший способ проверить контрольную сумму байтов в Python - PullRequest
0 голосов
/ 05 сентября 2018

Я получаю несколько пакетов от последовательного порта. Пример пакета:

                         last 2 bytes
                              /\
[ data length ] [ data ] [packet crc]

Я получаю crc, например, b'w\x06'. Значение 125 (sum(b'w\x06') = 125). Я рассчитываю CRC пакета: sum(data). И я получаю 1655. Я знаю, что 1655 совпадает с b'w\06', но я не знаю, как перевести его просто в 125 и сравнить с правильной контрольной суммой. Что мне нужно для преобразования 1655 в то же значение, что и полученные байты пакета (125 или b'w\x06')? binascii / struct / что-то еще?

Спасибо

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете использовать int.from_bytes:

int.from_bytes(b'w\x06', 'little')

или с struct:

struct.unpack("<H", b'w\x06')[0]
...