19 lines
357 B
Python
19 lines
357 B
Python
from functools import reduce
|
|
|
|
|
|
def compute_chk(data):
|
|
return reduce(lambda a, b: (a + b) % 256, data, 0)
|
|
|
|
|
|
def compute_checksum(cmd, data):
|
|
return compute_chk(bytearray([cmd]) + data)
|
|
|
|
|
|
def bcd_decode(b):
|
|
return (
|
|
1000 * ((b & 0xF000) >> 12)
|
|
+ 100 * ((b & 0xF00) >> 8)
|
|
+ 10 * ((b & 0xF0) >> 4)
|
|
+ (b & 0x0F)
|
|
)
|