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): class DeviceUnpairableError(Exception):
pass 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") DeviceInfo = namedtuple("DeviceInfo", "device label initialized")
class DeviceMgr(ThreadJob, PrintError): class DeviceMgr(ThreadJob, PrintError):
@ -504,12 +504,14 @@ class DeviceMgr(ThreadJob, PrintError):
product_key = (d['vendor_id'], d['product_id']) product_key = (d['vendor_id'], d['product_id'])
if product_key in self.recognised_hardware: if product_key in self.recognised_hardware:
# Older versions of hid don't provide interface_number # Older versions of hid don't provide interface_number
interface_number = d.get('interface_number', 0) interface_number = d.get('interface_number', -1)
serial = d['serial_number'] usage_page = d['usage_page']
if len(serial) == 0: id_ = d['serial_number']
serial = d['path'] if len(id_) == 0:
id_ = d['path']
id_ += str(interface_number) + str(usage_page)
devices.append(Device(d['path'], interface_number, devices.append(Device(d['path'], interface_number,
serial, product_key)) id_, product_key, usage_page))
# Now find out what was disconnected # Now find out what was disconnected
pairs = [(dev.path, dev.id_) for dev in devices] pairs = [(dev.path, dev.id_) for dev in devices]

Loading…
Cancel
Save