| Index: tools/telemetry/third_party/pyserial/serial/tools/list_ports_posix.py
|
| diff --git a/tools/telemetry/third_party/pyserial/serial/tools/list_ports_posix.py b/tools/telemetry/third_party/pyserial/serial/tools/list_ports_posix.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..9d96e938a9ef9acc531bdbb43e3568d7b6cdf63a
|
| --- /dev/null
|
| +++ b/tools/telemetry/third_party/pyserial/serial/tools/list_ports_posix.py
|
| @@ -0,0 +1,101 @@
|
| +#!/usr/bin/env python
|
| +
|
| +# portable serial port access with python
|
| +
|
| +# This is a module that gathers a list of serial ports on POSIXy systems.
|
| +# For some specific implementations, see also list_ports_linux, list_ports_osx
|
| +#
|
| +# this is a wrapper module for different platform implementations of the
|
| +# port enumeration feature
|
| +#
|
| +# (C) 2011-2013 Chris Liechti <cliechti@gmx.net>
|
| +# this is distributed under a free software license, see license.txt
|
| +
|
| +"""\
|
| +The ``comports`` function is expected to return an iterable that yields tuples
|
| +of 3 strings: port name, human readable description and a hardware ID.
|
| +
|
| +As currently no method is known to get the second two strings easily, they are
|
| +currently just identical to the port name.
|
| +"""
|
| +
|
| +import glob
|
| +import sys
|
| +import os
|
| +
|
| +# try to detect the OS so that a device can be selected...
|
| +plat = sys.platform.lower()
|
| +
|
| +if plat[:5] == 'linux': # Linux (confirmed)
|
| + from serial.tools.list_ports_linux import comports
|
| +
|
| +elif plat == 'cygwin': # cygwin/win32
|
| + def comports():
|
| + devices = glob.glob('/dev/com*')
|
| + return [(d, d, d) for d in devices]
|
| +
|
| +elif plat[:7] == 'openbsd': # OpenBSD
|
| + def comports():
|
| + devices = glob.glob('/dev/cua*')
|
| + return [(d, d, d) for d in devices]
|
| +
|
| +elif plat[:3] == 'bsd' or \
|
| + plat[:7] == 'freebsd':
|
| +
|
| + def comports():
|
| + devices = glob.glob('/dev/cuad*')
|
| + return [(d, d, d) for d in devices]
|
| +
|
| +elif plat[:6] == 'darwin': # OS X (confirmed)
|
| + from serial.tools.list_ports_osx import comports
|
| +
|
| +elif plat[:6] == 'netbsd': # NetBSD
|
| + def comports():
|
| + """scan for available ports. return a list of device names."""
|
| + devices = glob.glob('/dev/dty*')
|
| + return [(d, d, d) for d in devices]
|
| +
|
| +elif plat[:4] == 'irix': # IRIX
|
| + def comports():
|
| + """scan for available ports. return a list of device names."""
|
| + devices = glob.glob('/dev/ttyf*')
|
| + return [(d, d, d) for d in devices]
|
| +
|
| +elif plat[:2] == 'hp': # HP-UX (not tested)
|
| + def comports():
|
| + """scan for available ports. return a list of device names."""
|
| + devices = glob.glob('/dev/tty*p0')
|
| + return [(d, d, d) for d in devices]
|
| +
|
| +elif plat[:5] == 'sunos': # Solaris/SunOS
|
| + def comports():
|
| + """scan for available ports. return a list of device names."""
|
| + devices = glob.glob('/dev/tty*c')
|
| + return [(d, d, d) for d in devices]
|
| +
|
| +elif plat[:3] == 'aix': # AIX
|
| + def comports():
|
| + """scan for available ports. return a list of device names."""
|
| + devices = glob.glob('/dev/tty*')
|
| + return [(d, d, d) for d in devices]
|
| +
|
| +else:
|
| + # platform detection has failed...
|
| + sys.stderr.write("""\
|
| +don't know how to enumerate ttys on this system.
|
| +! I you know how the serial ports are named send this information to
|
| +! the author of this module:
|
| +
|
| +sys.platform = %r
|
| +os.name = %r
|
| +pySerial version = %s
|
| +
|
| +also add the naming scheme of the serial ports and with a bit luck you can get
|
| +this module running...
|
| +""" % (sys.platform, os.name, serial.VERSION))
|
| + raise ImportError("Sorry: no implementation for your platform ('%s') available" % (os.name,))
|
| +
|
| +# test
|
| +if __name__ == '__main__':
|
| + for port, desc, hwid in sorted(comports()):
|
| + print "%s: %s [%s]" % (port, desc, hwid)
|
|
|