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

📄 module1.bas

📁 通过串口与手机模块收发短信。已经用sim100测试过
💻 BAS
📖 第 1 页 / 共 5 页
字号:
                     Frm_Main.T_GsmInit = True
                            Do While (Not GsmInitCmd_ResWaitSuc)
                               DoEvents
                            Loop
                     Frm_Main.T_GsmInit = False
                   
                            GsmInitCmd_ResWaitSuc = False

                            If GsmInitCmd_ProcessOver = True Then
                               
                        
                               'Call CommonClearRev
                               Gsm_CommonRev_Way = "gsmnone"
                               
                               GsmInitCmd_ProcessOver = False
                               'Gsm_MesInit = False
                               Call FlashMessage("通信模块初始化失败")
                               GsmInitCmd_proloc = False
                               Exit Sub

                           End If
                           
              'Call CommonClearRev
              'Gsm_CommonRev_Way = "gsmnone"
                    Call FlashMessage("通信模块初始化成功")
                    
          GsmInitCmd_proloc = False
                          
                
      End If
     
     
End Sub

Public Sub Gsm_CommonRev()

    
 Static Gsm_CommonRev_proloc As Boolean
    
   If Not Gsm_CommonRev_proloc Then
     'Frm_Main.MSComm1.RThreshold = 0
     Gsm_CommonRev_proloc = True
    
    Do While (Frm_Main.MSComm1.InBufferCount > 0)
       
      DoEvents
         CommonRev_Data = Frm_Main.MSComm1.Input
        TempRevHex = TempRevHex & AscToHex(CInt(CommonRev_Data(0))) & " "
        TempRevAsc = TempRevAsc & Chr(CInt(CommonRev_Data(0))) & " "
         
If Not Gsm_CommonRev_Stop Then

'命令头判断
        If Not Gsm_CommonRev_Head_Start And CommonRev_Data(0) = 13 Then
            Gsm_CommonRev_Head_Start = True
        
        ElseIf Not Gsm_CommonRev_Head And Gsm_CommonRev_Head_Start And CommonRev_Data(0) = 10 Then
            
            Gsm_CommonRev_Head = True
            Gsm_CommonRev_Cmd_Head = True
            
        ElseIf Gsm_CommonRev_Cmd_Head Then
           If CommonRev_Data(0) = 43 Then     '+
              Gsm_CommonRev_Cmd_Start = True
              Gsm_CommonRev_Cmd = ""
              Gsm_CommonRev_Cmd_Head = False
           ElseIf CommonRev_Data(0) = 79 Then   'O
                Gsm_CommonRev_End_Start = True
                Gsm_CommonRev_Result = ""
                Gsm_CommonRev_Cmd_Head = False
           ElseIf CommonRev_Data(0) = 69 Then   'E
                Gsm_CommonRev_End_Start = True
                Gsm_CommonRev_Result = ""
                Gsm_CommonRev_Cmd_Head = False
           ElseIf CommonRev_Data(0) = 82 Then   'R
                Gsm_CommonRev_End_Start = True
                Gsm_CommonRev_Result = ""
                Gsm_CommonRev_Cmd_Head = False
           ElseIf CommonRev_Data(0) = 62 Then   '>
                If Gsm_CommonRev_Way = "Gsm_MesSenCmd" Then
                  Gsm_CommonRev_Way = "gsmnone"
                  GSM_Cmd_ResWaitSuc = True
                  Gsm_CommonRev_Cmd_Head = False
                  Call Gsm_Rev_EndCode
                End If
           ElseIf CommonRev_Data(0) = 13 Then
                Gsm_CommonRev_Head = False
                Gsm_CommonRev_Cmd_Head = False
           Else
                Gsm_CommonRev_Head_Start = False
                Gsm_CommonRev_Head = False
                Gsm_CommonRev_Cmd_Head = False
           End If
        End If
'命令头判断
         
         If Gsm_CommonRev_Cmd_Start And CommonRev_Data(0) <> 58 Then
                
                Gsm_CommonRev_Cmd = Gsm_CommonRev_Cmd & Chr(CommonRev_Data(0))
                Gsm_CommonRev_Cross_Judge = False
         ElseIf Gsm_CommonRev_Cmd_Start And CommonRev_Data(0) = 58 Then
                Gsm_CommonRev_Cmd_Start = False
                Gsm_CommonRev_Cmd_End = True
                Gsm_CommonRev_Cross_Judge = False
         ElseIf Gsm_CommonRev_Cmd_End Then
                Call Gsm_Rev_Cmd_Deal
                Gsm_CommonRev_Cross_Judge = False
         End If
         
         
         If Gsm_CommonRev_End_Start And CommonRev_Data(0) <> 13 Then
                 Gsm_CommonRev_Result = Gsm_CommonRev_Result & Chr(CommonRev_Data(0))
                 Gsm_CommonRev_Cross_Judge = False
         ElseIf Gsm_CommonRev_End_Start And CommonRev_Data(0) = 13 Then
                 Gsm_CommonRev_End = True
                 Gsm_CommonRev_End_Start = False
                 Gsm_CommonRev_Cross_Judge = False
         ElseIf Gsm_CommonRev_End Then
                Gsm_CommonRev_Cross_Judge = False
                Call Gsm_Rev_Result_Deal
         End If
