こんにちは、
シリアル ポート経由でイベントを監視する最善の方法について、いくつか提案をお願いしたいと思います。
PySerial を使用して、シリアル ポート経由で一部のデバイスに「コマンド」を書き込んでいます。
このデバイスのステータスに関するフィードバックを受け取りたいです。
最良の方法はどれですか: 1) パイプをいっぱいにして読み込む、2) 読み取り専用に委任された新しいスレッド、または何?
ソリューションを実装するための簡単なコードもお願いできますか?
pyserialの操作に関する一般的なヒントについては、コメントで提案されているS.Lottの検索を参照してください。
アプリケーションを実装するための最良の戦略に関しては、すべてプロトコルがどのように定義されているかによって異なります。デバイスはすぐにクエリに応答しますか?それとも、監視する必要のあるデータを継続的に送信していますか?これは、コミュニケーションの処理方法に確かに影響するため、定義することが重要です。
一般に、シリアルポートからすべてを読み取り、データをにポンプするだけの別のスレッドを使用するのは簡単で安定していることがわかりましたQueue
。メインアプリケーションロジックは、必要なときにいつでもこのキューにクエリを実行して、データを読み取ることができます。
選択された戦略は、python マルチプロセッシングとキューを使用することです。
参考のため