2013-03-05 3 views
3

Я пытаюсь установить связь с устройством (которое не имеет драйвера linux) через libusb. Я написал много базового кода и использовал программное обеспечение USB snooping на окнах (для которых есть драйвер), чтобы узнать коды, которые мне нужно отправить на него. Тем не менее, только один конечный пункт показывается, когда я выполнить «lsusb -v -d +1267: 0000», как показано ниже:lsusb: доступно только 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, которая, по моему мнению, является конечной точкой чтения (я очень к ней знаком). Нужно ли мне что-то делать, чтобы иметь доступ к этой конечной точке?

ответ

0

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

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

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

Смежные вопросы