#!/usr/bin/env python

import sys
import time
import os

import threading

path = os.path.dirname(__file__) + '/../../bin/virt-quad-fifos/'

def create_msg():
    msg = bytes()
    msg += b'\xBE'

    msg += b'\x01'
    msg += b'\x00'

    msg += b'\x00'
    msg += b'\x00'

    msg += b'\x00'
    msg += b'\x00'

    print msg

    checksum = 0
    for b in msg:
        checksum ^= b
    msg += checksum.to_bytes(1, 'little')
    return msg

def listen():
    with open(path + 'uart-tx', 'r') as fifo:
        while True:
            c = fifo.read()
            if c:
                print c

def do_test():
    # Start a listener
    t = threading.Thread(target=listen)
    t.daemon = True
    t.start()

    fifo = open(path + 'uart-rx', 'w')
    fifo.write(b'\xBE\x01\x00\x00\x00\x00\x00\xBF')
    fifo.write(b'\xBE\x01\x00\x00\x00\x00\x00\xBF')
    fifo.write(b'\xBE\x01\x00\x00\x00\x00\x00\xBF')

if __name__ == '__main__':
    for i in range(1):
        print("Test ", i)
        do_test()
        time.sleep(1)