Browse Source

identify HID devices also by interface and usage page

master
djb 10 years ago
parent
commit
91deea89da
No known key found for this signature in database
GPG Key ID: 75D4B1A518B37477
  1. 14
      lib/plugins.py

14
lib/plugins.py

@ -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…
Cancel
Save