def __selectMeter(self, num):
     """ Select giver meter
     """
     if ftdi_type == 0:
         self.__ftdi.selectPort(usb_port[num])
     else:
         err = ftdi.set_bitmode(globals.ftdi_context, usb_port[num], ftdi.BITMODE_CBUS)
         if err < 0:
             logging.error("Can't set bitmode (%d, %s)" % (err, ftdi.get_error_string(globals.ftdi_context)))
             raise FtdiError("Can't set bitmode (%d, %s)" % (err, ftdi.get_error_string(globals.ftdi_context)))
         time.sleep(0.1)
示例#2
0
 def __selectMeter(self, num):
     """ Select giver meter
     """
     if FTDI_TYPE == 0:
         self.__ftdi.selectPort(USB_PORT[num])
     else:
         err = ftdi.set_bitmode(self.context, USB_PORT[num],
                                ftdi.BITMODE_CBUS)
         if err < 0:
             self._log.error("Can't set bitmode (%d, %s)" %
                             (err, ftdi.get_error_string(self.context)))
             raise FtdiError("Can't set bitmode (%d, %s)" %
                             (err, ftdi.get_error_string(self.context)))
         time.sleep(0.1)
 def __readOne(self):
     """ read 1 char from usb
     """
     err, buf = ftdi.read_data(globals.ftdi_context, 0x1)
     if err < 0:
         logging.error("Can't read data (%d, %s)" % (err, ftdi.get_error_string(globals.ftdi_context)))
         self.close()
         raise FtdiError("Can't read data (%d, %s)" % (err, ftdi.get_error_string(globals.ftdi_context)))
     if err:
         #c = unichr(ord(buf) % 0x80)  # Clear bit 7
         c = chr(ord(buf) & 0x07f)
         return err, c
     else:
         return err, None
 def __readRawFrame(self):
     """ Read raw frame
     """
     # As the data are sent asynchronously by the USB interface, we probably don't start
     # to read at the start of a frame. So, we read enough chars to retreive a complete frame
     logging.debug("Lecture des donnees")
     if ftdi_type == 0:
         raw = self.__ftdi.read(globals.frame_length)
     else:
         err = ftdi.usb_purge_buffers(globals.ftdi_context)
         if err < 0:
             logging.error("Can't purge buffers (%d, %s)" % (err, ftdi.get_error_string(globals.ftdi_context)))
             raise FtdiError("Can't purge buffers (%d, %s)" % (err, ftdi.get_error_string(globals.ftdi_context)))
         raw = u""
         while len(raw) < globals.frame_length:
             err, c = self.__readOne()
             if c is not None and c != '\x00':
                 raw += c
                 #logging.debug(c)
     return raw
示例#5
0
    def __readRawFrame(self):
        """ Read raw frame
        """

        # As the data are sent asynchronously by the USB interface, we probably don't start
        # to read at the start of a frame. So, we read enough chars to retreive a complete frame
        if FTDI_TYPE == 0:
            raw = self.__ftdi.read(FRAME_LENGTH)
        else:
            err = ftdi.usb_purge_buffers(self.context)
            if err < 0:
                self._log.error("Can't purge buffers (%d, %s)" %
                                (err, ftdi.get_error_string(self.context)))
                raise FtdiError("Can't purge buffers (%d, %s)" %
                                (err, ftdi.get_error_string(self.context)))
            raw = u""
            while len(raw) < FRAME_LENGTH:
                err, c = self.__readOne()
                if c is not None and c != '\x00':
                    raw += c
        return raw
示例#6
0
    # initialize
    ftdic = ftdi.new()
    if ftdic == 0:
        print 'new failed: %d', ret
        os._exit( 1 )

    version_info = ftdi.get_library_version()
    print("\nlibFTDI version = major: %d, minor: %d, micro: %d" \
        ", version_str: %s, snapshot_str: %s\n" %
        (version_info.major, version_info.minor, version_info.micro,
        version_info.version_str, version_info.snapshot_str))

    # list all devices
    ret, devlist = ftdi.usb_find_all( ftdic, DEVICE_VID, DEVICE_PID )
    if ret < 0:
        print 'ftdi_usb_find_all failed: %d (%s)' % ( ret, ftdi.get_error_string( ftdic ) )
        os._exit( 1 )
    print 'Number of FTDI devices found: %d\n' % ret
    curnode = devlist
    i = 0
    while( curnode != None ):
        ret, manufacturer, description, serial = ftdi.usb_get_strings( ftdic, curnode.dev )
        if ret < 0:
            print 'ftdi_usb_get_strings failed: %d (%s)' % ( ret, ftdi.get_error_string( ftdic ) )
            os._exit( 1 )
        print 'Device #%d: manufacturer="%s" description="%s" serial="%s"\n' % ( i, manufacturer, description, serial )
        curnode = curnode.next
        i += 1

    # open usb
    ret = ftdi.usb_open( ftdic, DEVICE_VID, DEVICE_PID )
示例#7
0
import os
import ftdi
import time

# initialize
ftdic = ftdi.new()
if ftdic == 0:
    print 'new failed: %d', ret
    os._exit(1)

# list all devices
ret, devlist = ftdi.usb_find_all(ftdic, 0x0403, 0x6001)
if ret < 0:
    print 'ftdi_usb_find_all failed: %d (%s)' % (ret,
                                                 ftdi.get_error_string(ftdic))
    os._exit(1)
print 'Number of FTDI devices found: %d\n' % ret
curnode = devlist
i = 0
while (curnode != None):
    ret, manufacturer, description, serial = ftdi.usb_get_strings(
        ftdic, curnode.dev)
    if ret < 0:
        print 'ftdi_usb_get_strings failed: %d (%s)' % (
            ret, ftdi.get_error_string(ftdic))
        os._exit(1)
    print 'Device #%d: manufacturer="%s" description="%s" serial="%s"\n' % (
        i, manufacturer, description, serial)
    curnode = curnode.next
    i += 1