看板 C_and_CPP 關於我們 聯絡資訊
各位好,最近用CLR windows form application 寫一個視窗程式接收RS232(來源8051)的資料,並將資料即時顯示繪圖 基本上,8051資料送出的部份已確認沒問題 剩下就是視窗程式這邊資料漏接的問題 拜過Google大神,有人建議如下 (1) 建立一個監控RS232埠的thread (2) 將接收資料放置序列中 (3) 使用另一個thread做後處理(即繪圖等) 目前我的作法是用,VC2008內建的serialPort元件處理(1)的部份 (2) 則是採用Queue的方式去暫時存放資料 最後使用backgroundWorker去判斷Queue是否有東西,有的話將資料取出做後處理 但是,結果似乎沒有改善,不知道問題出在哪裡? 不知道各位先進可否可以指引我一個方向 ps. 我資料傳輸的量約 150 bytes/sec ,bps 設定為9600 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.103.111
hichcock:有查過是否 queue 長度不夠嗎?? 09/11 16:19
m490521:有沒有接usb<->RS232,若有嘗試換條看看 09/11 18:20
LM356:Queue長度應該夠,我嘗試過直接將資料丟到Queue後,在用一個 09/11 23:14
LM356:button等資料傳完,在去啟動繪圖,這樣問題會比較不明顯 09/11 23:15
LM356:但是如果要做到即時,速度增加,問題就會很明顯,有用過商 09/11 23:16
LM356:用軟體試過,RS232轉USB送過來的資料都是齊全的 09/11 23:18
Yshuan:我大學專題的做法跟你GOO到的一樣 09/12 19:33
vber:存取 Queue 的前後有加 mutex 嗎?? 09/12 20:50