def reset_dongle(dongle): #Performs full HW reset, seems to trigger an OS re-enumeration #of the serial device, which means the old handle (e.g. COM1) changes, #but only sometimes... port = comms.setup_serial_port(dongle, debug=True) read_thread = threading.Thread(target=comms.reader, args=(port,)) read_thread.start() do_cmd(port, 'util_reset') port.close() read_thread.join()
import sys import comms import threading #dongle = "/dev/ttyACM0" #posix style #dongle = "\\.\COM5" #nt style dongle = str(sys.argv[1]) tcp_port = int(sys.argv[2]) while True: port = comms.setup_serial_port(dongle, debug=True) port.socket = comms.start_server(tcp_port=tcp_port) read_thread = threading.Thread(target=comms.reader, args=(port, )) write_thread = threading.Thread(target=comms.writer, args=(port, )) write_thread.start() #start order not significant read_thread.start() write_thread.join() #write terminates first, by remote socket close port.close() read_thread.join() #read terminates on serial port close #up the spout again...
import sys import comms import threading #dongle = "/dev/ttyACM0" #posix style #dongle = "\\.\COM5" #nt style dongle = str(sys.argv[1]) tcp_port = int(sys.argv[2]) while True: port = comms.setup_serial_port(dongle, debug=True) port.socket = comms.start_server(tcp_port=tcp_port) read_thread = threading.Thread(target=comms.reader, args=(port,)) write_thread = threading.Thread(target=comms.writer, args=(port,)) write_thread.start() #start order not significant read_thread.start() write_thread.join() #write terminates first, by remote socket close port.close() read_thread.join() #read terminates on serial port close #up the spout again...