通過teechart畫實時曲線,接收100KHz采樣率的離散資料,并實時顯示,我通過AddArray添加資料,并取消了DrawAllPoints,但是在4,5s左右顯示速度就慢下來了,所以想問下各位有沒有什么解決方案。
uj5u.com熱心網友回復:
或者是對資料抽取的方法,或者是其他的控制元件。uj5u.com熱心網友回復:
winfrom下這個控制元件的效率應該是最高的了..自己畫的話,那實在是太麻煩了... 沒別的辦法了
uj5u.com熱心網友回復:
如果資料源是高頻,可以采用抽樣的方法顯示,類似于只顯示資料的趨勢,如果要查看更詳細的資料,
給用戶提供區域放大的功能
uj5u.com熱心網友回復:
對資料進行抽取有什么比較好的方法嗎,我之前是以固定的間隔提取資料,但是這樣顯示的波形效果很差。
uj5u.com熱心網友回復:
固定間隔抽數肯定會讓寫突變資料丟失,可以采用相對的比較簡單的特征值來抽取,
每個時間段取三個特征值:
開始時間的值,時間段內的最大值,段內的最小值
uj5u.com熱心網友回復:
請問 AddXY() 回圈描點久了 CPU占用率增加 有什么函式方法可以釋放掉AddXY()生成的記憶體嗎uj5u.com熱心網友回復:
大量高速資料其實你是不需要實時顯示詳細曲線圖的,你認真想想:如果使用特別牛逼的硬體和代碼顯示出來了,你要做什么?看到高點點停止?你手速能達到100kHz嗎?所以說,這么高頻資料的實時可視化這個需求本身應該在做推敲.
建議:先將采集到的資料快取起來或持久化,保證資料的完整性,可視化可以異步進行,并考慮可視化方案的優化,使用金字塔式可視化方案:具體思路可參考下地圖的放大縮小機制:大范圍預覽資料可以只抽取部分資料可視化(如界面中每次僅抽取10000組資料進行顯示),細節可以在放大時候渲染顯示.
uj5u.com熱心網友回復:
另外,還有個概念叫做"資料抽樣",可采用適當的抽樣方法,在資料可視化前,對資料進行合理抽樣,如"分層抽樣"等,減少不必要的計算占用uj5u.com熱心網友回復:
用堆疊這樣的資料結構,只存盤定量的資料比如500個點,多的就先進先出,全丟掉。用TeeChart寫過示波器,幾天都沒卡住過
uj5u.com熱心網友回復:
好的,謝謝您的指點,之前的想法確實有問題,我后面去改改。uj5u.com熱心網友回復:
live.charts 做的曲線實時監控電壓、電流,沒有慢的情況轉載請註明出處,本文鏈接:https://www.uj5u.com/net/16192.html
標籤:C#
上一篇:上傳圖片
下一篇:多張圖片拼接、融合、識別問題
