#!/usr/local/bin/python3.6

import sys
import time

import serial

def create_msg(main_type, subtype, msg_id, data):
    msg = bytes()
    msg += b'\xBE'
    msg += main_type.to_bytes(1, 'little')
    msg += subtype.to_bytes(1, 'little')
    msg += msg_id.to_bytes(2, 'little')
    msg += len(data).to_bytes(2, 'little')
    msg += data
    
    checksum = 0
    for b in msg:
        checksum ^= b
    msg += checksum.to_bytes(1, 'little')
    return msg

def create_test_packet(size=8):
    data = bytes((i % 256 for i in range(size)))
    return create_msg(0, 2, 0, data)

if __name__ == '__main__':
    with serial.Serial('/dev/ttyUSB0', 921600, timeout=5) as ser:
        for i in range(5):
            ser.reset_input_buffer()
            data = bytes.fromhex('be040002001c0002000000d80471be5732703f9d16093f8bf7a03d0586ab3d006d3a40c1')
            #ser.write(create_test_packet(24))
            ser.write(data)
            #ser.flush()
            #time.sleep(0.5)