Esempio n. 1
0
def find(vps, sn=None):
    """lookup a usb device based on vid, pid and serial number"""
    devices = UsbTools.find_all(vps)
    # do we have any devices?
    if len(devices) == 0:
        return None, "no device found"
    if sn is not None:
        # filter using the serial number
        devices_sn = [d for d in devices if d[2] == sn]
        if len(devices_sn) == 0:
            # we have devices, but none with this serial number
            s = []
            s.append("no device with this serial number")
            s.append("devices found:")
            for d in devices:
                s.append("%04x:%04x sn %r" % (d[0], d[1], d[2]))
            return None, "\n".join(s)
        else:
            devices = devices_sn
    # no devices
    if len(devices) == 0:
        return None, "no device found"
    # multiple devices
    if len(devices) > 1:
        s = []
        s.append("multiple devices found:")
        for d in devices:
            s.append("%04x:%04x sn %r" % (d[0], d[1], d[2]))
        return None, "\n".join(s)
    # 1 device
    return devices[0], None
Esempio n. 2
0
def find(vps, sn = None):
  """lookup a usb device based on vid, pid and serial number"""
  devices = UsbTools.find_all(vps)
  # do we have any devices?
  if len(devices) == 0:
    return None, 'no device found'
  if sn is not None:
    # filter using the serial number
    devices_sn = [d for d in devices if d[2] == sn]
    if len(devices_sn) == 0:
      # we have devices, but none with this serial number
      s = []
      s.append('no device with this serial number')
      s.append('devices found:')
      for d in devices:
        s.append('%04x:%04x sn %r' % (d[0], d[1], d[2]))
      return None, '\n'.join(s)
    else:
      devices = devices_sn
  # no devices
  if len(devices) == 0:
    return None, 'no device found'
  # multiple devices
  if len(devices) > 1:
    s = []
    s.append('multiple devices found:')
    for d in devices:
      s.append('%04x:%04x sn %r' % (d[0], d[1], d[2]))
    return None, '\n'.join(s)
  # 1 device
  return devices[0], None
Esempio n. 3
0
 def open_ft2232(self, vps, itf, sn):
     # find the device on USB
     devices = UsbTools.find_all(vps)
     if sn is not None:
         # filter based on device serial number
         devices = [dev for dev in devices if dev[2] == sn]
     if len(devices) == 0:
         raise IOError("No such device")
     self.vid = devices[0][0]
     self.pid = devices[0][1]
     self.sn = devices[0][2]
     self.ftdi = Ftdi()
     self.freq = self.ftdi.open_mpsse(self.vid,
                                      self.pid,
                                      itf,
                                      serial=self.sn,
                                      frequency=_FREQ)
     self.wrbuf = array.array('B')
     self.gpio_init()
     self.state_reset()
     self.sir_end_state = 'IDLE'
     self.sdr_end_state = 'IDLE'