0

商用ソフトウェア パッケージからシミュレーション プロセスを監視したいと考えています。商用ソフトウェアは、シミュレーション プロセスの各ステップで実行されるコールバック関数とともに、プロセスの初期化コールバック関数を持つ C API インターフェイスを提供します。各ステップで、コールバック関数で使用できる約 10 個の float 値を監視/プロットしたいと考えています。値を監視および表示するために、 http: //www.arction.com/ の LightningChart などのプロット ツールを使用する予定です。チャートを更新するプロセスの各ステップで、C++/CLI ラッパーを使用して .NET チャート ライブラリを呼び出します。

API コールバック関数を使用して値をテキスト ファイルに出力する単純な dll を既に作成しました。このファイルでは、完了後にプロットと分析を実行します。私の目標はデータをリアルタイムで見ることですが。

私の質問は、シミュレーション プロセスの初期化コールバックで、プロセス全体で永続的なフォームを呼び出す方法と、各ステップで更新できるフォームを呼び出す方法です。また、永続的なプロセスパラメータ値を格納するための理想的なデータ構造は何ですか? C++ を使用してコールバック関数を使用してデータ値をテキスト ファイルに書き込む場合、i7 プロセッサの速度は毎秒約 1700 ステップです。API とコールバック関数を使用してデータを保存しない場合、シミュレーション速度は毎秒約 4000 ステップです。リアルタイム データをグラフ化する場合、明らかにこれは劇的に遅くなると予想されますが、それは許容範囲内です。何かご意見は?

4

1 に答える 1

0

リアルタイムデータをグラフ化する場合は、シミュレーションプロセスとコールバック関数の間でデータを共有するためにメモリマップトファイルを使用することをお勧めします。これは、物理ファイルに対してI / O操作を実行するよりも高速であり、データを共有できます。初期化関数では、フォームを作成し、メモリマップトファイルを使用してコールバックからフォームの値を更新できます。これがメモリマップトファイルのリンクですlink1link2

于 2013-01-03T06:27:02.950 に答える