OS X \ Python 2.7.15 оснащен USB-сканером:
user$ lsusb | grep Metrologic
Bus 250 Device 005: ID 0c2e:9a6c 0c2e Metrologic Scanner
Оператор python, пытающийся открыть устройство HID:
h.open(0x0c2e, 0x9a6c) # METROLOGIC VendorID/ProductID
выдает сообщение об ошибке:
user$ python2 test5.py
Traceback (most recent call last):
File "test5.py", line 46, in <module>
h.open(0x0c2e, 0x9a6c) # METROLOGIC VendorID/ProductID
File "hid.pyx", line 66, in hid.device.open
IOError: open failed
Устройства HID перечислены с Python HIDAPI :
### enumerate USB devices
for d in hid.enumerate():
keys = list(d.keys())
keys.sort()
for key in keys:
print("%s : %s" % (key, d[key]))
print()
и возвращает информацию о целевом HID-устройстве:
interface_number : -1
manufacturer_string : Metrologic
path : IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/EHC2@1A,7/EHC2@fa000000/PRT1@fa100000/IOUSBHostDevice@fa100000/AppleUSB20InternalHub@fa100000/PRT3@fa130000/Metrologic Scanner@fa130000/IOUSBHostInterface@0/IOUSBHostHIDDevice@fa130000,0
vendor_id : 3118
product_id : 39532
product_string : Metrologic Scanner
release_number : 21574
serial_number :
usage : 6
usage_page : 1
Пытается открыть устройство HID с десятичными (вместо шестнадцатеричных) аргументами:
h.open(3118,39532) # METROLOGIC VendorID/ProductID
также не удается:
user$ python2 test5.py
Traceback (most recent call last):
File "test5.py", line 47, in <module>
h.open(3118,39532) # METROLOGIC VendorID/ProductID
File "hid.pyx", line 66, in hid.device.open
IOError: open failed
ВОПРОСЫ
- Достаточно ли здесь информации для диагностики или необходимо выполнить другой тест для диагностики сбоя?
- Не верны ли аргументы h.open ()?
- Каковы следующие шаги / стратегия для диагностики и исправления?
Любые диагностические вопросы приветствуются, и ответы будут обновляться до исходного сообщения.