Skip to content

Commit

Permalink
Added port selection to Uart programmer (#23)
Browse files Browse the repository at this point in the history
* Added port selection to Uart programmer

* Better error handling
  • Loading branch information
George-RG authored Sep 3, 2024
1 parent b4e98d5 commit e96a3ce
Showing 1 changed file with 33 additions and 1 deletion.
34 changes: 33 additions & 1 deletion cmake/fpga/uart_programmer/uart_programmer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import serial
import argparse
import serial.tools.list_ports

def program(
text_hex : str,
Expand Down Expand Up @@ -61,6 +62,35 @@ def program(
print(f"----- Bytes written: Text {len(text_bytes)}, Data: {len(data_bytes)} --------")
print("-----------------------------------------------------")

def getport(dev):
ports = serial.tools.list_ports.comports()
port_names = [port.device for port in ports]

default_port = port_names[0]
if dev in port_names:
default_port = dev
elif "/dev/ttyUSB0" in port_names:
default_port = "/dev/ttyUSB0"

print(f"Available ports:")
for index,port in enumerate(port_names):
print(f"{index+1}: {port}", end="")
if port == default_port:
print(" (default)", end="")

print()

input_port = input(f"Enter port number (default {default_port}): ")
try:
port = port_names[int(input_port)-1]
except:
port = default_port

print(f"Selected port: {port}")
return port



def main():
parser = argparse.ArgumentParser(
prog='UART programmer',
Expand All @@ -73,11 +103,13 @@ def main():

args = parser.parse_args()

dev = getport(args.dev)

program(
text_hex=args.text_hex,
data_hex=args.data_hex,
baudrate=args.baudrate,
dev=args.dev,
dev=dev,
)

if __name__ == "__main__":
Expand Down

0 comments on commit e96a3ce

Please sign in to comment.