私は組み込みシステムで作業しています。ユーザーがキーボード(すなわちバーコードスキャナ)をエミュレートするHIDデバイスを実際に接続しているかどうかを判断する必要がありますキーボード。USB HIDデバイスがキーボードをエミュレートしているときを検出する信頼できる方法
iManufacturer、iProduct、iSerialNumber、およびiInterfaceの文字列記述子を調べて、手がかりを得ることができます。たとえば、バーコードリーダーが接続されている場合、「リーダー」または「スキャナ」がiProduct文字列に表示されることが確認されています。同様に、iInterface文字列には「エミュレーション」があります。しかし、私はこれらの文字列だけに頼ることに少し躊躇しています(文字列の場合は扱いやすいほど簡単ですが、キーワード/フレーズの略語などの扱いはすぐに面倒です)。
私はUSB 1.10と1.11仕様では、レポート記述子にもいくつかの手掛かりがあることがわかりました。たとえば、グローバル使用アイテムはGeneric Desktopの場合は0x0501、ローカル使用アイテムは0x0906(キーボード)でなければなりません。違いを検出するのに役立つレポート記述子には他に何かがありますか?
これは限られたリソースを持つ組み込みシステムなので、ベンダーIDとプロダクトIDリストに頼らないようにしたいと思います。提案?私が見逃したことはありますか?
あなたは、このようなことをLinuxがどのように扱うと言いましたか? –
私は、Linuxにキーボードとかキーボードのようなものをあいまいにする必要があるとは思わない。 – Throwback1986