【问题标题】:How to send multiple mobile # in vb6 using AT command如何使用AT命令在vb6中发送多个手机#
【发布时间】:2014-06-21 18:07:07
【问题描述】:

大家好,我在 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

我希望你能在这方面帮助我。 谢谢

【问题讨论】:

  • 我认为查看调制解调器对每个命令的回答会很有用。您是否收到任何错误消息?还是调制解调器对每个命令都回答正常?
  • 是的,先生,调制解调器正在应答并且没有错误我的问题是我无法发送到 tmpF_MobileNum,它只会发送到 tmpM_MobileNum。我不知道该怎么办。

标签: gsm at-command


【解决方案1】:

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

您需要发送以下内容:

  1. AT+CMGS=<Mobile phone number><cr>
  2. <Message text><ctrl-Z>

您一次只能向一个手机号码发送一条消息。从我可以看到您的代码在尝试发送<ctrl-Z>之前尝试发送多条消息@

顺便说一下,ascii 字符是 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

【讨论】:

  • 是的,我想一次向一个手机号码发送一条消息,但我需要用一条消息发送多个手机号码,先生,我希望它很清楚。我该怎么做?我不明白,先生。你能编辑我给的代码吗?我试过这样,我觉得这看起来很有趣:( MSComm1.Output = "AT+CMGS=" & tmpM_MobileNum & Chr(34) & cr Sleep 300 List1.AddItem MSComm1.Input MSComm1.Output = "AT+CMGS=" & tmpF_MobileNum & Chr(34) & cr Sleep 400 List1.AddItem MSComm1.Input
  • 我在答案中添加了一些代码。我不是 VB 专家,但在这里我展示了如何向调制解调器发送正确的命令。缺少的是处理来自调制解调器的响应。就像我在原始答案中提到的那样,您不能发送给多个收件人。这不是 SMS 的工作方式。需要给每个手机号码一一发送消息
  • 先生,在您发布代码之前,先生,我已经了解了先生,我只是搜索 AT+CMGS=,我知道您想对我说什么。很高兴我们有相同的代码谢谢。我了解到,在手机号码之后的一件事就是文字,这就是原因。一件事先生睡觉的目的是什么?
  • 根据您的调制解调器,您可能需要使用“睡眠”。他们通常建议在执行另一个命令之前等待一段时间,具体取决于您最初执行的是哪个命令。在这里最好仔细检查调制解调器制造商的文档。通常等待响应我不会使用睡眠,而是会有一个“阅读器”线程来处理从调制解调器返回的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多