solarrd/update.py

34 lines
676 B
Python

#!/usr/bin/env python3
import serial
import crcmod
from config import *
calc_crc = crcmod.predefined.mkCrcFun(CRC_TYPE)
def parse_line(line):
if line[-2:] != "\r\n":
return {key : None for key in FORMAT}
line = line[:-2]
crc_str = line[-2:]
payload = line[0:-2]
crc = (ord(crc_str[0]) << 8) | ord(crc_str[1])
if crc != calc_crc(payload.encode('ascii')):
return {key : None for key in FORMAT}
parts = payload.split(';')
parts = [p.strip() for p in parts]
parts = [x if x != '#' else None for x in parts]
data = zip(FORMAT, parts)
return dict(data)
def main():
pass
if __name__ == '__main__':
main()