Delphi中,串口的发送接收超时的重发机制,如何处理实现的?快帮忙呀!

喜欢编程朋友 2004-08-18 05:20:43
我现在做串口的开发时,遇到了有关串口发送数据后没有接收到数据的超时,然后再次重发的机制,不知道怎样来实现这种机制?请大家帮忙!非常急需!
我用的MSComm.ocx控件,发送数据是在Timer中写的,接收数据写在MSComm1Comm事件中。不知道如何来实现这种机制?
请高手们帮忙解决吧,最好能说的详细一点,或者根据这个要求来做一个例子,非常感激!
E-mail:yaojp7519@tom.com
...全文
264 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
喜欢编程朋友 2004-08-19
  • 打赏
  • 举报
回复
怎样来定时检查缓存呀,能不能说的清楚一点,我实在是不知道,第一次开发这样的程序,请大家帮忙呀!多谢了!!!
solokey 2004-08-19
  • 打赏
  • 举报
回复
要求精度不高,用Timer就可以了。
在onTime事件里写检查缓存的代码。
我记得串口接收有个缓存的。这个难度应该不大。查查资料
solokey 2004-08-19
  • 打赏
  • 举报
回复
定时检查缓存,如果缓存为空,发消息给使其重发。
profan 2004-08-18
  • 打赏
  • 举报
回复
1. 添加一个 WatchDogTimer:TTimer;
2. 在WatchDogTimer的 OnTimer事件中写上
begin
WathDogTimer.Tag := WathDogTimer.Tag+1;
if WathDogTimer.Tag > 1 then
重发数据;
end;
MSComm1Comm事件中写上 WatchDogTimer.Tag := 0;
喜欢编程朋友 2004-08-18
  • 打赏
  • 举报
回复
快点帮忙来解决呀!!!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