发现像Arduino IDE这样的OTA“端口”

时间:2016-01-28 22:54:10

标签: python serial-port ota

我这样做是为了列出windows和unix中可用的com端口。

视窗:

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 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

arduino的IDE除了显示COM端口外,还可以在配置后自动显示OTA“端口”。我想知道在python中是否有办法做到这一点,所以我可以一起显示串口和OTA端口。

有人可以提供包含此信息的示例或网站吗?

我查看了pyserial库的文档,但直到现在我还没有找到“自动发现”功能

1 个答案:

答案 0 :(得分:1)

这个问题的答案是使用mDNS浏览器,在我的情况下因为我正在使用python,我解决了zeroconf