usbtools
- USB tools
Classes
- class pyftdi.usbtools.UsbTools
Helpers to obtain information about connected USB devices.
- classmethod build_dev_strings(scheme, vdict, pdict, devdescs)
Build URL and device descriptors from UsbDeviceDescriptors.
- Parameters:
scheme (
str
) – protocol part of the URLs to generatevdict (
Dict
[str
,int
]) – vendor name map of USB vendor idspdict (
Dict
[int
,Dict
[str
,int
]]) – vendor id map of product name map of product idsdevdescs (
Sequence
[Tuple
[UsbDeviceDescriptor
,int
]]) – USB devices and interfaces
- Return type:
List
[Tuple
[str
,str
]]- Returns:
list of (url, descriptors)
- classmethod enumerate_candidates(urlparts, vdict, pdict, default_vendor)
Enumerate USB device URLs that match partial URL and VID/PID criteria.
- Parameters:
urlpart – splitted device specifier URL
vdict (
Dict
[str
,int
]) – vendor name map of USB vendor idspdict (
Dict
[int
,Dict
[str
,int
]]) – vendor id map of product name map of product idsdefault_vendor (
int
) – default vendor id
- Return type:
Tuple
[List
[Tuple
[UsbDeviceDescriptor
,int
]],Optional
[int
]]- Returns:
list of (usbdev, iface), parsed index if any
- classmethod find_all(vps, nocache=False)
Find all devices that match the specified vendor/product pairs.
- Parameters:
vps (
Sequence
[Tuple
[int
,int
]]) – a sequence of 2-tuple (vid, pid) pairsnocache (bool) – bypass cache to re-enumerate USB devices on the host
- Return type:
List
[Tuple
[UsbDeviceDescriptor
,int
]]- Returns:
a list of 2-tuple (UsbDeviceDescriptor, interface count)
- classmethod find_backend()
Try to find and load an PyUSB backend.
..note:: There is no need to call this method for regular usage.
- Return type:
IBackend
- Returns:
PyUSB backend
- classmethod flush_cache()
Flush the FTDI device cache.
It is highly recommanded to call this method a FTDI device is unplugged/plugged back since the last enumeration, as the device may appear on a different USB location each time it is plugged in.
Failing to clear out the cache may lead to USB Error 19:
Device may have been disconnected
.
- classmethod get_device(devdesc)
Find a previously open device with the same vendor/product or initialize a new one, and return it.
If several FTDI devices of the same kind (vid, pid) are connected to the host, either index or serial argument should be used to discriminate the FTDI device.
index argument is not a reliable solution as the host may enumerate the USB device in random order. serial argument is more reliable selector and should always be prefered.
Some FTDI devices support several interfaces/ports (such as FT2232H, FT4232H and FT4232HA). The interface argument selects the FTDI port to use, starting from 1 (not 0).
- Parameters:
devdesc (
UsbDeviceDescriptor
) – Device descriptor that identifies the device by constraints.- Return type:
Device
- Returns:
PyUSB device instance
- classmethod get_string(device, stridx)
Retrieve a string from the USB device, dealing with PyUSB API breaks
- Parameters:
device (
Device
) – USB device instancestridx (
int
) – the string identifier
- Return type:
str
- Returns:
the string read from the USB device
- classmethod list_devices(urlstr, vdict, pdict, default_vendor)
List candidates that match the device URL pattern.
- See:
show_devices()
to generate the URLs from the candidates list- Parameters:
url – the URL to parse
vdict (
Dict
[str
,int
]) – vendor name map of USB vendor idspdict (
Dict
[int
,Dict
[str
,int
]]) – vendor id map of product name map of product idsdefault_vendor (
int
) – default vendor id
- Return type:
List
[Tuple
[UsbDeviceDescriptor
,int
]]- Returns:
list of (UsbDeviceDescriptor, interface)
- classmethod parse_url(urlstr, scheme, vdict, pdict, default_vendor)
Parse a device specifier URL.
- Parameters:
url – the URL to parse
scheme (
str
) – scheme to match in the URL string (scheme://…)vdict (
Dict
[str
,int
]) – vendor name map of USB vendor idspdict (
Dict
[int
,Dict
[str
,int
]]) – vendor id map of product name map of product idsdefault_vendor (
int
) – default vendor id
- Return type:
Tuple
[UsbDeviceDescriptor
,int
]- Returns:
UsbDeviceDescriptor, interface
..note:
URL syntax:
protocol://vendor:product[:serial|:index|:bus:addr]/interface
- classmethod release_all_devices(devclass=None)
Release all open devices.
- Parameters:
devclass (
Optional
[Type
]) – optional class to only release devices of one type- Return type:
int
- Returns:
the count of device that have been released.
- classmethod release_device(usb_dev)
Release a previously open device, if it not used anymore.
- Parameters:
usb_dev (
Device
) – a previously instanciated USB device instance
- classmethod show_devices(scheme, vdict, pdict, devdescs, out=None)
Show supported devices. When the joker url
scheme://*/?
is specified as an URL, it generates a list of connected USB devices that match the supported USB devices. It can be used to provide the end-user with a list of valid URL schemes.- Parameters:
scheme (
str
) – scheme to match in the URL string (scheme://…)vdict (
Dict
[str
,int
]) – vendor name map of USB vendor idspdict (
Dict
[int
,Dict
[str
,int
]]) – vendor id map of product name map of product idsdevdescs (
Sequence
[Tuple
[UsbDeviceDescriptor
,int
]]) – candidate devicesout (
Optional
[TextIO
]) – output stream, none for stdout
Exceptions
- exception pyftdi.usbtools.UsbToolsError
UsbTools error.