伊莉討論區

標題: 讀取訊號用Timer適合嗎? [打印本頁]

作者: vx96825k    時間: 2013-2-22 10:53 PM     標題: 讀取訊號用Timer適合嗎?

最近在進行使用VB2010編寫讀取串列訊號的程式,我使用的方法是利用Timer進行自動讀取,可是我遇到一個問題,

當我從儀器讀取大量資料時發現使用Timer讀取會發生資料短少,也就是會漏資料

請問有人遇過這種狀況嗎?

還是讀取資料應該使用委派或是建立執行緒
作者: gpgpi    時間: 2013-2-23 01:15 AM

你寫的東西都是參考
Visual Basic 2010與自動化系統監控:RS232串列通訊篇
這本書的,書上不是都寫得很明白?怎麼還在問這種問題
作者: vx96825k    時間: 2013-2-23 01:14 PM

我只是想知道有沒有使用Timer準確收資料的方法
這在Visual Basic 2010與自動化系統監控:RS232串列通訊篇書上沒有提到
作者: darkjack    時間: 2013-2-24 01:14 AM

本帖最後由 darkjack 於 2013-2-24 01:17 AM 編輯

用 Timer 會lost 資料很正常阿 因為他準確性沒那麼高阿
timer 只是方便使用而已 你網路查一下 Timer 的精確度
如果多個Timer ,會lost 更嚴重!
如果真的要很準確接收資料 那請你用 Thread 或者 backgroundworker並且配合使用 api 的 GetcountTicker  ,queryperformancecounter , TimeGetTime

作者: gpgpi    時間: 2013-2-24 01:43 AM

設備也會延遲,timer也會延遲,如果你能讓timer跟設備延遲的時間一樣,那就不會loss資料,不過基本上不可能
不過最準確的方法是,你要能知道設備傳來的資料長度(或起始&結束位元),依照資料長度(或起始&結束位元)來收資料,那即使用timer收資料也不會出現資料突然多一個位元或是少一個位元的問題

但還是有其他方法收資料,書上有一定有寫,看清楚那些用法吧




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!