看板 C_Sharp 關於我們 聯絡資訊
※ 引述《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