identify HID devices also by interface and usage page
This commit is contained in:
parent
8285bc458f
commit
91deea89da
|
@ -263,7 +263,7 @@ class DeviceNotFoundError(Exception):
|
|||
class DeviceUnpairableError(Exception):
|
||||
pass
|
||||
|
||||
Device = namedtuple("Device", "path interface_number id_ product_key")
|
||||
Device = namedtuple("Device", "path interface_number id_ product_key usage_page")
|
||||
DeviceInfo = namedtuple("DeviceInfo", "device label initialized")
|
||||
|
||||
class DeviceMgr(ThreadJob, PrintError):
|
||||
|
@ -504,12 +504,14 @@ class DeviceMgr(ThreadJob, PrintError):
|
|||
product_key = (d['vendor_id'], d['product_id'])
|
||||
if product_key in self.recognised_hardware:
|
||||
# Older versions of hid don't provide interface_number
|
||||
interface_number = d.get('interface_number', 0)
|
||||
serial = d['serial_number']
|
||||
if len(serial) == 0:
|
||||
serial = d['path']
|
||||
interface_number = d.get('interface_number', -1)
|
||||
usage_page = d['usage_page']
|
||||
id_ = d['serial_number']
|
||||
if len(id_) == 0:
|
||||
id_ = d['path']
|
||||
id_ += str(interface_number) + str(usage_page)
|
||||
devices.append(Device(d['path'], interface_number,
|
||||
serial, product_key))
|
||||
id_, product_key, usage_page))
|
||||
|
||||
# Now find out what was disconnected
|
||||
pairs = [(dev.path, dev.id_) for dev in devices]
|
||||
|
|
Loading…
Reference in New Issue