bitvend/mdb/utils.py

15 lines
350 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)