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