End If


If Gsm_CommonRev_Cross_Judge Then
      Call Gsm_CommonRev_Bef
End If
                  

Loop
       If Not Gsm_CommonRev_Cross_Judge Then
              If Gsm_CommonRev_Head_Start Then
                  Gsm_CommonRev_Cross_Judge = True
                  Gsm_CommonRev_Cmd_Start_Bef = Gsm_CommonRev_Cmd_Start
                  Gsm_CommonRev_End_Start_Bef = Gsm_CommonRev_End_Start
                  Gsm_CommonRev_Head_Start_Bef = Gsm_CommonRev_Head_Start
                  Gsm_CommonRev_Head_Bef = Gsm_CommonRev_Head
                  Gsm_CommonRev_Cmd_End_Bef = Gsm_CommonRev_Cmd_End
                  Gsm_CommonRev_End_Bef = Gsm_CommonRev_End
                  Gsm_CommonRev_Cmd_Head_Bef = Gsm_CommonRev_Cmd_Head
              End If
       End If
       
  Gsm_CommonRev_Stop = False
  Gsm_CommonRev_Cmd_Start = False
  Gsm_CommonRev_End_Start = False
  Gsm_CommonRev_Head_Start = False
  Gsm_CommonRev_Head = False
  Gsm_CommonRev_Cmd_End = False
  Gsm_CommonRev_End = False
  Gsm_CommonRev_Cmd_Head = False
  Gsm_CommonRev_proloc = False
   
   Call ComDisPlay(CommonRev_Data(0))
   
   If RevArray > 0 Then
        Call GsmMesSend
   End If
   
   
 End If
 
   
End Sub
Private Sub Gsm_CommonRev_Bef()

        
        If Not Gsm_CommonRev_Head_Start_Bef And CommonRev_Data(0) = 13 Then
            Gsm_CommonRev_Head_Start_Bef = True
        ElseIf Not Gsm_CommonRev_Head_Bef And Gsm_CommonRev_Head_Start_Bef And CommonRev_Data(0) = 10 Then
            Gsm_CommonRev_Head_Bef = True
            Gsm_CommonRev_Cmd_Head_Bef = True
        ElseIf Gsm_CommonRev_Cmd_Head_Bef Then
           If CommonRev_Data(0) = 43 Then     '+
              Gsm_CommonRev_Cmd_Start_Bef = True
              Gsm_CommonRev_Cmd = ""
              Gsm_CommonRev_Cmd_Head_Bef = False
           ElseIf CommonRev_Data(0) = 79 Then   'O
                Gsm_CommonRev_End_Start_Bef = True
                Gsm_CommonRev_Result = ""
                Gsm_CommonRev_Cmd_Head_Bef = False
           ElseIf CommonRev_Data(0) = 69 Then   'E
                Gsm_CommonRev_End_Start_Bef = True
                Gsm_CommonRev_Result = ""
                Gsm_CommonRev_Cmd_Head_Bef = False
           ElseIf CommonRev_Data(0) = 82 Then   'R
                Gsm_CommonRev_End_Start_Bef = True
                Gsm_CommonRev_Result = ""
                Gsm_CommonRev_Cmd_Head_Bef = False
           ElseIf CommonRev_Data(0) = 62 Then   '>
                If Gsm_CommonRev_Way = "Gsm_MesSenCmd" Then
                  GSM_Cmd_ResWaitSuc = True
                  Gsm_CommonRev_Way = "gsmnone"
                  Call Gsm_Rev_EndCode
                  Gsm_CommonRev_Cmd_Head_Bef = False
                End If
           ElseIf CommonRev_Data(0) = 13 Then
                Gsm_CommonRev_Head_Bef = False
                Gsm_CommonRev_Cmd_Head_Bef = False
           Else
                Gsm_CommonRev_Head_Start_Bef = False
                Gsm_CommonRev_Head_Bef = False
                Gsm_CommonRev_Cmd_Head_Bef = False
           End If
        End If
         
         
         If Gsm_CommonRev_Cmd_Start_Bef And CommonRev_Data(0) <> 58 Then
                Gsm_CommonRev_Stop = True
                Gsm_CommonRev_Cmd = Gsm_CommonRev_Cmd & Chr(CommonRev_Data(0))
         ElseIf Gsm_CommonRev_Cmd_Start_Bef And CommonRev_Data(0) = 58 Then
                Gsm_CommonRev_Cmd_Start_Bef = False
                Gsm_CommonRev_Cmd_End_Bef = True
                Gsm_CommonRev_Stop = True
         ElseIf Gsm_CommonRev_Cmd_End_Bef Then
                Gsm_CommonRev_Stop = True
                Call Gsm_Rev_Cmd_Deal
         End If
            
            
         If Gsm_CommonRev_End_Start_Bef And CommonRev_Data(0) <> 13 Then
                 Gsm_CommonRev_Stop = True
                 Gsm_CommonRev_Result = Gsm_CommonRev_Result & Chr(CommonRev_Data(0))
         ElseIf Gsm_CommonRev_End_Start_Bef And CommonRev_Data(0) = 13 Then
                 Gsm_CommonRev_End_Bef = True
                 Gsm_CommonRev_End_Start_Bef = False
                 Gsm_CommonRev_Stop = True
         ElseIf Gsm_CommonRev_End_Bef Then
                 Call Gsm_Rev_Result_Deal
                 Gsm_CommonRev_Stop = True
         End If
 
