本站网址: YippeeSoft开心软件
本文链接: VB MSComm 控件oncomm串口断开
MSComm 控件提供下列两种处理通讯的方式:
事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。
在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
Private Sub MSComm_OnComm ()
Select Case MSComm1.CommEvent
\’ Handle each event or error by placing
\’ code below each case statement
\’ 错误
Case comEventBreak \’ 收到 Break。
Case comEventCDTO \’ CD (RLSD) 超时。
Case comEventCTSTO \’ CTS Timeout。
Case comEventDSRTO \’ DSR Timeout。
Case comEventFrame \’ Framing Error
Case comEventOverrun \’数据丢失。
Case comEventRxOver\’接收缓冲区溢出。
Case comEventRxParity\’ Parity 错误。
Case comEventTxFull \’传输缓冲区已满。
Case comEventDCB \’获取 DCB] 时意外错误
\’ 事件
Case comEvCD \’ CD 线状态变化。
Case comEvCTS \’ CTS 线状态变化。
Case comEvDSR \’ DSR 线状态变化。
Case comEvRing \’ Ring Indicator 变化。
Case comEvReceive \’ 收到 RThreshold # of
chars.
Case comEvSend \’ 传输缓冲区有 Sthreshold 个字符 \’
\’
Case comEvEof \’ 输入数据流中发现 EOF 字符
\’
End Select
End Sub
如果监听过程中设备关闭,可以收到 oncomm事件,CommEvent 的comEventBreak。
ComEventBreak 1001 收到 Break 信号。
但是如果是串口断开,则只能收到ComEvCTS 3 CTS 信号发生变化。
但是刚开始打开串口的时候这个事件就会产生。
所以暂时想不出什么好办法判断监听过程中判断设备有效,除非定时发送指令侦测
原创文章,转载请注明: 转载自YippeeSoft开心软件
本文链接地址: VB MSComm 控件oncomm串口断开
历史博文
- 4G的U盘 启动盘 - 2010
- 20081110 c# 单进程 process - 2009
- 20071018 samba - 2008
- 20070209 源码编译 安装软件 PKG_CONFIG_PATH - 2007
- 0312 Windows Movie Maker nero - 2006
- Google Short Message Service (SMS) - 2005
评论