作者james999 (无伤大雅)
看板C_Sharp
标题[问题] C# 串列传输撰写技巧及工具请益
时间Tue Dec 12 23:06:55 2017
小弟最近在撰一个串列传输的小程式,
程式启动後透过一个Timer不停的发送命令至串口,
但是因为串口另一端设备限制的缘故,
PC送出一次命令至串口後,必须等待设备回传後才能再送下一次命令,
若是一直收不到设备回传的命令时,且下次Timer触发的时间又到了,
那麽希望本次的等待就放弃,重新回到Timer触发时的行为。
板友能否指引些「关键字」或「技巧」帮助我完成这样的功能呢?
谢谢大家。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.230.139.65
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1513091218.A.BFE.html
※ 编辑: james999 (61.230.139.65), 12/13/2017 00:21:27
1F:推 anumis: 这不是基本的Handshake吗?一来一往,收到回复再才再发送 12/13 01:47
2F:→ anumis: 你送出後,起一超时计算Timer, 如果在时限内对方回复了, 12/13 01:50
3F:→ anumis: 那你就再次发送讯息,反之就不做任何事 12/13 01:50
4F:推 pzyc79: C# Serialport 完整接收资料 12/13 07:27
5F:推 jamyang: 等recieve的event触发後再送data 12/13 20:06
6F:→ james999: jamyang 不过送的资料是在timer里..不在read的callback 12/14 11:34
7F:→ singledream: timer维护命令,recieve event收到再去发送。不过 12/29 10:17
8F:→ singledream: 你要维护好共用变数的话,记得保护机制要写好。 12/29 10:18
9F:→ singledream: 你等的命令通常都是专有的,如anumis及jamyang所叙 12/29 10:20
10F:→ singledream: 没等到你要的response也要注意一下。 12/29 10:21