質問

私たちはPICマイクロコントローラを開発しているカスタムHIDデバイスにアクセスするためにlibhidを使用することに興味があります。私は正常に実行するにはtest_libhidコードを取得することができました。このライブラリを使用してデバイスへの読み込みと書き込みのための命令はtest_libhidのコード内のコメントとして提供されています。

私は、読み取りおよび書き込みのための文書化の手法に従うことを試みたが、これまでのところ、私は正常に読み取りまたはデバイスへの書き込みがされていません。私は、その理由は、デバイスのレポート記述子は入力と出力の両方のデータレポートのための64バイト配列を指定していることかもしれ疑います。

私はusb.orgからHIDセクションのデバイスクラス定義に含まれている内容を読んだことがある、と私は記述子は、一般的にはどのように機能するかを理解していることを考えると、彼らはHIDのパスに変換する方法、それにデータを読み書きするために私の試みデバイスが故障しています。

私は、デバイスがWindowsで動作するので、私の問題は、Linux側であるように見えることを確認しました。私はそれは問題でなければならないことはないと思うが、私は、現在のUbuntu 8.04サーバーを搭載したVMWareの仮想マシンに働いていることに注意してください。

誰もが、彼は(lsusbが-vvvから生成された)次のレポートディスクリプタのパスをHID指定する方法のいくつかのガイダンスを提供することができます:

Report Descriptor: (length is 29)
    Item(Global): Usage Page, data= [ 0x00 0xff ] 65280 
                        (null)
    Item(Local ): Usage, data= [ 0x01 ] 1
                        (null)
    Item(Main  ): Collection, data= [ 0x01 ] 1
                        Application
    Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                        (null)
    Item(Local ): Usage Maximum, data= [ 0x40 ] 64
                        (null)
    Item(Global): Logical Minimum, data= [ 0x00 ] 0
    Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
    Item(Global): Report Size, data= [ 0x08 ] 8
    Item(Global): Report Count, data= [ 0x40 ] 64
    Item(Main  ): Input, data= [ 0x02 ] 2
                  Data Variable Absolute No_Wrap Linear
                  Preferred_State No_Null_Position Non_Volatile Bitfield
    Item(Local ): Usage Minimum, data= [ 0x01 ] 1
                        (null)
    Item(Local ): Usage Maximum, data= [ 0x40 ] 64
                        (null)
    Item(Main  ): Output, data= [ 0x02 ] 2
                        Data Variable Absolute No_Wrap Linear
                        Preferred_State No_Null_Position Non_Volatile Bitfield
    Item(Main  ): End Collection, data=none
私はtest_libhidプログラムを実行すると、

また、それはこのようになり64個の同一のエントリとして解析ツリーをダンプします:

path: 0xff000001.0x00000000; type: 0x80

これらは、おそらく入力です。このリストは、次のようになり、他の64件のエントリが続きます:

path: 0xff000001.0x00000000; type: 0x90

私はlibhidメーリングリストに投稿しているが、そこに最近多くの活動が行われていなかったので、私は、私はここに私の質問をもたらすだろうと思いました。誰もがこの入力と出力のレポートのHIDパスを指定する必要があります方法についてのガイダンスを提供することができれば、それは途方もない助けになります。

感謝します。

scroll top