| Index: tools/telemetry/third_party/pyserial/serial/tools/list_ports.py
|
| diff --git a/tools/telemetry/third_party/pyserial/serial/tools/list_ports.py b/tools/telemetry/third_party/pyserial/serial/tools/list_ports.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..d373a5566d23cf7ba44fadef0d63411259e1cc42
|
| --- /dev/null
|
| +++ b/tools/telemetry/third_party/pyserial/serial/tools/list_ports.py
|
| @@ -0,0 +1,103 @@
|
| +#!/usr/bin/env python
|
| +
|
| +# portable serial port access with python
|
| +# 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
|
| +
|
| +"""\
|
| +This module will provide a function called comports that returns an
|
| +iterable (generator or list) that will enumerate available com ports. Note that
|
| +on some systems non-existent ports may be listed.
|
| +
|
| +Additionally a grep function is supplied that can be used to search for ports
|
| +based on their descriptions or hardware ID.
|
| +"""
|
| +
|
| +import sys, os, re
|
| +
|
| +# chose an implementation, depending on os
|
| +#~ if sys.platform == 'cli':
|
| +#~ else:
|
| +import os
|
| +# chose an implementation, depending on os
|
| +if os.name == 'nt': #sys.platform == 'win32':
|
| + from serial.tools.list_ports_windows import *
|
| +elif os.name == 'posix':
|
| + from serial.tools.list_ports_posix import *
|
| +#~ elif os.name == 'java':
|
| +else:
|
| + raise ImportError("Sorry: no implementation for your platform ('%s') available" % (os.name,))
|
| +
|
| +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
| +
|
| +def grep(regexp):
|
| + """\
|
| + Search for ports using a regular expression. Port name, description and
|
| + hardware ID are searched. The function returns an iterable that returns the
|
| + same tuples as comport() would do.
|
| + """
|
| + r = re.compile(regexp, re.I)
|
| + for port, desc, hwid in comports():
|
| + if r.search(port) or r.search(desc) or r.search(hwid):
|
| + yield port, desc, hwid
|
| +
|
| +
|
| +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
| +def main():
|
| + import optparse
|
| +
|
| + parser = optparse.OptionParser(
|
| + usage = "%prog [options] [<regexp>]",
|
| + description = "Miniterm - A simple terminal program for the serial port."
|
| + )
|
| +
|
| + parser.add_option("--debug",
|
| + help="print debug messages and tracebacks (development mode)",
|
| + dest="debug",
|
| + default=False,
|
| + action='store_true')
|
| +
|
| + parser.add_option("-v", "--verbose",
|
| + help="show more messages (can be given multiple times)",
|
| + dest="verbose",
|
| + default=1,
|
| + action='count')
|
| +
|
| + parser.add_option("-q", "--quiet",
|
| + help="suppress all messages",
|
| + dest="verbose",
|
| + action='store_const',
|
| + const=0)
|
| +
|
| + (options, args) = parser.parse_args()
|
| +
|
| +
|
| + hits = 0
|
| + # get iteraror w/ or w/o filter
|
| + if args:
|
| + if len(args) > 1:
|
| + parser.error('more than one regexp not supported')
|
| + print "Filtered list with regexp: %r" % (args[0],)
|
| + iterator = sorted(grep(args[0]))
|
| + else:
|
| + iterator = sorted(comports())
|
| + # list them
|
| + for port, desc, hwid in iterator:
|
| + print("%-20s" % (port,))
|
| + if options.verbose > 1:
|
| + print(" desc: %s" % (desc,))
|
| + print(" hwid: %s" % (hwid,))
|
| + hits += 1
|
| + if options.verbose:
|
| + if hits:
|
| + print("%d ports found" % (hits,))
|
| + else:
|
| + print("no ports found")
|
| +
|
| +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
| +# test
|
| +if __name__ == '__main__':
|
| + main()
|
|
|