请教vb中定时中断未处理完,下一个定时时间又到了会怎么处理?
我在做一个上位机,要隔一段时间就发送数据,每发送一次后等待下位机发来消息进行确认数据已经收到了。我用的是一个循环结构,当发送完数据后就不断循环检测上位机收到的应答信号是否...
我在做一个上位机,要隔一段时间就发送数据,每发送一次后等待下位机发来消息进行确认数据已经收到了。我用的是一个循环结构,当发送完数据后就不断循环检测上位机收到的应答信号是否是协议要求的信号。那么现在有个问题是,假如下位机出现问题了,一直没有回传应答信号,上位机程序会永远卡在循环检测那里,调试过程出现的情况是程序卡住,然后得关了重新开。请问怎么才能够解决如果下位机长时间未应答就跳出循环的功能呢?
展开
1个回答
展开全部
DoEvents
跳出当前程序
比如你可以设定
dim stoped as boolean
在你第一个程序里上来加入
stoped=false
循环做
while not stoped
...你的程序
DoEvents
wend
然后设定第二段程序
sub aaa()
设定起始时间,假设间隔10分钟
stoped=true
这样过10分钟,stoped变成TRUE,前面循环就停了
跳出当前程序
比如你可以设定
dim stoped as boolean
在你第一个程序里上来加入
stoped=false
循环做
while not stoped
...你的程序
DoEvents
wend
然后设定第二段程序
sub aaa()
设定起始时间,假设间隔10分钟
stoped=true
这样过10分钟,stoped变成TRUE,前面循环就停了
追问
可能我没描述清除,我是每隔40毫秒发送一段数据,一段数据包括八个数据,也就是一个中断要发送八个数据,每发送一个数据就等待应答,知道八个数据发送完才结束这次中断
追答
那也是一样的,不过是把STOPED=TRUE放到发送完8个数据再执行就可以了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询