diff --git a/ports.py b/ports.py new file mode 100644 index 0000000000000000000000000000000000000000..8af8a5c2dfee6bd4e75d4d53d3f76cfd9ee37f11 --- /dev/null +++ b/ports.py @@ -0,0 +1,44 @@ +import serial +import serial.tools +import sys +import time + +import serial.tools.list_ports +import serial.tools.miniterm + +CTRL_C = bytes(0x03) +CTRL_D = bytes(0x04) +CTRL_C_SUB = bytes(0x7F) + + +def get_trinkey_port(): + ports = serial.tools.list_ports.comports() + for port, desc, hwid in sorted(ports): + if 'Trinkey' in desc: + s = serial.Serial(port, baudrate=1152000) + return s + return None + + +def connect_to_serial(s): + class NoCTRLC(serial.tools.miniterm.Transform): + def tx(self, text): + return text.replace('k', chr(0x03)).replace('r', chr(0x4)) + + serial.tools.miniterm.TRANSFORMATIONS['ctrlc'] = NoCTRLC + miniterm = serial.tools.miniterm.Miniterm( + s, echo=True, filters=('ctrlc',)) + miniterm.exit_character = chr(0x03) + miniterm.menu_character = chr(0x0D) + miniterm.raw = True + miniterm.set_rx_encoding('UTF-8') + miniterm.set_tx_encoding('UTF-8') + sys.stderr.write('--- Miniterm on {p.name} {p.baudrate},{p.bytesize},{p.parity},{p.stopbits} ---\n'.format( + p=miniterm.serial)) + sys.stderr.write('--- Quit: {} ---\n'.format( + serial.tools.miniterm.key_description(miniterm.exit_character))) + miniterm.start() + + miniterm.join() + sys.stderr.write('\n--- exit ---\n') + miniterm.close()