2017-02-23 3 views
1

(ATコマンド)3Gモデムを介して複数のSMSを送信...私はおよそ〜500のGSM番号/ユーザーに3Gモデムを介して複数のSMSを送信したい

しかる後20-30 SMS、それがどのような値を返しません。シリアルポートからモデム(空き)があり、モデムがロックアップしています... 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に追いつくことはできません。それは決して確実に機能しません。

適切な方法でモデムから受信したすべてが読み取られている必要があります(上記のリンク先の回答を参照)。

関連する問題