lsusb: доступна только 1 конечная точка
Я пытаюсь связаться с устройством (у которого нет драйвера linux) через libusb. Я написал много базового кода и использовал программное обеспечение USB snooping для Windows (для которого есть драйвер), чтобы узнать коды, которые мне нужно отправить на него. Однако при выполнении "lsusb -v -d 1267:0000" отображается только 1 конечная точка, как показано ниже:
Bus 003 Device 005: ID 1267:0000 Logic3 / SpectraVideo plc
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x1267 Logic3 / SpectraVideo plc
idProduct 0x0000
bcdDevice 0.00
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 8
Device Status: 0x0000
(Bus Powered)
Проблема в том, что должна существовать конечная точка записи, чтобы я мог отправлять данные, но отображается только конечная точка 0x81, которая, насколько я понимаю, является конечной точкой чтения (я очень новичок в этом). Нужно ли что-то делать, чтобы иметь доступ к этой конечной точке?
1 ответ
Вы либо не заявили о своем устройстве (Google запрашивает устройство с libusb), вам нужно работать от имени пользователя root, либо у устройства, с которым вы работаете, есть только один метод отчета. Да, это происходит.
На любом устройстве HID существует три возможных способа связи: вход, выход и отчеты о функциях. В зависимости от дескриптора HID ваше устройство может поддерживать только один. В этом случае, я думаю, он поддерживает только отчеты о функциях. К счастью, эти отчеты работают на входе и выходе. (Так описывается DigiSpark.)
Возможно, ни один из этих вариантов не сработает, но они того стоит!