import struct
import logging
def calc_crc16(string):
data = bytearray.fromhex(string)
logging.info(type(data))
crc = 0xFFFF
for pos in data:
crc ^= pos
for i in range(8):
if (crc & 1) != 0:
crc >>= 1
crc ^= 0xA001
else:
crc >>= 1
return ((crc & 0xff) << 8) + (crc >> 8)
data_hex_str = "A55AD0001A0069643A553030310A46315F4765735F526573756C743A47303031"
value = calc_crc16(data_hex_str)
crc_bytes = struct.pack('<H', value)
print(crc_bytes)
10-31
687
687
09-23
488
488
04-02
3195
3195
08-02

被折叠的 条评论
为什么被折叠?



