Example #1
0
  def __init__(self, vendor=ftdi_common.DEFAULT_VID,
               product=ftdi_common.DEFAULT_PID, interface=4, serialname=None):
    """Fgpio constructor.

    Loads libraries for libftdi, libftdigpio.  Creates instance objects
    (Structures), FgpioContext, FtdiContext and Gpio to iteract with the library
    and intializes them.

    Args:
      vendor    : usb vendor id of FTDI device
      product   : usb product id of FTDI device
      interface : interface number ( 1 - 4 ) of FTDI device to use
      serialname: string of device serialname/number as defined in FTDI eeprom.

    Raises:
      FgpioError: An error accessing Fgpio object
    """
    gpio_interface.GpioInterface.__init__(self)
    self._logger.debug('')

    (self._flib, self._lib) = ftdi_utils.load_libs('ftdi', 'ftdigpio')
    self._fargs = ftdi_common.FtdiCommonArgs(
        vendor_id=vendor, product_id=product, interface=interface,
        serialname=serialname)
    self._is_closed = True
    self._gpio = ftdi_common.Gpio()
    self._fc = ftdi_common.FtdiContext()
    self._fgc = FgpioContext()
    # initialize
    if self._flib.ftdi_init(ctypes.byref(self._fc)):
      raise FgpioError('doing ftdi_init')
    if self._lib.fgpio_init(ctypes.byref(self._fgc), ctypes.byref(self._fc)):
      raise FgpioError('doing fgpio_init')
Example #2
0
    def __init__(self,
                 vendor=ftdi_common.DEFAULT_VID,
                 product=ftdi_common.DEFAULT_PID,
                 interface=3,
                 serialname=None,
                 ftdi_context=None):
        """Fuart contstructor.

    Loads libraries for libftdi, libftdiuart.  Creates instance objects
    (Structures), FuartContext, FtdiContext and Gpio to iteract with the library
    and intializes them.

    Args:
      vendor: usb vendor id of FTDI device
      product: usb product id of FTDI device
      interface: interface number of FTDI device to use
      serialname: string of device serialname/number as defined in FTDI eeprom.
      ftdi_context: ftdi context created previously or None if one should be
        allocated here.  This shared context functionality is seen in miniservo
        which has a uart + 4 gpios

    Raises:
      FuartError: If either ftdi or fuart inits fail
    """
        super(Fuart, self).__init__()
        self._logger = logging.getLogger('Fuart')
        self._logger.debug('')
        (self._flib, self._lib) = ftdi_utils.load_libs('ftdi', 'ftdiuart')
        self._fargs = ftdi_common.FtdiCommonArgs(
            vendor_id=vendor,
            product_id=product,
            interface=interface,
            serialname=serialname,
            speed=115200,
            bits=8,  # BITS_8 in ftdi.h
            partity=0,  # NONE in ftdi.h
            sbits=0  # STOP_BIT_1 in ftdi.h
        )
        self._is_closed = True
        self._fuartc = FuartContext()

        if ftdi_context:
            self._fc = ftdi_context
        else:
            self._fc = ftdi_common.FtdiContext()
            err = self._flib.ftdi_init(ctypes.byref(self._fc))
            if err:
                raise FuartError('doing ftdi_init', err)

        err = self._lib.fuart_init(ctypes.byref(self._fuartc),
                                   ctypes.byref(self._fc))
        if err:
            raise FuartError('doing fuart_init', err)
Example #3
0
    def __init__(self,
                 vendor=ftdi_common.DEFAULT_VID,
                 product=ftdi_common.DEFAULT_PID,
                 interface=2,
                 serialname=None):
        """Fi2c constructor.

    Loads libraries for libftdi, libftdii2c.  Creates instance objects
    (Structures), Fi2cContext, FtdiContext and Gpio to iteract with the library
    and intializes them.

    Args:
      vendor: usb vendor id of FTDI device
      product: usb product id of FTDI device
      interface: interface number of FTDI device to use
      serialname: string of device serialname/number as defined in FTDI eeprom.

    Raises:
      Fi2cError: If either ftdi or fi2c inits fail
    """
        self._logger = logging.getLogger("Fi2c")
        self._logger.debug("")

        (self._flib, self._lib, self._gpiolib) = \
            ftdi_utils.load_libs("ftdi", "ftdii2c",  "ftdigpio")
        self._fargs = ftdi_common.FtdiCommonArgs(vendor_id=vendor,
                                                 product_id=product,
                                                 interface=interface,
                                                 serialname=serialname)
        self._fc = ftdi_common.FtdiContext()
        self._fic = Fi2cContext()
        self._gpio = ftdi_common.Gpio()
        self._is_closed = True
        err = self._flib.ftdi_init(ctypes.byref(self._fc))
        if err:
            raise Fi2cError("ftdi_init", err)

        err = self._lib.fi2c_init(ctypes.byref(self._fic),
                                  ctypes.byref(self._fc))
        if err:
            raise Fi2cError("fi2c_init", err)

        self._i2c_mask = ~self._fic.gpio.mask
Example #4
0
    def __init__(self,
                 vendor=ftdi_common.DEFAULT_VID,
                 product=ftdi_common.DEFAULT_PID,
                 interface=2,
                 serialname=None):
        """Fi2c constructor.

    Loads libraries for libftdi, libftdii2c.  Creates instance objects
    (Structures), Fi2cContext, FtdiContext and Gpio to iteract with the library
    and intializes them.

    Args:
      vendor: usb vendor id of FTDI device
      product: usb product id of FTDI device
      interface: interface number of FTDI device to use
      serialname: string of device serialname/number as defined in FTDI eeprom.

    """
        i2c_base.BaseI2CBus.__init__(self)

        self._logger = logging.getLogger('Fi2c')
        self._logger.debug('')

        (self._flib, self._lib, self._gpiolib) = \
            ftdi_utils.load_libs('ftdi', 'ftdii2c', 'ftdigpio')
        self._fargs = ftdi_common.FtdiCommonArgs(vendor_id=vendor,
                                                 product_id=product,
                                                 interface=interface,
                                                 serialname=serialname)
        self._fc = ftdi_common.FtdiContext()
        self._fic = Fi2cContext()
        self._gpio = ftdi_common.Gpio()
        self._is_closed = True
        self.init()

        self._i2c_mask = ~self._fic.gpio.mask