Linux上でlibhidを使用したUSB HIDデバイス用HIDパスの決定
質問
私たちは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パスを指定する必要があります方法についてのガイダンスを提供することができれば、それは途方もない助けになります。
感謝します。
解決
は、多くの試行錯誤の後、私は私のターゲット・デバイス用のレポート記述子で動作するようにlibhidを得ることができませんでした。私は、HIDデバイスインターフェイス(hiddevは)非常によく働いていたことがわかりましたし、実際に理解することは非常に簡単でした。私は非常にお勧めhiddev の良い PDFリファレンスがあります。またの/ usr / include / linuxの中に含まれたファイルhiddev.hも非常に役に立ちました。 Ubuntuの8.04で、hiddevインタフェースは必要ありません追加の設定で、「箱から出して」働いています。
うまくいけば、これは問題LinuxホストへのHIDデバイスのインタフェースを持って次の人にいくつかの助けになるでしょう。
注:私は上記の.PDFファイルのために提供されるリンクは消えてしまったようです。私はここでの .PDFファイルのコピーを掲載しました。そのフリーファイル共有サービス、あなたはそれをダウンロードするために、いくつかの広告を我慢する必要があります。