summaryrefslogtreecommitdiff
path: root/scripts/device.py
diff options
context:
space:
mode:
authordmlunar <root@lunar.sh>2025-01-22 16:47:21 +0200
committerdmlunar <root@lunar.sh>2025-10-15 23:42:50 +0200
commit729f2a2c3ebfb2612d873caf453a1d7ca02180d9 (patch)
tree7bab2fcc0c7f50eab3013348697bc06ddd71d551 /scripts/device.py
downloadvarpa-729f2a2c3ebfb2612d873caf453a1d7ca02180d9.tar.gz
varpa-729f2a2c3ebfb2612d873caf453a1d7ca02180d9.zip
varpa: initial public commit
Diffstat (limited to 'scripts/device.py')
-rw-r--r--scripts/device.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/scripts/device.py b/scripts/device.py
new file mode 100644
index 0000000..fc17786
--- /dev/null
+++ b/scripts/device.py
@@ -0,0 +1,87 @@
+# Author: Dylan Muller
+# Copyright (c) 2025
+# All rights reserved.
+#
+# - Commercial/IP use prohibited.
+# - Attribution required.
+# See License.txt
+
+from setup import *
+import time
+
+def serial_send(serial, data):
+ try:
+ if (serial and serial.is_open):
+ serial.write(data.encode('utf-8'))
+ except:
+ return 0
+
+def serial_receive_line(serial):
+ try:
+ if (serial and serial.is_open):
+ serial_data = serial.readline().decode('utf-8').rstrip()
+ else:
+ return ""
+ except:
+ return ""
+ return serial_data
+
+def serial_receive_lines(serial, n):
+ lines = []
+ for i in range(n):
+ line = serial_receive_line(serial)
+ if (line == ""):
+ return line
+ if (SETUP_CMD_BUSY_RESPONSE in line):
+ return SETUP_CMD_BUSY_RESPONSE
+ lines.append(line)
+ return lines
+
+def sys_reset(serial):
+ serial_send(serial, SETUP_CMD_RESET)
+ time.sleep(SETUP_CMD_TIMEOUT)
+ response = serial_receive_line(serial)
+ return response
+
+def sys_gate_probe(serial):
+ serial_send(serial, SETUP_CMD_PROBE)
+ time.sleep(SETUP_CMD_TIMEOUT)
+ response = serial_receive_lines(serial, SETUP_CMD_PROBE_N)
+ return response
+
+def sys_drain_set(serial, count):
+ payload = SETUP_CMD_DRAIN_SET + ' ' + str(count) + SETUP_NEWLINE
+ serial_send(serial, payload)
+ time.sleep(SETUP_CMD_TIMEOUT)
+
+def sys_si4468_tx(serial):
+ serial_send(serial, SETUP_CMD_TX)
+ time.sleep(SETUP_CMD_TIMEOUT)
+ response = serial_receive_line(serial)
+ return response
+
+def sys_si4468_rx(serial):
+ serial_send(serial, SETUP_CMD_RX)
+ time.sleep(SETUP_CMD_TIMEOUT)
+ response = serial_receive_line(serial)
+ return response
+
+def sys_read_power(serial):
+ serial_send(serial, SETUP_CMD_POWER_GET)
+ time.sleep(SETUP_CMD_TIMEOUT)
+ power_count = serial_receive_line(serial)
+ power_count = power_count.split(" ")[1]
+ power_count = int(power_count)
+ return power_count
+
+def sys_reply(serial):
+ serial_send(serial, SETUP_CMD_REPLY)
+ time.sleep(SETUP_CMD_TIMEOUT)
+ response = serial_receive_line(serial)
+ return response
+
+def sys_report(serial):
+ serial_send(serial, SETUP_CMD_REPORT)
+ time.sleep(SETUP_CMD_TIMEOUT)
+ response = serial_receive_lines(serial, SETUP_CMD_REPORT_N)
+ return response