Я пытаюсь связаться с устройством (у которого нет драйвера 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, которая, по моему мнению, является конечной точкой чтения (я очень новичок в этом). Нужно ли что-то делать, чтобы иметь доступ к этой конечной точке?
Вы либо не заявили о своем устройстве (Google запрашивает устройство с libusb), вам нужно работать от имени пользователя root, либо устройство, с которым вы работаете, имеет только один метод отчета. Да, это происходит.
На любом устройстве HID существует три возможных способа связи: вход, выход и отчеты о функциях. В зависимости от дескриптора HID ваше устройство может поддерживать только один. В этом случае, я думаю, он поддерживает только отчеты о функциях. К счастью, эти отчеты работают на входе и выходе. (Это способ, которым DigiSpark описано.)
Возможно, ни один из этих вариантов не сработает, но они того стоит!
Других решений пока нет …