Re: [問題] 關於RS232介面設計
※ 引述《LM356 (熱爆了!!)》之銘言:
: 各位好,最近用CLR windows form application
: 寫一個視窗程式接收RS232(來源8051)的資料,並將資料即時顯示繪圖
: 基本上,8051資料送出的部份已確認沒問題
: 剩下就是視窗程式這邊資料漏接的問題
: 拜過Google大神,有人建議如下
: (1) 建立一個監控RS232埠的thread
如您所說的 SerialPort 會做好所有的工作
: (2) 將接收資料放置序列中
SerialPort 有個 DataRecieved 事件,預設寫法是這樣的
serialPort.DataReceived += new
SerialDataReceivedEventHandler(serialPort_DataReceived);
一旦有資料進來,超過 threshold 就會呼叫
void serialPort_DataReceived( object sender, ev??? 忘記了)
這個 thread 跟你主程式的 thread 一定不一樣。所以有跨 thread的問題,
老實點就是用 delegate, 不然用笨方法,因為你的資料量非常低,
可以開一個 global variable 的 byte [] RxBuffer; 每次收到資料就是往這邊丟。
之後主程式那邊用個 timer 去檢查有沒有新資料,做處理與繪圖。
: (3) 使用另一個thread做後處理(即繪圖等)
: 目前我的作法是用,VC2008內建的serialPort元件處理(1)的部份
: (2) 則是採用Queue的方式去暫時存放資料
: 最後使用backgroundWorker去判斷Queue是否有東西,有的話將資料取出做後處理
: 但是,結果似乎沒有改善,不知道問題出在哪裡?
: 不知道各位先進可否可以指引我一個方向
: ps. 我資料傳輸的量約 150 bytes/sec ,bps 設定為9600
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.154.60
推
09/12 09:27, , 1F
09/12 09:27, 1F
→
09/12 11:26, , 2F
09/12 11:26, 2F
推
09/12 11:29, , 3F
09/12 11:29, 3F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章