Esempio n. 1
0
 def close(self):
     # close channel A
     if bool(self.ft_ctx.usb_dev):
         print "Closing FTDI Interface"
         ftdi.ftdi_set_bitmode(self.ft_ctx, 0xfb, ftdi.BITMODE_RESET)
         ftdi.ftdi_usb_close(self.ft_ctx)
         ftdi.ftdi_deinit(self.ft_ctx)
Esempio n. 2
0
    def __init__(self, serial=None, index=None):
        self.ftdic = ftdi.ftdi_context()
        self.ftdi = ftdi
        self.sensors = dict()
        self.hw_sw = dict()
        self.hw_sw["DC"] = nvouten
        self.hw_sw["SW0"] = sws[0]
        self.hw_sw["SW1"] = sws[1]
        self.hw_sw["ALERT"] = alert
        self.hw_sw["GPIO0"] = gpios[0]
        self.hw_sw["GPIO1"] = gpios[1]
        self.hw_sw["GPIO2"] = gpios[2]
        self.hw_sw["GPIO3"] = gpios[3]
        self.switches = dict()

        try:
            ret = ftdi.ftdi_init(self.ftdic)
            if ret < 0:
                raise Exception
            ret = ftdi.ftdi_usb_open_desc_index(self.ftdic, 0x0403, 0x06010, "PMC-17 v1.0", serial, index if index else 0)
            if ret < 0:
                raise Exception("Could not open device", ftdi.ftdi_get_error_string(self.ftdic))
            ret = ftdi.ftdi_set_interface(self.ftdic, ftdi.INTERFACE_A)
            if ret < 0:
                raise Exception
            self.hw = i2c_ftdi.i2c_ftdi(self.ftdic, scl, sda_out, sda_in, 400000, initial_output)
            self.i2c = i2c.i2c(self.hw)
        except Exception as e:
            ftdi.ftdi_deinit(self.ftdic)
            raise
Esempio n. 3
0
 def close(self):
     # close channel A
     if bool(self.ft_ctx.usb_dev):
         print "Closing FTDI Interface"
         ftdi.ftdi_set_bitmode(self.ft_ctx, 0xfb, ftdi.BITMODE_RESET)
         ftdi.ftdi_usb_close(self.ft_ctx)
         ftdi.ftdi_deinit(self.ft_ctx)
Esempio n. 4
0
    def __init__(self, serial=None, index=None):
        self.ftdic = ftdi.ftdi_context()
        self.ftdi = ftdi
        self.sensors = dict()
        self.hw_sw = dict()
        self.hw_sw["DC"] = nvouten
        self.hw_sw["SW0"] = sws[0]
        self.hw_sw["SW1"] = sws[1]
        self.hw_sw["ALERT"] = alert
        self.hw_sw["GPIO0"] = gpios[0]
        self.hw_sw["GPIO1"] = gpios[1]
        self.hw_sw["GPIO2"] = gpios[2]
        self.hw_sw["GPIO3"] = gpios[3]
        self.switches = dict()

        try:
            ret = ftdi.ftdi_init(self.ftdic)
            if ret < 0:
                raise Exception
            ret = ftdi.ftdi_usb_open_desc_index(self.ftdic, 0x0403, 0x06010,
                                                "PMC-17 v1.0", serial,
                                                index if index else 0)
            if ret < 0:
                raise Exception("Could not open device",
                                ftdi.ftdi_get_error_string(self.ftdic))
            ret = ftdi.ftdi_set_interface(self.ftdic, ftdi.INTERFACE_A)
            if ret < 0:
                raise Exception
            self.hw = i2c_ftdi.i2c_ftdi(self.ftdic, scl, sda_out, sda_in,
                                        400000, initial_output)
            self.i2c = i2c.i2c(self.hw)
        except Exception as e:
            ftdi.ftdi_deinit(self.ftdic)
            raise
    def shutdown(self):
        """ Shutdown ftdi com.
        """
        self._log.info("Try to close ftdi port")
        err = ftdi.ftdi_usb_close(self.__ftdic)
        if err < 0:
            self._log.error("Can't close ftdi com. (%d, %s)" % (err, ftdi.ftdi_get_error_string(self.__ftdic)))
            raise FtdiError("Can't close ftdi com. (%d, %s)" % (err, ftdi.ftdi_get_error_string(self.__ftdic)))

        ftdi.ftdi_deinit(self.__ftdic)
Esempio n. 6
0
def fermerPort(ftdiContext):
	# Exemple de desactivation des compteurs
	ftdi.ftdi_set_bitmode(ftdiContext, NO_PORT, ftdi.BITMODE_CBUS);

	ret = ftdi.ftdi_usb_close(ftdiContext)
	if ret < 0:
		raise IOError("Impossible de fermer le port : " + repr(ret) + "(" + ftdi.ftdi_get_error_string(ftdiContext) + ")")

	ftdi.ftdi_deinit(ftdiContext);

	del ftdiContext
Esempio n. 7
0
    def __del__(self):
        '''
        Docstring

        Parameters
        ----------

        Returns
        -------
        '''
        if self.port is not None:
            ftdi.ftdi_disable_bitbang(self.port)
            ftdi.ftdi_usb_close(self.port)
            ftdi.ftdi_deinit(self.port)
    def __del__(self):
        '''
        Docstring

        Parameters
        ----------

        Returns
        -------
        '''
        if self.port is not None:
            ftdi.ftdi_disable_bitbang(self.port)
            ftdi.ftdi_usb_close(self.port)
            ftdi.ftdi_deinit(self.port)
