讀取大量RS232資料到String Indicator顯示越來越慢?

請問當RS232 port一次丟給我大量資料時,我利用While Loop持續去讀取資料,並即時將它壘加顯示在String Indicator,一開始顯示都很正常,但後來發現在String Indicator上顯示會越來越慢,最後有時就會停止.但程式還是繼續有在跑.不知有沒有人遇到這情況過.可以解決的?

我有反覆測試過.有時可以很正常的跑完.有時就會顯示到一半,就停掉.但程式仍有在跑.

 

 

[QUOTE=Hicks]

請問當RS232 port一次丟給我大量資料時,我利用While Loop持續去讀取資料,並即時將它壘加顯示在String Indicator,一開始顯示都很正常,但後來發現在String Indicator上顯示會越來越慢,最後有時就會停止.但程式還是繼續有在跑.不知有沒有人遇到這情況過.可以解決的?

[/QUOTE]

String並不適合存取大量的data...

每一次跑回圈的時候String的字碼會重覆計算過一次,造成系統的負擔

建議是把每一段的資料放在array裡面,需要存取的時候再合併起來

另外,RS232存取也有Buffer,設定太大的話也會變的沒有效率的

 

謝謝您回答!

我會用到String indicator來顯示是因為有需要trace設備的log.因此會需要即時把RS232資料顯示出來,並且也有將資料寫入.txt.

所以實在沒辦法!如你說的方式去做!而我目前RS232的buffer為預設值.不知是否還有方式解決?

謝囉!

如果要設定buffer,在Instrument I/O>>Serial>>VISA Set I/O Buffer Size