mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
19 lines
637 B
Python
19 lines
637 B
Python
|
import serial.tools.list_ports
|
||
|
import crcengine
|
||
|
|
||
|
def get_ports():
|
||
|
crc_algorithm = crcengine.new("crc16-ccitt-false") # load crc8 library
|
||
|
|
||
|
serial_devices = []
|
||
|
ports = serial.tools.list_ports.comports()
|
||
|
for port, desc, hwid in ports:
|
||
|
# calculate hex of hwid if we have unique names
|
||
|
crc_hwid = crc_algorithm(bytes(hwid, encoding="utf-8"))
|
||
|
crc_hwid = crc_hwid.to_bytes(2, byteorder="big")
|
||
|
crc_hwid = crc_hwid.hex()
|
||
|
description = f"{desc} [{crc_hwid}]"
|
||
|
serial_devices.append(
|
||
|
{"port": str(port), "description": str(description)}
|
||
|
)
|
||
|
return serial_devices
|