そのため、設定されたフレームレート(10fpsなど)で整数を送信するデバイスがあります。 USBケーブルを介して私のLinuxシステム(ubuntu 20.04)に接続され、ttyACM0として認識されます。この開発者をキャプチャし、受信した入力を表示できます。
しかし、私が望むのは、デバイスをポーリングする関数/スクリプトをcまたはbashに書き込むことです。したがって、理想的には99%の時間に新しい入力を受け取るとそれを読みます。それ以外の場合は何も返されませんが、ポーリングしてフレーム整数のいずれかを受け取った場合は値が返されます。
この問題を解決するための最良の方法は何ですか?フレームが受信されるたびにコールバックがトリガーされるように、イベント中心のアプローチはより良く正確ではありませんか?
答え1
文字通り説明しました。poll
システムコール/libcラッパー関数。 C / C ++で直接使用することも、次の方法で使用することもできます。select
基準寸法Pythonで。poll
タイムアウト0を使用してください。
poll
Bashにはor機能はありませんselect
。あなたがやっていることは、実際にはシェルスクリプトのアイデアに従いません。 (これが私が上記のPythonに言及した理由です。多くのユースケースでは、これはシェルスクリプトと同じくらい簡単なので、C ++またはCに頼らずにこの種のデータ処理をはるかに簡単にします。C ++またはCでデータを操作する) - 正しい自動ライフサイクル、タイプの安全性、実際のコンテナタイプ、C ++のより良いフロー制御は、あなたの人生をより簡単かつ安全にします)。