2

最大 255 のノードが USB 接続の仮想 COM ポートを介して Windows システムにトレース メッセージを送信するハードウェア テスト セットアップがあります。実際には、開いているすべてのシリアル ポートでポーリング ループを実行し、タイムアウトなしで readline を実行する小さな Python スクリプトを使用しています。読み取った行は、COM ポート ソースとタイムスタンプを追加してコンソールに出力されます。これは、ほぼリアルタイムで非常にうまく機能します。しかし、ご想像のとおり、CPU 使用率はかなり高くなっています。そこで、ポーリングせずにすべての COM ポートを並行してリアルタイムで監視する方法を探していました。

PySerial doc ( を探してくださいnonblocking())には、POSIX のような select インターフェイスがあると書かれていますが、UNIX OS でのみ使用できます。

何か案は?

4

1 に答える 1

1

私はねじれたものを見るでしょう、それはトリックをするかもしれません。リアクターによって実行されるシリアルポートモニターがあります。(ツイストは非同期です)。

私は、データフィードを受信し、リモートワイヤレスノードにデータを送信するJeeNode(arduinoクローン)を監視および通信する小さなWebサーバーを持っています。このコードの初期のカットは、https: //bitbucket.org/zutesmog/securitynode/src/93e29a7f3e26/SecurityConsole/secweb.pyで確認できます(少しハッキーですが、アイデアは得られます)。

ただし、これは、トラフィックの量やポートの数がほぼ同じである場合には対応していませんが、ポーリングではないため、拡張できるかどうかはわかりませんが、試してみる価値はあります。

于 2012-08-09T09:11:02.097 に答える