Esempio n. 9
0
def close_ftdi():

	write_ftdi(255) # alle pins auf 0
	
	ret = ftdi.ftdi_usb_close(ftdic) # ftdi-usb deinitialisieren
	
	if ret < 0:
		print "Konnte Gerät nicht schließen:" + ret + "(" + \
			ftdi.ftdi_get_error_string(ftdic) + ")"
		exit(-1)
	else:
		print "Gerät"
		
	ftdi.ftdi_disable_bitbang(ftdic);
	ftdi.ftdi_deinit(ftdic);
	del ftdic
Esempio n. 10
0
    def __init__(self):
        # open channel A
        self.ft_ctx = ftdi.ftdi_context()
        if ftdi.ftdi_init(self.ft_ctx) < 0:
            raise RuntimeError("ftdi_init failed")
        ftdi.ftdi_set_interface(self.ft_ctx, ftdi.INTERFACE_A)
        if ftdi.ftdi_usb_open(self.ft_ctx, 0x0403, 0x6010) != 0:
            raise RuntimeError(ftdi.ftdi_get_error_string(self.ft_ctx))

        try:
            # open and purge channel B
            ft_ctx_b = ftdi.ftdi_context()
            if ftdi.ftdi_init(ft_ctx_b) < 0:
                raise RuntimeError("ftdi_init failed")
            ftdi.ftdi_set_interface(ft_ctx_b, ftdi.INTERFACE_B)
            if ftdi.ftdi_usb_open(ft_ctx_b, 0x0403, 0x6010) != 0:
                raise RuntimeError(ftdi.ftdi_get_error_string(ft_ctx_b))
            # purge buffers
            if ftdi.ftdi_usb_purge_buffers(ft_ctx_b) != 0:
                raise RuntimeError(ftdi.ftdi_get_error_string(ft_ctx_b))
            # close channel B
            ftdi.ftdi_usb_close(ft_ctx_b)
            ftdi.ftdi_deinit(ft_ctx_b)
        except RuntimeError:
            self.close()
            raise

        # setup FIFO mode
        try:
            self.ft_ctx.usb_read_timeout = 5000000
            self.ft_ctx.usb_write_timeout = 5000000
            ftdi.ftdi_read_data_set_chunksize(self.ft_ctx, self.READ_CHUNKSIZE)
            ftdi.ftdi_write_data_set_chunksize(self.ft_ctx,
                                               self.WRITE_CHUNKSIZE)

            if ftdi.ftdi_usb_reset(self.ft_ctx) != 0:
                raise RuntimeError("Reset failed")
            time.sleep(100e-3)

            if ftdi.ftdi_set_bitmode(self.ft_ctx, 0, ftdi.BITMODE_SYNCFF) != 0:
                raise RuntimeError("Setting FIFO mode failed")

            if ftdi.ftdi_set_latency_timer(self.ft_ctx, 1) != 0:
                raise RuntimeError("Setting latency failed")
        except RuntimeError:
            self.close()
            raise
Esempio n. 11
0
    def __init__(self):
        # open channel A
        self.ft_ctx = ftdi.ftdi_context()
        if ftdi.ftdi_init(self.ft_ctx) < 0:
            raise RuntimeError("ftdi_init failed")
        ftdi.ftdi_set_interface(self.ft_ctx, ftdi.INTERFACE_A)
        if ftdi.ftdi_usb_open(self.ft_ctx, 0x0403, 0x6010) != 0:
            raise RuntimeError(ftdi.ftdi_get_error_string(self.ft_ctx))

        try:
            # open and purge channel B
            ft_ctx_b = ftdi.ftdi_context()
            if ftdi.ftdi_init(ft_ctx_b) < 0:
                raise RuntimeError("ftdi_init failed")
            ftdi.ftdi_set_interface(ft_ctx_b, ftdi.INTERFACE_B)
            if ftdi.ftdi_usb_open(ft_ctx_b, 0x0403, 0x6010) != 0:
                raise RuntimeError(ftdi.ftdi_get_error_string(ft_ctx_b))
            # purge buffers
            if ftdi.ftdi_usb_purge_buffers(ft_ctx_b) != 0:
                raise RuntimeError(ftdi.ftdi_get_error_string(ft_ctx_b))
            # close channel B
            ftdi.ftdi_usb_close(ft_ctx_b)
            ftdi.ftdi_deinit(ft_ctx_b)
        except RuntimeError:
            self.close()
            raise

        # setup FIFO mode
        try:            
            self.ft_ctx.usb_read_timeout = 5000000;
            self.ft_ctx.usb_write_timeout = 5000000;
            ftdi.ftdi_read_data_set_chunksize(self.ft_ctx, self.READ_CHUNKSIZE)
            ftdi.ftdi_write_data_set_chunksize(self.ft_ctx, self.WRITE_CHUNKSIZE)
            
            if ftdi.ftdi_usb_reset(self.ft_ctx) != 0:
                raise RuntimeError("Reset failed")
            time.sleep(100e-3)
            
            if ftdi.ftdi_set_bitmode(self.ft_ctx, 0, ftdi.BITMODE_SYNCFF) != 0:
                raise RuntimeError("Setting FIFO mode failed")
                
            if ftdi.ftdi_set_latency_timer(self.ft_ctx, 1) != 0:
                raise RuntimeError("Setting latency failed")
        except RuntimeError:
            self.close()
            raise