3

libusb 経由で (Linux ドライバーを持たない) デバイスと通信しようとしています。私は多くの基本的なコードを書き、Windows (ドライバーがある) で USB スヌーピング ソフトウェアを使用して、送信する必要があるコードを見つけました。ただし、以下に示すように「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 エンドポイントしか表示されないことです (私はこれに非常に慣れていません)。このエンドポイントにアクセスできるようにするために何かする必要がありますか?

4

1 に答える 1

0

デバイスを要求していない (google が libusb でデバイスを要求している) か、root として実行する必要があるか、または扱っているデバイスに報告方法が 1 つしかないかのいずれかです。はい、それは起こります。

HID デバイスには、入力、出力、機能レポートの 3 つの通信方法があります。ただし、HID 記述子によっては、デバイスが 1 つしかサポートしていない場合があります。その場合、機能レポートのみをサポートしていると思います。幸いなことに、これらのレポートは入力と出力を機能させます。(これは、DigiSparkを説明する方法です。)

これらのオプションはどれもうまくいかないかもしれませんが、試してみる価値はあります!

于 2013-07-16T15:49:53.197 に答える