mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-10-13 01:34:02 +08:00
33d5cfc393
date: 2025-12-18T23:23:16 master commit: 3cdee7b54718ee14bd85befd6c5bad3d699c5479
31 lines
641 B
Python
31 lines
641 B
Python
|
|
def _gen_crc8_table(poly: int) -> list[int]:
|
|
table = []
|
|
for i in range(256):
|
|
crc = i
|
|
for _ in range(8):
|
|
if crc & 0x80:
|
|
crc = ((crc << 1) ^ poly) & 0xFF
|
|
else:
|
|
crc = (crc << 1) & 0xFF
|
|
table.append(crc)
|
|
return table
|
|
|
|
|
|
def _gen_crc16_table(poly: int) -> list[int]:
|
|
table = []
|
|
for i in range(256):
|
|
crc = i << 8
|
|
for _ in range(8):
|
|
if crc & 0x8000:
|
|
crc = ((crc << 1) ^ poly) & 0xFFFF
|
|
else:
|
|
crc = (crc << 1) & 0xFFFF
|
|
table.append(crc)
|
|
return table
|
|
|
|
|
|
CRC8H2F = _gen_crc8_table(0x2F)
|
|
CRC8J1850 = _gen_crc8_table(0x1D)
|
|
CRC16_XMODEM = _gen_crc16_table(0x1021)
|