如何使用AT命令在vb6中发送多个mobile#

时间:2014-06-19 10:41:32

标签: gsm at-command

大家好我在vb6.0中开发一个应用程序发送到移动设备#很好但是当我尝试发送两个或更多移动#时它只会发送到第一个#而另一个是没有。这是我的代码,请看一下。

MSComm1.Output = "AT" & vbCrLf
                Sleep 100
                MSComm1.Output = "AT+CMGF=1" & vbCrLf
                Sleep 200

                MSComm1.Output = "AT+CMGS=" & Chr(34) & tmpM_MobileNum & Chr(34) & vbCrLf
                Sleep 300

                MSComm1.Output = "AT+CMGS=" & Chr(34) & tmpF_MobileNum & Chr(34) & vbCrLf
                Sleep 400

                MSComm1.Output = TMPMESEJ & Chr(26) & vbCrLf
                Sleep 500

我希望你能帮助我。 谢谢

1 个答案:

答案 0 :(得分:0)

要通过调制解调器发送短信,您使用AT + CMGS是正确的,但我相信您没有正确遵循命令的语法。

您需要发送以下内容:

  1. AT+CMGS=<Mobile phone number><cr>
  2. <Message text><ctrl-Z>
  3. 您一次只能向一个手机号码发送一条消息。从我可以看到,您的代码尝试在尝试发送<ctrl-Z>

    之前发送多条消息

    顺便说一句是ascii character 26.。

    ////////////////////////////////////////
    // Send message to first mobile number
    ////////////////////////////////////////
    
    MSComm1.Output = "AT+CMGS=" & Chr(34) & tmpM_MobileNum & Chr(34) & vbCrLf
    // Wait for answer from modem should return ">"
    
    MSComm1.Output = "Test Message One" & Chr(26)
    // Wait for answer to check if OK came back
    
    ////////////////////////////////////////
    // Send message to second mobile number
    ////////////////////////////////////////
    
    MSComm1.Output = "AT+CMGS=" & Chr(34) & tmpF_MobileNum & Chr(34) & vbCrLf
    // Wait for answer from modem should return ">"
    
    MSComm1.Output = "Test Message Two" & Chr(26)
    // Wait for answer to check if OK came back