社区
VB基础类
帖子详情
想监测mscomm如果30秒收不到信息的话弹出对话框,请问应该怎样实现。
zhangwh6882
2002-08-28 10:41:35
如题
...全文
108
12
打赏
收藏
想监测mscomm如果30秒收不到信息的话弹出对话框,请问应该怎样实现。
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangwh6882
2002-08-29
打赏
举报
回复
好的,我试一下,多谢你了huxiangming(老虎)
huxiangming
2002-08-29
打赏
举报
回复
DoEvents不是延时,是交控制权。一般可以放在你执行耗时最厉害的循环里。循环每兜一次执行一下这语句。
zhangwh6882
2002-08-29
打赏
举报
回复
但我的程序是用oncomm接收的,一时也没有办法去改了,以后我会尝试采用你的方法的。
那么怎样加延时呢,是不是不加延时就不能把控制权交给其它事件,延时应该设为多少呢?麻烦了
huxiangming
2002-08-29
打赏
举报
回复
循环里加DoEvents主要是将控制权让出,这样其他事件才可以使用。
其实通信里的数据处理我习惯放在Timer里处理的。
如
Private Sub tmrReceive_Timer()
If MSComm1.InBufferCount Then
Buffer = MSComm1.Input
For i% = LBound(Buffer) To UBound(Buffer)
tmpReceive = tmpReceive & Hex(Buffer(i%)) & " "
Next i%
End If
End Sub
这样一次可以读比较多的数据,处理也方便。
zhangwh6882
2002-08-29
打赏
举报
回复
但是我需要将mscomm收到的信息进行处理存入到数据库中呀,我也很苦恼oncomm中语句太多,我没什么经验,请问有没有更好的处理办法。还有在循环里加DoEvents要怎样加呀,我知道发送信息的时候有时要加延时,接受的时候如果加的话不是更慢了么?
huxiangming
2002-08-29
打赏
举报
回复
你的oncomm里有太多的循环处理操作了吧?在循环里加上DoEvents 就可以了。
不过我要提醒你oncomm里的工作不要太多。
zhangwh6882
2002-08-29
打赏
举报
回复
huxiangming(老虎) :但是在监测mscomm_oncomm时可以把控制权交给timer()么?我刚才试了一下好象不太好用
huxiangming
2002-08-29
打赏
举报
回复
用定时器是比较理想的方法,简单的判别不会耽误多少时间的,可以这样考虑。定时器就做加1处理和判别,清这个计数可以在MSComm1_OnComm里。如果实在怕数据丢失的话可以加大MSComm1.InBufferSize的量。
zhangwh6882
2002-08-28
打赏
举报
回复
我试了一下,由于我的程序还得检测,MSComm1_OnComm()对收到的信息进行处理,不能把控制权交给Timer_Timer()中,所以这个方法好象没办法实现.请大家帮帮我!
zhangwh6882
2002-08-28
打赏
举报
回复
还有每一秒检测有没有可能会受到信息但恰好没有监测到的可能呀
zhangwh6882
2002-08-28
打赏
举报
回复
junglerover(灌木丛) 先谢谢你的帮助,你的方法能实现这个功能。但我想问问还有没有其他的方法了,最好是可以不用timer控件。因为我的街面上已经有两个timer控件了,在增加的话很不容易控制。
junglerover
2002-08-28
打赏
举报
回复
用一个窗体级变量做计数器;
再使用TIMER控件,每秒监视MSCOMM的INBUFFERCOUNT属性一次;
如果发现等于0,则计数器 + 1 ;反之,计数器清零。
如果计数器达到30,则弹出对话框。
串行通信的基本原理及用MFC
实现
串口通信编程
本文介绍了在Windows环境下
实现
串口通信的基本原理和编程方法,包括MFC下的MS
Com
m控件和32位API通信函数的应用。通过MS
Com
m控件可以方便地
实现
串口通信,而API函数则提供了更灵活的控制,尤其在结合非阻塞通信和多线程技术时,能够处理大量数据通信。文章通过实例详细讲解了串口的信号线接法、串口参数配置、数据读写操作以及如何利用辅助线程进行非阻塞通信。
用MFC
实现
串口编程
本文深入探讨Windows环境下串口通信编程,覆盖16位与32位API,详解串口信号线接法、串行通信原理及MS
Com
m控件与API函数的应用。特别聚焦32位下非阻塞通信、多线程技术,
实现
高效数据读写。
VC 6.0
实现
串口通信
本文详细介绍使用MFC
实现
串口通信的两种方法:利用ActiveX控件MS
Com
m和使用API通信函数。涵盖串行通信原理、信号线接法、16位与32位编程对比、非阻塞通信及多线程技术。
用MFC
实现
串口编程 (zhuan)
本文详细介绍串行通信原理及在Windows环境下用MFC
实现
串口通信的方法,包括使用ActiveX控件MS
Com
m和API技术。提供了Visual C++ 6.0下的MFC 32位应用程序实例。
MFC串口编程
本文详细介绍使用MFC
实现
串口通信的两种方法:利用ActiveX控件MS
Com
m和使用API通信函数。涵盖串行通信原理、信号线接法、16位与32位编程对比,特别强调32位环境下非阻塞通信与多线程的应用。
VB基础类
7,787
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章