WPF でリアルタイム データを折れ線グラフとしてレンダリングする適切な方法を見つけようとしています。リアルタイムとは、実際には、約 40Hz のレートでデータを生成する USB デバイスから収集されるデータを意味します。複数 (最大 7 つ) のデータ ストリームがあり、非同期で 40Hz で読み取っています。
私は 2 つの既製のソリューション (WPF Toolkit チャートと Swordfish チャート) を使用してみましたが、Dynamic Data Visualization コンポーネントをほとんど調べましたが、フォーラムでいくつかのコメントを読んだ後、あきらめました。既製のチャート作成ソリューションは静的チャートを対象としているようで、実際には Windows タスク マネージャーに似たものが必要です。はるかに高速で、データ ポイントがはるかに多いだけです。
現在、私はこれまでで最もうまく機能しているように見える独自のソリューションを展開しましたが、それからより良いパフォーマンスを得ることができるように思われるため、何かが欠けていると感じています.
要件は、スライディング ウィンドウで約 10000 ポイントの一定の範囲を処理できる必要があることです。新しいデータが (40Hz で) 入ってくると、古いデータは可視範囲の左側に押し出されます。そして、このレートを少なくとも 20 ~ 30 分間維持する必要があります (データ ストリームあたり合計約 75 ~ 100,000 ポイント)。
私の現在のカスタム実装は、Shape から継承し、DefinigGeometry に StreamingGeometry を使用するコンポーネントに基づいています。デバイスから入ってくるデータはキューを介してコンポーネントに渡され、固有の「バースト効果」によりパフォーマンスが向上し、デキュー操作の後、コンポーネントは無効になります。
だから、私の質問は、私は正しい道を進んでいますか、それとも完全に間違っていますか? WPF でこのようなデータの視覚化を実現する最も効率的な方法は何ですか? どんな助けやヒントも大歓迎です。