強力な動的プロット機能を利用したいので、 EnthoughtのTraits / TraitsUI / Chacoパッケージを調べています。Chaco プロットのセットを更新するために使用したい外部ソースからのデータがあります。との例を調べましたが、非同期入力イベントを受信するのではなく、繰り返し発生する Timer イベントでストリーム/ファイル/ソースから定期的にデータを取得します。spectrum.py
data_stream.py
タイマーを削除して、代わりに配列の更新を非同期にトリガーする方法は明確ではありません。タイマーを使用してポーリングすることは可能かもしれませんが、いくつかの異なる外部ソースを組み込むように拡張したいと考えており、これを管理するには何らかの「サーバー」プロセスが必要です。GUI メイン ループによって実際にブロックすることはできません。現時点では、予期せず発生する着信クライアント接続を受け入れ、それぞれがプロットする新しいデータを提供する TCP サーバーを組み込みたいと考えています。
すべてのソケット通信を処理できる 2 番目のスレッドをセットアップし、これを使用して呼び出し.set_data()
てプロットの再描画をトリガーすることは可能ですか? または、これは GUI のメイン ループに干渉したり、Traits/Chaco 内で競合状態を引き起こしたりしますか?
それとも、特性パラダイムでより理にかなっているこの問題について考える別の方法はありますか?