Откройте для себя порты OTA, такие как Arduino IDE

Я делаю это, чтобы перечислить доступные 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, но до сих пор не нашел функции «автообнаружение».


person GEPD    schedule 28.01.2016    source источник


Ответы (1)


Ответ на этот вопрос - использовать браузер mDNS, в моем случае, поскольку я использую python, я решил с помощью zeroconf

person GEPD    schedule 06.10.2016