End Sub

Private Sub Gsm_Rev_Cmd_Deal()


'If Gsm_CommonRev_Cmd_End_Bef Or Gsm_CommonRev_End_Bef Then
'
'     Gsm_CommonRev_Stop = True
'Else
'
'     Gsm_CommonRev_Cross_Judge = False
'End If

     Select Case Gsm_CommonRev_Cmd
                   Case "+COPS"
                      Call Gsm_Rev_EndCode
                   Case "+CREG"
                      Call Gsm_Rev_EndCode
                   Case "+CSQ"
                      Call Gsm_Rev_EndCode
                   Case "+CSMS"
                     GsmInitCmd_ResWaitSuc = True
                     Call Gsm_Rev_EndCode
                   Case "+CPMS"
                      Call Gsm_Rev_EndCode
                   Case "+CMGL"
                      Call Gsm_Rev_EndCode
                   Case "+CMTI"
                      If Not Gsm_RevData_LenDStart And CommonRev_Data(0) = 44 Then
                         Gsm_RevData_LenStr = ""
                         Gsm_RevData_LenDStart = True
                      ElseIf Gsm_RevData_LenDStart And Not Gsm_RevData_LenDEnd And CommonRev_Data(0) > 47 And CommonRev_Data(0) < 58 Then
                         Gsm_RevData_LenStr = Gsm_RevData_LenStr & Chr(CommonRev_Data(0))
                      ElseIf Gsm_RevData_LenDStart And Not Gsm_RevData_LenDEnd And CommonRev_Data(0) = 10 Then
                         Gsm_RevData_LenDStart = False
                         Gsm_RevData_LenDEnd = False
                         Call Gsm_Rev_EndCode
                         Frm_Main.MSComm1.Output = "AT+CMGR=" & Val(Gsm_RevData_LenStr) & Chr(13)
                         
                      End If
                      
                   Case "+CMT"
                    
                    
                                If Not Gsm_RevData_LenDStart And CommonRev_Data(0) = 44 Then
                                      Gsm_RevData_LenStr = ""
                                      Gsm_RevData_LenDStart = True
                                      
                                ElseIf Gsm_RevData_LenDStart And Not Gsm_RevData_LenDEnd And CommonRev_Data(0) <> 13 Then
                                     Gsm_RevData_LenStr = Gsm_RevData_LenStr & Chr(CommonRev_Data(0))
                                     
                                     
                                ElseIf Gsm_RevData_LenDStart And Not Gsm_RevData_LenDEnd And CommonRev_Data(0) = 13 Then
                                    
                                     Gsm_RevData_LenDEnd = True
                                     Gsm_RevData_LenCount = Val(Gsm_RevData_LenStr)
                                End If
                                
                                If Gsm_RevData_LenDEnd And CommonRev_Data(0) <> 13 And CommonRev_Data(0) <> 10 And Not Gsm_RevData_LenSCA_Start Then
                                      Gsm_RevData_LenStr = Chr(CommonRev_Data(0))
                                      Gsm_RevData_LenSCA_Start = True
                                      
                                ElseIf Gsm_RevData_LenDEnd And Gsm_RevData_LenSCA_Start And Not Gsm_RevData_LenSCA_End Then
                                       Gsm_RevData_LenStr = Gsm_RevData_LenStr & Chr(CommonRev_Data(0))
                                       Gsm_RevData_LenSCA_End = True
                                       Gsm_RevData_LenCount = (Gsm_RevData_LenCount + Val(Gsm_RevData_LenStr)) * 2
                                
                                
                                ElseIf Gsm_RevData_LenSCA_End And Gsm_RevData_LenCount Then
                                    
                                    Gsm_RevData_LenStr = Gsm_RevData_LenStr & Chr(CommonRev_Data(0))
                                    Gsm_RevData_LenCount = Gsm_RevData_LenCount - 1
                                ElseIf Not Gsm_RevData_LenCount And Gsm_RevData_LenSCA_End Then
                                    
                                     
                                    If CommonRev_Data(0) = 13 Then
                                     RevArray = RevArray + 1
                                     Gsm_RevData_LenDStart = False
                                     Gsm_RevData_LenDEnd = False
                                     Gsm_RevData_LenSCA_End = False
                                     Gsm_RevData_LenSCA_Start = False
                                     Call Gsm_Rev_EndCode
