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
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