問題タブ [usb-hid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 古いキーボード用の Linux カーネル モジュール / ドライバー / hid デバイスの作成
古い Compaq キーボードを使用していますが、その上に動作しないキー セットがあります。
xev
、evtest
、evemu-record
を試しましたが、libinput debug-events
これらのキーを除くすべてのキーが認識されます。
ただし、wireshark USB レコーダーをオンにすると、次のような出力が得られます。
これは、キーが実際に機能することを意味し、そのためのドライバーを作成する必要があるだけです。
現在、Linuxドライバーの作成経験はありませんが、具体的linux/drivers/hid/
にはgithub.com/torvalds/linuxhid-asus.c
を見て、各キーストロークをそれぞれの16進値で何らかの形で識別しなければならないことを知っています.
問題は、16 進ダンプの0000
,0020
および行のみが同じままで、 wireshark を介して記録するたびに異なるため、どこを見ればよいかを把握できることです。0030
0010
これはおそらく基本的なことだと思いますが、正しい方向に向けてください。つまり、この主題について読むことができるコンテンツを提供してもらえますか、またはどのように進めるべきかについて何か考えがありますか?
からの出力evtest
:
からの出力は次のlsusb
とおりです。
java - USB からの読み取りが Android アプリケーションをブロックするのはなぜですか?
スキャナが USB Hid に設定されている USB バーコード スキャナでバーコードを読み取る必要があります。通信にはhttps://github.com/benlypan/UsbHidを使用します 読み取りは機能しますが、問題は、デバイスに接続するとアプリがブロックされることです。デバイスへの接続はスレッドで確立されますが、とにかくブロックされます。スレッドはサービスで実行されています。
私はこのような問題を解決しました
ライブラリはバックグラウンドで使用します
タイムアウトに達した場合は、1000ミリ秒待ってからもう一度読み取りますが、これをより良い方法で行う可能性があるはずです。
アプリ全体をブロックせずに読む方法はありますか?
ありがとう