第一范文网 - 专业文章范例文档资料分享平台

VB中关于MSComm控件使用详解 (3)

来源:用户分享 时间:2020-06-22 本文由江畔旧时月 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

If DEBFLG= 0 Then

Form1.Width = Form1.Width - Text5.Width Text5.Enabled = False Text5.Visible = False End If

On Error GoTo ERROR_FORM_LOAD '检测可用串口 For C = 1 To 4

If MSComm1.PortOpen Then MSComm1.PortOpen = False MSComm1.CommPort = C

If Not MSComm1.PortOpen Then MSComm1.PortOpen = True

If MSComm1.PortOpen Then MSComm1.PortOpen = False If COMX = 0 Then COMX = C FORM_LOAD_1: Next C

If COMX = 0 Then End On Error GoTo 0

Option1(COMX - 1).Value = True Exit Sub

ERROR_FORM_LOAD:

Option1(C - 1).Enabled = False Resume FORM_LOAD_1 End Sub '选择串行口

Private Sub Option1_Click(Index As Integer) COMX = Index + 1 Call INIT_MODEM End Sub

'初试化Modem

Private Sub INIT_MODEM()

If MSComm1.PortOpen Then MSComm1.PortOpen = False MSComm1.CommPort = COMX

If Not MSComm1.PortOpen Then MSComm1. PortOpen = True

MSComm1.Output = “AT#CID=1” + vbCr '检查Modem命令是否完成 Call CHK_MODEM

MSComm1.Output = “ATS0=0” + vbCr End Sub

'检查Modem命令是否完成 Private Sub CHK_MODEM() Dim T As Single Dim L As Integer

T = Timer Do

COMBUF = COMBUF + MSComm1.Input L = InStr(1, COMBUF,“OK”)

Loop Until L <> 0 Or Timer - T > 1 If L = 0 Then

Line1.Visible = True Line2.Visible = True Form1.Show

MsgBox “MODEM未联机”,vbOKOnly+vbCritical,“测试MODEM”Else

Line1.Visible = False Line2.Visible = False End If End Sub

'串行口接收事件处理

Private Sub MSComm1_OnComm() Dim CH, ST As String Dim LC As Integer

Select Case MSComm1.CommEvent '接收到Rthreshold个字符 Case comEvReceive

COMBUF = COMBUF + MSComm1.Input '读取串口数据 Do

LC = InStr(1, COMBUF, Chr(10)) If LC = 0 Then Exit Do

COMLIN = Left(COMBUF, LC)

COMBUF = Mid(COMBUF, LC + 1) CH = Left(COMLIN, 1)

If “ ” < CH And CH < Chr(127) And DEBFLG = 1 Then Text5.Text = Text5.Text + COMLIN Text5.SelStart = Len(Text5.Text) End If

'截取来电号码,并显示

If InStr(1, COMLIN“NMBR=”)<> 0 Then ST = Mid(COMLIN, 8)

Text2.Text=“ ”+Left$(ST,Len (ST) -2) + “ ” Form1.WindowState = 0 Timer1.Enabled = True Call BEEP_NO

'截取来电日期,并显示

ElseIf InStr(1, COMLIN, “DATE = ”) <> 0 Then Text3.Text = Str(Year(DATE)) +

“.”

+ Mid(COMLIN, 8, 2) + “.” + Mid(COMLIN, 10, 2) + “ ” '截取来电时间,并显示

ElseIf InStr(1, COMLIN, “TIME = ”) <> 0 Then

Text4.Text = “ ” + Mid(COMLIN, 8, 2) + “:” + Mid(COMLIN, 10, 2) '检测振铃个数

ElseIf InStr(1, COMLIN, “RING”) <> 0 Then Call BEEP_NO

If HANGUP = 1 Or BEEPNO = 15 Then Call HANG_UP '检测是否停止振铃

ElseIf Left(COMLIN, 3) = “000” Then BEEPNO = 0

Timer1.Enabled = False Form1.WindowState = 1 ProgressBar1.Value = 0 Frame3.Caption = “振铃数” End If Loop

'其他事件处理 Case comEvCTS Case comEvDSR Case comEvCD Case comEvRing Case comEventBreak Call INIT_MODEM Case Else

MsgBox “串口接收事件号:” & MSComm1.CommEvent & “ ”, vbOKOnly + vbCritical, “测试串行口” End Select End Sub

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育VB中关于MSComm控件使用详解 (3)全文阅读和word下载服务。

VB中关于MSComm控件使用详解 (3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1095932.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top