WindowsDLLに付属しているHID電話モニターがあります。これをLinuxに移植したい。
ソフトウェアは、イベントを報告するためにコールバック関数に依存しています。
このデバイスではLinuxがサポートされていないため、通信にはlibusbやhidapiなどの低レベルAPIに依存する必要があります。これらのいずれかを使用してイベントコールバックを実装する方法がわかりません。
ノンブロッキング読み取りでしょうか?似たような?
任意の提案をいただければ幸いです。
専用のファイル記述子上にある限り、ブロッキング読み取りは問題ありません。次に、アプリケーションはselect()
、他の記述子で他のイベントを待機するのと並行して、イベントを待機するために(または適切な抽象化を使用して)使用できます。
libusbは、デバイスからの同期読み取りと非同期読み取りの両方を処理するための十分なサポートを備えているようです。
HIDデバイスはすでに/dev/ inputの下に公開されており、おそらくあなたのデバイスは重要なイベントを生成します。大まかに言って、lsusbまたはトラバースsysfsを使用してデバイスを見つけ、/ dev / input / eventN(またはudevが作成するby-idまたはby-pathリンクの1つ)を開いてファイル記述子を取得し、イベントを読み取ります。Documentation/input/input.txt
インターフェイスのドキュメントについては、カーネルツリーを参照してください。とても簡単です。
デバイスに関する詳細情報がなければ、より具体的なアドバイスを提供することは困難です。