'                                     Gsm_CommonRev_Head_Start = True
'                                     Gsm_CommonRev_Head_Start_Bef = True
                                     Call GsmRevMessage(Gsm_RevData_LenStr)
                                     
                                     Else
                                     Call Gsm_Rev_EndCode
                                    End If
                                End If
                                  
                   Case "+CBM"
                         Call Gsm_Rev_EndCode
                   Case "+CMGR"
                         If Not Gsm_RevData_LenDStart And CommonRev_Data(0) = 44 Then
                                 Gsm_RevData_LenStr = ""
                                 Gsm_RevData_LenDStart = True
                                      
                         ElseIf Gsm_RevData_LenDStart And Not Gsm_RevData_LenDEnd And CommonRev_Data(0) <> 13 Then
                                 If CommonRev_Data(0) = 44 Then
                                    Gsm_RevData_LenStr = ""
                                 Else
                                 Gsm_RevData_LenStr = Gsm_RevData_LenStr & Chr(CommonRev_Data(0))
                                 End If
                                     
                         ElseIf Gsm_RevData_LenDStart And Not Gsm_RevData_LenDEnd And CommonRev_Data(0) = 13 Then
                                    
                                 Gsm_RevData_LenDEnd = True
                                 Gsm_RevData_LenCount = Val(Gsm_RevData_LenStr)
                         End If
                                If Gsm_RevData_LenDEnd And CommonRev_Data(0) <> 13 And CommonRev_Data(0) <> 10 And Not Gsm_RevData_LenSCA_Start Then
                                      Gsm_RevData_LenStr = Chr(CommonRev_Data(0))
                                      Gsm_RevData_LenSCA_Start = True
                                      
                                ElseIf Gsm_RevData_LenDEnd And Gsm_RevData_LenSCA_Start And Not Gsm_RevData_LenSCA_End Then
                                       Gsm_RevData_LenStr = Gsm_RevData_LenStr & Chr(CommonRev_Data(0))
                                       Gsm_RevData_LenSCA_End = True
                                       Gsm_RevData_LenCount = (Gsm_RevData_LenCount + Val(Gsm_RevData_LenStr)) * 2
                                
                                
                                ElseIf Gsm_RevData_LenSCA_End And Gsm_RevData_LenCount Then
                                    
                                    Gsm_RevData_LenStr = Gsm_RevData_LenStr & Chr(CommonRev_Data(0))
                                    Gsm_RevData_LenCount = Gsm_RevData_LenCount - 1
                                ElseIf Not Gsm_RevData_LenCount And Gsm_RevData_LenSCA_End Then
                                    
                                     
                                    If CommonRev_Data(0) = 13 Then
                                     RevArray = RevArray + 1
                                     Gsm_RevData_LenDStart = False
                                     Gsm_RevData_LenDEnd = False
                                     Gsm_RevData_LenSCA_End = False
                                     Gsm_RevData_LenSCA_Start = False
                                     Call Gsm_Rev_EndCode
'                                     Gsm_CommonRev_Head_Start = True
'                                     Gsm_CommonRev_Head_Start_Bef = True
                                     Call GsmRevMessage(Gsm_RevData_LenStr)
                                     
                                     Else
                                     Call Gsm_Rev_EndCode
                                    End If
                                End If
                         
                   Case "+CMGS"
                        Gsm_CommonRev_Way = "

⌨️ 快捷键说明

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