Я делаю это, чтобы перечислить доступные com-порты в windows и unix.
Окна:
def listWindowsPorts():
serial_ports = []
has_ports = False
path = 'HARDWARE\\DEVICEMAP\\SERIALCOMM'
try:
reg = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path,)
has_ports = True
except WindowsError:
pass
if has_ports:
for i in range(128):
try:
name, value, type = winreg.EnumValue(reg, i)
except WindowsError:
pass
else:
serial_ports.append(value)
return serial_ports
Это для UNIX (Linux-OSX):
def listUnixPorts(system):
serial_ports = []
dev_path = '/dev/'
if('osx' in system):
dev_names = ['tty.*', 'cu.*']
else:
dev_names = ['ttyACM*', 'ttyUSB*']
for dev_name in dev_names:
pattern = dev_path + dev_name
serial_ports += glob.glob(pattern)
return serial_ports
IDE Arduino, помимо отображения COM-портов, имеет возможность автоматически отображать «порты» OTA после настройки. Я хотел бы знать, есть ли способ сделать это в python, чтобы я мог показать последовательные порты и порты OTA вместе.
Может кто-нибудь привести пример или сайт с этой информацией?
Я просмотрел документацию библиотеки pyserial, но до сих пор не нашел функции «автообнаружение».