def main(): """Verify readline() works with PyFTDI extension.""" serialext.touch() with serial_for_url('ftdi:///1', baudrate=115200) as ser: ser.write(b'Hello World\r\n') line = ser.readline() print(line) print('testdone')
def _open_port(device, baudrate, parity, rtscts, debug=False): """Open the serial communication port""" try: from serial.serialutil import SerialException from serial import PARITY_NONE except ImportError as exc: raise ImportError("Python serial module not installed") from exc try: from serial import serial_for_url, VERSION as serialver # use a simple regex rather than adding a new dependency on the # more complete 'packaging' module vmo = search(r'^(\d+)\.(\d+)', serialver) if not vmo: # unable to parse version raise ValueError() if tuple([int(x) for x in vmo.groups()]) < (3, 0): # pysrial version is too old raise ValueError() except (ValueError, IndexError, ImportError) as exc: raise ImportError("pyserial 3.0+ is required") from exc # the following import enables serial protocol extensions if device.startswith('ftdi:'): try: from pyftdi import serialext serialext.touch() except ImportError as exc: raise ImportError("PyFTDI module not installed") from exc try: port = serial_for_url(device, baudrate=baudrate, parity=parity or PARITY_NONE, rtscts=rtscts, timeout=0) if not port.is_open: port.open() if not port.is_open: raise IOError('Cannot open port "%s"' % device) if debug: backend = port.BACKEND if hasattr(port, 'BACKEND') else '?' print("Using serial backend '%s'" % backend) return port except SerialException as exc: raise IOError(str(exc)) from exc
def _open_port(device, baudrate, parity, rtscts, debug=False): """Open the serial communication port""" try: from serial.serialutil import SerialException from serial import PARITY_NONE except ImportError: raise ImportError("Python serial module not installed") try: from serial import serial_for_url, VERSION as serialver version = tuple([int(x) for x in serialver.split('.')]) if version < (2, 6): raise ValueError except (ValueError, IndexError, ImportError): raise ImportError("pyserial 2.6+ is required") # the following import enables serial protocol extensions if device.startswith('ftdi:'): try: from pyftdi import serialext serialext.touch() except ImportError: raise ImportError("PyFTDI module not installed") try: port = serial_for_url(device, baudrate=baudrate, parity=parity or PARITY_NONE, rtscts=rtscts, timeout=0) if not port.is_open: port.open() if not port.is_open: raise IOError('Cannot open port "%s"' % device) if debug: backend = port.BACKEND if hasattr(port, 'BACKEND') else '?' print("Using serial backend '%s'" % backend) return port except SerialException as exc: raise IOError(str(exc))
def _open_port(device, baudrate, parity, rtscts, debug=False): """Open the serial communication port""" try: from serial.serialutil import SerialException from serial import PARITY_NONE except ImportError: raise ImportError("Python serial module not installed") try: from serial import serial_for_url, VERSION as serialver version = tuple([int(x) for x in serialver.split('.')]) if version < (2, 6): raise ValueError except (ValueError, IndexError, ImportError): raise ImportError("pyserial 2.6+ is required") # the following import enables serial protocol extensions if device.startswith('ftdi:'): try: from pyftdi import serialext serialext.touch() except ImportError: raise ImportError("PyFTDI module not installed") try: port = serial_for_url(device, baudrate=baudrate, parity=parity or PARITY_NONE, rtscts=rtscts, timeout=0) if not port.is_open: port.open() if not port.is_open: raise IOError('Cannot open port "%s"' % device) if debug: backend = hasattr(port, 'BACKEND') and port.BACKEND or '?' print("Using serial backend '%s'" % backend) return port except SerialException as e: raise IOError(str(e))
def main(): """Verify readline() works with PyFTDI extension.""" serialext.touch() with serial_for_url('ftdi:///1', baudrate=115200) as ser: line = ser.readline() print(line)