⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdlcommon.bas

📁 这是一个通过手机串口实现短信发送的实例
💻 BAS
📖 第 1 页 / 共 4 页
字号:
            If blTmp Then
                If iLen <> 99 Then
                    nTmpSignal = CLng(iLen / 31 * 5)
                    strImgKey = "Signal" & nTmpSignal
                    CommandStatus = "信号质量是:" & nTmpSignal
                End If
                strThisAt1 = ""
            End If
            AnalysisData = blTmp
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Case "+CMGR:"
            CommandStatus = "完毕"
            iCr = InStr(strTmpSave1, "OK" & vbCr)
            If iCr > 0 Then
                '去除双引号
                For i = 1 To Len(strTmpSave1)
                    strTmp1 = Mid(strTmpSave1, i, 1)
                    If strTmp1 <> """" Then strTmp = strTmp & strTmp1
                Next i
                strTmpSave1 = strTmp
                
                g_blIsSysBusy = False
                g_blIsSendingSMS = False
                'iTmp = SaveDataToDB(strTmpSave1, False)
                CommandStatus = "完毕。"
                iCr = InStr(strTmpSave1, "OK" & vbCr)
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iCr - 2)
                strThisAt1 = ""
                AnalysisData = True
            ElseIf InStr(strTmpSave1, "ERROR:") > 0 And InStr(strTmpSave1, vbCr) > 0 _
                   Or InStr(strTmpSave1, "ERROR" & vbCr) > 0 Then
                g_blIsSysBusy = False
                g_blIsSendingSMS = False
                CommandStatus = "序号为" & strTmp & "的短信不存在。"
                iCr = InStr(strTmpSave1, vbCr)
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iCr)
                strThisAt1 = ""
                AnalysisData = True
            Else
                CommandStatus = "正在读取短信···"
                AnalysisData = False
            End If
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Case "+CMSERROR:"
            iCr = InStr(strTmpSave1, vbCr)
            g_blIsSysBusy = False
            g_blIsSendingSMS = False
            If iCr > 0 Then
                strTmp = Left(strTmpSave1, iCr - 1)
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iCr)
                iLen = InStr(strTmp, ":")
                CommandStatus = "错误:" & Right(strTmp, Len(strTmp) - iLen)
                strThisAt1 = ""
                AnalysisData = True
            Else
                AnalysisData = False
            End If
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Case "+CMTI:" '+CMTI: "SM",1
            CommandStatus = "新信息:"
            If InStr(strTmpSave1, vbCr) > 0 Then
                iLen = InStr(strTmpSave1, vbCr)
                strTmp = Left(strTmpSave1, iLen - 1)
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iLen)
                iLen = InStr(strTmp, ",") '=12
                iTmp = InStr(strTmp, " ") '=7
                strTmp2 = Trim(Mid(strTmp, iTmp, iLen - iTmp)) ' " "SM""
                strTmp3 = Right(strTmp, Len(strTmp) - iLen) '1
                CommandStatus = CommandStatus & strTmp3
                If strTmp2 = """SM""" Then CommandStatus = CommandStatus & ",存储于SIM卡中"
                
                'nTimeSend = 8
                On Error Resume Next
                '每当有新消息,播放声音n遍
'                If strMusicName <> "" Then
'                    MMCNewSMS.FileName = strMusicName
'                Else
'                    MMCNewSMS.FileName = App.Path & "\sound\SMSSoundSnow.wav"
'                    strMusicAlias = "雪"
'                End If
'                If MMCNewSMS.Mode = mciModeNotOpen Then MMCNewSMS.Command = "Open"
'                If g_nCountPlaySnd = 0 Then
'                    g_nCountPlaySnd = iMusicPlayTimes
'                    MMCNewSMS.Command = "Play"
'                Else
'                    If MMCNewSMS.Mode = mciModePlay Then
'                        g_nCountPlaySnd = iMusicPlayTimes
'                    Else
'                        g_nCountPlaySnd = g_nCountPlaySnd + 1
'                        If g_nCountPlaySnd > iMusicPlayTimes Then g_nCountPlaySnd = iMusicPlayTimes
'                        MMCNewSMS.Command = "Close"
'                        MMCNewSMS.Command = "Open"
'                        MMCNewSMS.Command = "Play"
'                    End If
'                End If
                
                On Error GoTo ErrorN
                g_blIsNewSMSIn = True
                'g_blIsListSMS = False
                g_blIsSysBusy = False
                g_blIsSendingSMS = False
                'Call ResetTask
                'Call AddTask(NewMSGTask, 5, 0, 50)
                strThisAt1 = ""
                AnalysisData = True
            Else
                AnalysisData = False
            End If
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Case "+CMGL:"
            iCr = InStr(strTmpSave1, "OK" & vbCr)
            If iCr > 0 Then
                strTmp = Left(strTmpSave1, iCr - 1)
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iCr - 2)
                strThisAt1 = ""
                nCountSMSList = 0
                For i = 1 To Len(strTmp)
                    strTmp1 = Mid(strTmp, i, 6)
                    If strTmp1 = "+CMGL:" Then nCountSMSList = nCountSMSList + 1
                Next i
                CommandStatus = "共有" & nCountSMSList & "条短消息,完毕。"
                If nCountSMSList > 0 Then
                    g_blMaySaveAllSMS = True
                    n_CountListSMS = nCountSMSList
                    g_blIsListSMS = True
                    g_blIsNewSMSIn = False
                    g_blIsSysBusy = False
                    g_blIsSendingSMS = False
                    'Call AddTask(SaveAllMSGTask, 5, 0, 10)
                Else
                    g_blMaySaveAllSMS = False
                End If
                nCountSMSList = 0
                AnalysisData = True
            Else
                strTmp = strTmpSave1
                nCountSMSList = 0
                For i = 1 To Len(strTmp)
                    strTmp1 = Mid(strTmp, i, 6)
                    If strTmp1 = "+CMGL:" Then nCountSMSList = nCountSMSList + 1
                Next i
                CommandStatus = "读取中···"
                For i = 1 To nCountSMSList
                    CommandStatus = CommandStatus & "·"
                Next i
                AnalysisData = False
            End If
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Case "+CMGS:"
            iCr = InStr(strTmpSave1, "OK" & vbCr)  '
            g_blIsSysBusy = False
            If iCr > 0 Then
                CommandStatus = "成功。请稍候..."
                g_blIsSendingSMS = False
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iCr - 2)
                strThisAt1 = ""
                AnalysisData = True
            ElseIf InStr(strTmpSave1, "ERROR:") > 0 And InStr(strTmpSave1, vbCr) > 0 _
                   Or InStr(strTmpSave1, "ERROR" & vbCr) > 0 Then
                CommandStatus = "失败! 请稍候再重试"
                g_blIsSendingSMS = False
                iLen = InStr(strTmpSave1, vbCr)
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iLen)
                strThisAt1 = ""
                AnalysisData = True
            ElseIf InStr(strTmpSave1, vbCr) > 0 Then
                g_blIsSendingSMS = False
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iCr - 2)
                strThisAt1 = ""
                AnalysisData = True
            Else
                AnalysisData = False
            End If
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Case "+WIND:" '+WIND: 6,1
            iCr = InStr(strTmpSave1, vbCr)
            g_blIsSysBusy = False
            g_blIsSendingSMS = False
            If iCr > 0 Then
                strTmp = Mid(strTmpSave1, 8, Len(strTmpSave1) - 7 - 1)
                Select Case Left(strTmp, 1)
                    Case "0"
                    Case "1"
                        CommandStatus = "查找网络..."
                    Case "2"
                        CommandStatus = "正在呼出..."
                    Case "3"
                        CommandStatus = "现在可以接受AT指令"
                    Case "4"
                        CommandStatus = "Modem就绪"
                        'Call AddTask(ShowErrorTask, 5, 0, 10)
                        'Call AddTask(FeedBackRSSITask, 5, 1, 10)
                        'Call AddTask(NewMSGTask, 5, 0, 50)
                    Case "5"
                        CommandStatus = "连接网络..."
                    Case "6"
                        CommandStatus = "通话结束。"
                        strTmp2 = CommandStatus & vbCrLf & "时间:" & Format(Now, "YYYY年MM月DD日 HH:MM:SS")
                        Call SaveInfoToFile(strTmp2, "CallIn.txt")
                        g_blIsEndCall = True
                    Case "7"
                        CommandStatus = "网络可用"
                    Case "8"
                        CommandStatus = "已关机"
                    Case "9"
                    
                End Select
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iCr)
                strThisAt1 = ""
                AnalysisData = True
            Else
                AnalysisData = False
            End If
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Case "+CLIP:" '+CLIP: "05468390808",129
            iCr = InStr(strTmpSave1, vbCr) '查找回车符
            If iCr > 0 Then
                strTmp = Mid(strTmpSave1, 8, Len(strTmpSave1) - 7 - 1)
                strTmp = Left(strTmpSave1, iCr - 1)
                strTmpSave1 = Right(strTmpSave1, Len(strTmpSave1) - iCr)
                iLen = InStr(strTmp, ",") '查找逗号 = 21
                iTmp = InStr(strTmp, " ") '查找空格 = 7
                strTmp2 = Trim(Mid(strTmp, iTmp + 1, iLen - iTmp - 1)) ' " "05468390808""
                CommandStatus = "来电号码:" & strTmp2
                strTmp2 = CommandStatus & vbCrLf & "来电时间:" & Format(Now, "YYYY年MM月DD日 HH:MM:SS")
                Call SaveInfoToFile(strTmp2, "CallIn.txt")
                strThisAt1 = ""
                AnalysisData = True
            Else
                AnalysisData = False
            End If
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Case Else
            g_blIsSysBusy = False
            g_blIsSendingSMS = False
            strTmpSave1 = ""
            strThisAt1 = ""
            AnalysisData = True
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    End Select
    Exit Function
ErrorN:
    CommandStatus = "错误:" & Err & ". " & Err.Description
    strTmpSave1 = ""
    AnalysisData = True
End Function


Public Function QueryRSSI(strInput As String, iSignal As Integer, iBER As Integer) As Boolean
    
    Dim strTmp As String
    Dim i As Integer, iLen As Integer, iTmp As Integer, iCr As Integer
    
    On Error Resume Next
    
    iCr = InStr(strInput, vbCr)
    If iCr > 0 Then
        For i = 7 To Len(strInput)
            strTmp = Mid(strInput, i, 1)
            iLen = iLen + 1
            If strTmp = "," Then
                iTmp = Mid(strInput, 7, iLen)
                iLen = 0
                iSignal = iTmp
                Exit For
            End If
        Next i
        iTmp = i
        For i = iTmp To Len(strInput)
            strTmp = Mid(strInput, i, 1)
            iLen = iLen + 1
            If strTmp = vbCr Then
                strTmp = Mid(strInput, iTmp + 1, iLen)
                If IsNumeric(strTmp) Then
                    iTmp = CInt(strTmp)
                    iLen = 0
                    iBER = iTmp
                    Exit For
                End If
            End If
        Next i
        strInput = Right(strInput, Len(strInput) - iCr)
        QueryRSSI = True
    Else
        QueryRSSI = False
    End If
End Function

Public Sub SaveInfoToFile(ByVal SaveString As String, Optional ByVal InfoFileName As String)
    Dim nFileNo As Long

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -