mscomm控件,事件触发问题???

dreambox 2003-03-12 10:12:26
使用mscomm控件,如何触发OnComm事件来接收发送端发送的数据
...全文
51 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shepherd228 2003-03-12
  • 打赏
  • 举报
回复
Private Sub MSComm2_OnComm()
Dim iInBuffCount As Integer
Dim valRev As Variant
Dim J As Integer

With MSComm2
On Error Resume Next
Select Case .CommEvent
Case comEvReceive '值2,收到Rthreshold个字符。
.NullDiscard = True
iInBuffCount = .InBufferCount - 1
.InputLen = 0
If iInBuffCount Then
.InputMode = comInputModeText
Sleep (75)
EntDY .Input

' Label31.Caption = Hex(AD_HEX(valRev))
Select Case Balance

Case 1 '第一路采样
Str2 = Str2 + Val(EvtCut1)
'Str = Val(EvtCut1) * V * BiaoDing1 + Str
'Label20.Caption = Mid(Ascii(EvtCut1), 1, Len(Ascii(EvtCut1)))
i = i + 1
Label21.Caption = Str2
'Label22.Caption = Ascii(Str)
Label29.Caption = AD_HEX(EvtCut1)
Label23.Caption = i
...................................


Case comEvSend '值1,在传输缓冲区中有比Sthreshold数少的字符;

Case comEvEOF '值7,收到文件结束字符;

Case comEvRing '值6,检测到振铃信号;

Case comEvCD '值5,Carrier Detect线的状态发生变化;

Case comEvDSR '值4,Data Set Ready线的状态发生变化;

Case comEvCTS '值3,Clear To Send线的状态发生变化;

'-----------错误的返回信息---------------;

Case comEventBreak '1001 接到一个中断信号;

Case comEventCTSTO '1002 Clear To Send超时。规定时间内传输一个字符时Clear to send 线为低电平;

Case comEventDSRTO '1003 data set ready超时。规定时间内传输一个字符时data set ready 线为低电平;

Case comEventFrame '1004 帧错误。硬件检测到一帧错误;

Case comEventOverrun '1006 端口超速。字符丢失;

Case comEventCDTO '1007 载波检测超时;

Case comEventRxOver '1008 接受缓冲区溢出。

Case comEventRxParity '奇偶校验错;

Case comEventTxFull '传输缓冲区满;

Case comEventDCB '检索DCB时意外错;

End Select
End With
End Sub
Sean918 2003-03-12
  • 打赏
  • 举报
回复
只要接收到数据,它自己就会触发
lilimaoming 2003-03-12
  • 打赏
  • 举报
回复
1、将RThreshold设为你希望接收到多少字节触发一次OnComm事件(如MSComm1.RThreshold=1则接收到1字节就触发一次);
2、若接收二进制,则将 MSComm1.InputMode = comInputModeBinary;若接收文本,则
MSComm1.InputMode = comInputModeText;
3、在OnComm事件中用TMP_VAR=MSComm1.Input读取接收内容(若是接收二进制,需用字节数组处理接收的内容)。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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