Пример #1
0
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')
Пример #2
0
 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
Пример #3
0
 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))
Пример #4
0
 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))
Пример #5
0
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)