看板 C_Sharp 關於我們 聯絡資訊
小弟最近在撰一個串列傳輸的小程式, 程式啟動後透過一個Timer不停的發送命令至串口, 但是因為串口另一端設備限制的緣故, PC送出一次命令至串口後,必須等待設備回傳後才能再送下一次命令, 若是一直收不到設備回傳的命令時,且下次Timer觸發的時間又到了, 那麼希望本次的等待就放棄,重新回到Timer觸發時的行為。 板友能否指引些「關鍵字」或「技巧」幫助我完成這樣的功能呢? 謝謝大家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.139.65 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1513091218.A.BFE.html ※ 編輯: james999 (61.230.139.65), 12/13/2017 00:21:27
anumis: 這不是基本的Handshake嗎?一來一往,收到回復再才再發送 12/13 01:47
anumis: 你送出後,起一超時計算Timer, 如果在時限內對方回復了, 12/13 01:50
anumis: 那你就再次發送訊息,反之就不做任何事 12/13 01:50
pzyc79: C# Serialport 完整接收資料 12/13 07:27
jamyang: 等recieve的event觸發後再送data 12/13 20:06
james999: jamyang 不過送的資料是在timer裡..不在read的callback 12/14 11:34
singledream: timer維護命令,recieve event收到再去發送。不過 12/29 10:17
singledream: 你要維護好共用變數的話,記得保護機制要寫好。 12/29 10:18
singledream: 你等的命令通常都是專有的,如anumis及jamyang所敘 12/29 10:20
singledream: 沒等到你要的response也要注意一下。 12/29 10:21