bitvend/mdb/utils.py

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)
)