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

江畔旧时月 分享 2020-06-22 下载文档

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


VB中关于MSComm控件使用详解 (3).doc 将本文的Word文档下载到电脑

下一篇:学校后勤管理经验交流[1](3000字)

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx