※ 引述《liaommx (Orz)》之銘言:
: ※ 引述《leicheong (睡魔)》之銘言:
: : SerialPort class有DataReceived這event的.
: 這個event要怎麼用呢?
: 因為data received的話,
: 是不是已經讀取才有datareceived的發生.
: 沒有讀取就不發生?
: 還是說連接上,serialport.open()之後,
: 只要有data就會有datareceived的狀態?
有Data想要進來, 就會觸發DataReceived這個事件, 你再到對應的處理函式裏去
用你的方式去讀serialport..
: : 讓EventHandler在這段時間把data存到buffer裡就可以了.
: eventhandler看了幾個都沒有寫的很明白.
: 等我弄清楚再提出問題好了..
: : 確認內容把兩邊都加上行號就足夠了?
: : Serial Port是Half Duplex的. 因此無法同時讀取/寫入.
: : 讀取/寫入的時機大多是看Handshake是用DTR/DSR或RTS/CTS吧.
: 我有點沒說明的很明白.
: 假設我和一個裝置連接,我必須傳送命令之後才會得到回應.
你的流程應該是這樣
port.Write送訊息去裝置 -> 裝置收到 -> 裝置處理 -> 裝置發回訊息 -> 訊息傳回
在訊息傳回到你的port時, 就會觸發DataReceived, 去call你的處理函式
所以你不用用timer或迴圈時時去看..把東西寫到對應處理函式裏就好
: 是不是能在這連接的serialport,傳送完畢之後立刻進入接收的狀態,
: 等待回應.
: 這樣的意思.
: 以上,codeproject的內容我還在消化中.
: 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.68.28.167