2017-02-23 61 views
1

我想通过3G调制解调器发送多个SMS约500〜GSM号码/用户发送多条SMS ......通过3G调制解调器(AT命令)

此后20-30短信,它不返回任何值(无效)从串口和调制解调器锁定...当我断开USB调制解调器并再次连接,问题是暂时解决。

我该如何永久解决这个问题?

 for (int i = 0; i < 500; i++) 
      { 
       serialPort.Write("AT+CMGF=1\r"); 
       Thread.Sleep(1000); 
       serialPort.Write("AT+CMGS=\"" + "phonenumber" + "\"\r\n"); 
       Thread.Sleep(1000); 
       serialPort.Write("Hi:"+i.ToString() + "\x1A"); 
       Thread.Sleep(3000); 

       string t = serialPort.ReadExisting(); 

       if(t.Length>0) 
        .... 
       else 
        ..... 
      } 

回答

0

我只是写了下面的comment,它同样适用于你的问题还有:

Is this practice causes any issue?这是最糟糕的初学者 错误,你可以使用AT命令处理方面做。你应该 永远,永远,从来没有,永远,使用Thread.Sleep或任何类似于wait for response from a modem。它和踢狗一样有用, 阻挡你的行动。是的,你可能会幸运 并有实际工作有时,但在某些时候你会 抱歉采取这一做法......

对于这个问题,目前还不清楚是什么问题,但在你的我认为这是核心问题。你不能只在调制解调器上扔一堆AT命令,然后再试着赶上ReadExisting。这绝对不会可靠。

你必须阅读和解析从调制解调器以适当的方式收到的一切(请参阅我的答案链接上面)。

相关问题