私は現在、測定デバイス用にセットアップする必要がある Qt GUI を扱っています。このデバイスは、ライン カメラから画像を非常に高速に取得するフレーム グラバー カードを使用しています。それほど複雑ではない私の画像処理は完了するのに 0.2ms かかり、QCustomPlot で信号と処理結果を表示するのに約 40ms かかりますが、まったく問題ありません。GUI 出力の他に、処理された信号は NI DAQ デバイスによってアナログ信号として出力されます。
私の問題は、一定の周波数でアナログ信号を更新し、それでも時々 GUI を更新する必要があることです。
私の現在のアプローチまたはアイデアは、データ プール スレッドと 2 つのワーカー スレッドを作成することでした。1 つのワーカー スレッドがフレーム グラバーからデータを受け取り、それを処理してデータ プールを更新します。2 番目のワーカー スレッドは、NI DAQ デバイスのクロックによって与えられる約 2 ~ 5kHz の特定の周波数で、NI DAQ のアナログ チャンネルを更新します。また、GUI スレッドは時々データ プールを読み取り、信号表示を約 20 ~ 30Hz のレートで更新します。
Qt スレッド管理とシグナル アンド スロット メカニズムを使用したかったのは、その「シンプルさ」と、Qt およびそのスレッド クラスと組み合わせてスレッドを既に使用していたためです。
誰かがアイデアや提案を持っていますか?スレッドのタイミングで問題が発生する可能性はありますか?
さらに、マルチコア CPU 上の 1 つの単一 CPU コアに 1 つのスレッドを割り当てて、このコアがこの単一スレッドのみを処理することは可能ですか?