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