Я хотел бы написать код Python для связи с устройством (клавиатурой) через его сырой скрытый интерфейс. Клавиатура представляет несколько устройств HID хосту (клавиатура, системные клавиши, мышь, raw hid и т. Д. c), и я могу определить правильное устройство только по атрибутам «Страница использования» и «Использование».
Я посмотрел на модуль Python hid
(как упаковано в python3-hidapi-0.7.99.post20-13.fc31.x86_64
в Fedora 31), но в возвращаемом значении hid.enumerate()
значения для usage_page
и usage
равны 0
во всех случаях:
>>> import hid
>>> import pprint
>>> pprint.pprint([(x['path'], x['usage_page']) for x in hid.enumerate() if x['vendor_id'] == 1240 and x['product_id'] == 61138])
[(b'0002:0010:00', 0),
(b'0002:0010:02', 0),
(b'0002:0010:03', 0),
(b'0002:0010:01', 0),
(b'0002:0010:04', 0),
(b'0002:0010:05', 0)]
Есть ли способ получить информацию usage_page
из Python? Похоже, это раскрыто в дескрипторе отчета об устройстве, доступном в sysfs через /sys/class/hidraw/hidraw<N>/device/report_descriptor
, но я бы хотел не изобретать велосипед заново, если возможно, написать свой собственный код перечисления.