Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
Dependendent on bus enumeration order.
"""
return self.device.address
@property
def port(self):
"""Physical location of the device, or None if N/A.
Tuple of USB port numbers, from the root hub to this device. Not
dependendent on bus enumeration order.
"""
return self.device.port
class UsbHidDriver(BaseUsbDriver):
"""Base driver class for USB Human Interface Devices (HIDs)."""
@classmethod
def find_supported_devices(cls, hid=None, **kwargs):
"""Find devices specifically compatible with this driver."""
devs = []
for vid, pid, _, _, _ in cls.SUPPORTED_DEVICES:
for dev in GenericHidBus().find_devices(vendor=vid, product=pid, **kwargs):
if type(dev) == cls:
devs.append(dev)
return devs
def __init__(self, device, description, **kwargs):
# compatibility with v1.1.0 drivers (all HIDs): they could be directly
# instantiated with a usb.core.Device (but don't do it in new code)
if isinstance(device, usb.core.Device):
for dev in GenericHidBus().find_devices(vendor=vid, product=pid, **kwargs):
if type(dev) == cls:
devs.append(dev)
return devs
def __init__(self, device, description, **kwargs):
# compatibility with v1.1.0 drivers (all HIDs): they could be directly
# instantiated with a usb.core.Device (but don't do it in new code)
if isinstance(device, usb.core.Device):
LOGGER.warning('deprecated: delegate to find_supported_devices or use an appropriate wrapper')
device = PyUsbHid(device)
self.device = device
self._description = description
class UsbDriver(BaseUsbDriver):
"""Base driver class for regular USB devices.
Specifically, regular USB devices are *not* Human Interface Devices (HIDs).
"""
@classmethod
def find_supported_devices(cls, hid=None, **kwargs):
"""Find devices specifically compatible with this driver."""
devs = []
for vid, pid, _, _, _ in cls.SUPPORTED_DEVICES:
for dev in PyUsbBus().find_devices(vendor=vid, product=pid, **kwargs):
if type(dev) == cls:
devs.append(dev)
return devs
def __init__(self, device, description, **kwargs):