Пример #1
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
Пример #2
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