From f5f0582ffd5441c621ad7ce8223a7dd15721216b Mon Sep 17 00:00:00 2001
From: Adam Blank <blank@caltech.edu>
Date: Thu, 17 Oct 2024 17:41:10 +0000
Subject: [PATCH] Add new file

---
 ports.py | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 ports.py

diff --git a/ports.py b/ports.py
new file mode 100644
index 0000000..8af8a5c
--- /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()
-- 
GitLab