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