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, которая, по моему мнению, является конечной точкой чтения (я очень новичок в этом). Нужно ли что-то делать, чтобы иметь доступ к этой конечной точке?

3

Решение

Вы либо не заявили о своем устройстве (Google запрашивает устройство с libusb), вам нужно работать от имени пользователя root, либо устройство, с которым вы работаете, имеет только один метод отчета. Да, это происходит.

На любом устройстве HID существует три возможных способа связи: вход, выход и отчеты о функциях. В зависимости от дескриптора HID ваше устройство может поддерживать только один. В этом случае, я думаю, он поддерживает только отчеты о функциях. К счастью, эти отчеты работают на входе и выходе. (Это способ, которым DigiSpark описано.)

Возможно, ни один из этих вариантов не сработает, но они того стоит!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector