2013-03-05 6 views
3

libusb를 통해 (Linux 드라이버가없는) 장치와 통신하려고합니다. 필자는 기본 코드를 많이 작성했으며 Windows에 (드라이버가있는) USB 스누핑 소프트웨어를 사용하여 코드를 보내야합니다. 단, 1 종점 I이 수행 될 때 도시되는 "lsusb -v -d 1267 : 0000"아래와 같이lsusb : 단 하나의 엔드 포인트를 사용할 수 있습니다.

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) 

I 아래로 데이터를 전송할 수있는 기록 포인트가되어야한다고하는 문제, 아직 이해가 끝난 읽기 엔드 포인트 인 0x81 엔드 포인트 만 표시됩니다. 이 엔드 포인트에 액세스하려면 무언가를해야합니까?

답변

0

기기 (Google에서 libusb로 기기를 소유하고 있음)를 주장하지 않았거나 루트로 실행해야하거나 상대 기기에 한 가지보고 방법 만 있습니다. 그렇습니다.

HID 장치에는 입력, 출력 및 기능 보고서의 세 가지 통신 방법이 있습니다. HID 설명자에 따라 장치가 하나만 지원할 수 있습니다. 이 경우 필자는 기능 보고서 만 지원한다고 추측합니다. 다행히도 이러한 보고서는 입력과 출력을 처리합니다. (이것이 바로 DigiSpark의 설명입니다.)

어쩌면이 옵션들 중 어느 것도 작동하지 않을 지 모르지만 그만한 가치가 있습니다!