| Index: tools/telemetry/third_party/pyserial/serial/urlhandler/protocol_hwgrep.py
|
| diff --git a/tools/telemetry/third_party/pyserial/serial/urlhandler/protocol_hwgrep.py b/tools/telemetry/third_party/pyserial/serial/urlhandler/protocol_hwgrep.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..62cda43aa78e5524d799268be06e221383026ad2
|
| --- /dev/null
|
| +++ b/tools/telemetry/third_party/pyserial/serial/urlhandler/protocol_hwgrep.py
|
| @@ -0,0 +1,45 @@
|
| +#! python
|
| +#
|
| +# Python Serial Port Extension for Win32, Linux, BSD, Jython
|
| +# see __init__.py
|
| +#
|
| +# This module implements a special URL handler that uses the port listing to
|
| +# find ports by searching the string descriptions.
|
| +#
|
| +# (C) 2011 Chris Liechti <cliechti@gmx.net>
|
| +# this is distributed under a free software license, see license.txt
|
| +#
|
| +# URL format: hwgrep://regexp
|
| +
|
| +import serial
|
| +import serial.tools.list_ports
|
| +
|
| +class Serial(serial.Serial):
|
| + """Just inherit the native Serial port implementation and patch the open function."""
|
| +
|
| + def setPort(self, value):
|
| + """translate port name before storing it"""
|
| + if isinstance(value, basestring) and value.startswith('hwgrep://'):
|
| + serial.Serial.setPort(self, self.fromURL(value))
|
| + else:
|
| + serial.Serial.setPort(self, value)
|
| +
|
| + def fromURL(self, url):
|
| + """extract host and port from an URL string"""
|
| + if url.lower().startswith("hwgrep://"): url = url[9:]
|
| + # use a for loop to get the 1st element from the generator
|
| + for port, desc, hwid in serial.tools.list_ports.grep(url):
|
| + return port
|
| + else:
|
| + raise serial.SerialException('no ports found matching regexp %r' % (url,))
|
| +
|
| + # override property
|
| + port = property(serial.Serial.getPort, setPort, doc="Port setting")
|
| +
|
| +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
| +if __name__ == '__main__':
|
| + #~ s = Serial('hwgrep://ttyS0')
|
| + s = Serial(None)
|
| + s.port = 'hwgrep://ttyS0'
|
| + print s
|
| +
|
|
|