我正在尝试使用micromax MMX310G 3G USB管理器(非调制解调器)的AT命令发送短信。 它有没有互联网的airtel sim。
string recievedData = ExecCommand(port,"AT", 300, "No phone connected");
recievedData = ExecCommand(port,"AT+CMGF=1", 300, "Failed to set message format.");
String command = "AT+CMGS=\"" + PhoneNo + "\"";
recievedData = ExecCommand(port,command, 300, "Failed to accept phoneNo");
command = Message + char.ConvertFromUtf32(26) + "\r";
recievedData = ExecCommand(port,command, 3000, "Failed to send message");
当我调试AT和AT + CMGF返回ok和其他命令返回Error时。 USB管理器有什么不同的AT命令。使用Aircel datacard时,相同的代码工作正常。我们是否需要在sim中激活互联网以运行AT命令。您的宝贵意见可能有助于此。
答案 0 :(得分:0)
你在这里做的几件事基本上是处理AT命令的错误方法,如果它有效的话你就是幸运的。
首先,从来没有,永远不会像ExecCommand的第三个参数那样使用延迟。在收到\r\n>
提示之前,您也不应该发送AT + CMGS的数据部分。
有关这些要点的详细信息,请参阅this answer的第一部分。
并且您必须更改处理逻辑,以便您在发送命令后不做任何事情,只读取调制解调器的响应,直到您在开始下一个命令之前获得最终结果代码。有关详细信息,请参阅this answer。