From d4dc8220f70d75ce5585bde75d75382f897d9981 Mon Sep 17 00:00:00 2001 From: Simon Albinsson Date: Thu, 12 Apr 2018 15:30:49 +0000 Subject: [PATCH] adds class for crc8 calculations --- sgp30/crc.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 sgp30/crc.py diff --git a/sgp30/crc.py b/sgp30/crc.py new file mode 100644 index 0000000..fa28007 --- /dev/null +++ b/sgp30/crc.py @@ -0,0 +1,23 @@ +class Crc8: + def __init__(s): + s.crc=255 + + def hash(s,int_list): + for i in int_list: + s.addVal(i) + return s.crc + + def addVal(s,n): + crc = s.crc + for bit in range(0,8): + if ( n ^ crc ) & 0x80: + crc = ( crc << 1 ) ^ 0x31 + else: + crc = ( crc << 1 ) + n = n << 1 + s.crc = crc & 0xFF + return s.crc + +#print(Crc8().hash([1,144])) +#print(hex(Crc8().hash([0xBE, 0xEF]))) +#[1, 144, 76, 0, 6, 39]