簡體   English   中英

使用Qt,QWT和C ++進行實時數據繪圖

[英]Real Time Data Plotting With Qt, QWT and C++

我是Qt,QWT的新手,並且具備C ++的基礎知識。

根據我得到的項目,我必須獲取大篷車上傳感器給出的一些數據,如太陽能電池板的電壓和電流,溫度,濕度等。 所有這些數據都由一些傳感器采集並由NI 6229 DAQ設備采集。

直到現在,我只是給了側燈。 現在我要解決真正的問題。

我想獲取來自DAQ設備的數據並顯示,繪制,記錄和登錄程序。

我決定使用C ++,Qt和QWT。 當然,NIDAQMX API用於從DAQ設備獲取數據。

我已經部分設計了一個GUI,但我卡住的地方是我的代碼的真正工作部分。

我不知道如何考慮性能標准來實現所有這些東西,我真的需要一個指南。

我該如何處理數據采集?

我應該如何繪制我獲得的數據?

這些是否需要由不同的線程或其他結構分開?

收集幾乎10或12個通道數據並實時繪制數據會導致合理的性能問題嗎? 如果是這樣,我該如何處理?

提前致謝。

如果編寫一個簡單的程序來使用NI 6229,則需要設置操作的優先級:繪制或記錄數據。
在大多數情況下,數據存儲是最重要的操作。
在我的實踐中,我使用了以下算法:

  • 1個GUI線程(通用UI +繪圖),1個用於每個設備數據采集的線程,1個用於記錄數據的線程。
  • 用於數據采集的線程每dT時間運行一次(我們詢問設備: - 准備好多少數據? - 10000個樣本 - 確定,給它一點)。 由於NI 6659的采樣頻率低於1 MSamples / s,我認為dT的值大約為50-200 ms(取決於接口)。
  • 從設備讀取數據后,我使用隊列將數據發送到線程進行記錄。
  • 關於繪圖也一樣。 我使用qwt進行數據抽取(但你應該保存峰值)。 Qwt也沒有不好的例子。 您還可以找到提高繪圖性能的解決方案。 我的建議是將圖表拆分為組,例如,一組可能包含4個圖表。

它只是簡單程序的解決方案,而不是實時操作系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM