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

