0

I'm doing this to to list the available com ports in windows and unix.

Windows:

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

An this for 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

The arduino's IDE, besides displaying the COM ports, it has the ability to show the OTA "ports" automatically after configured. I'll like to know if there is a way to do this in python, so I can show serial ports and OTA ports together.

Can someone give an example or a site with this information?

I've looked in the documentation of the pyserial library but until now I haven't found the "autodiscover" feature

GEPD
  • 198
  • 2
  • 16

1 Answers1

1

The answer to this question is to use a mDNS browser, in my case as I'm using python, I resolved with zeroconf

GEPD
  • 198
  • 2
  • 16