質問

私はパテを経由して十分に簡単であるシリアルオーバーNokiaの携帯電話を経由してSMSを送信しようとしています。正常に動作する ノキアのドキュメントからの指令ます。

しかし、C#アプリケーションは、無残に失敗したから同じコマンドを送信しようとしています。私はSysinternalsのPortMon実行したとコマンドはOKを通ってくる見ることができ、私が見ることができる唯一の違いは、それが接続されている方法であるが、私はそれらの違いを鉄するコマンドを見つけるの問題を抱えています。

私が実行しているコードは少しこのようになります。

using (SerialPort port = new SerialPort(comPort, 9600, Parity.None, 8, StopBits.One))
            {
                port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
                port.ErrorReceived += new SerialErrorReceivedEventHandler(port_ErrorReceived);

                //port.ReceivedBytesThreshold = 1;
                port.DtrEnable = true;
                port.RtsEnable = true;
                port.ReadTimeout = 1;
                port.Handshake = Handshake.XOnXOff;


                try
                {
                    port.Open();

                    port.WriteLine("AT");

                    port.WriteLine("AT+CMGF=1");

                    port.WriteLine("AT+CMGS=\"" + number + "\"");

                    port.WriteLine(message);

                    port.Write(new byte[] { (byte)26 }, 0, 1);
                }
                finally
                {
                    if (port.IsOpen)
                    {
                        port.Close();
                    }
                }

私はシリアルポートからのトレースで見ている違いがある。

開始時

0.00001844  aspnet_wp.exe   IOCTL_SERIAL_SET_HANDFLOW   USBSER001   SUCCESS Shake:1 Replace:43 XonLimit:4096 XoffLimit:4096 

、非常に最後の

0.00061153  aspnet_wp.exe   IOCTL_SERIAL_PURGE  USBSER001   SUCCESS Purge: RXABORT RXCLEAR  
0.00004442  aspnet_wp.exe   IOCTL_SERIAL_PURGE  USBSER001   SUCCESS Purge: TXABORT TXCLEAR 

は、誰もがこれらの問題を鉄する方法上の任意のヒントを持っていますか?また、私は問題は終わりに接続されていないもののメッセージである疑いがあるので、私はコマンドを発行すると電話機は、どの受信確認を使用してアプリケーションに戻って応答していないことに気づきます。

役に立ちましたか?

解決

あなたはメッセージを書き込む前に「>」を待つ必要があります。また、CR / LF(WriteLineメソッド)を使用してメッセージを終了していない。

他のヒント

あなたは携帯電話からのシリアル通信を読み出すことができるかどうかを確認してください。あなたは「AT」送信後、電話は「OK」で応答しなければなりません。シリアル通信は、SMSビットに取る前に動作していることを確認するためには良い考えかもしれません。

私が覚えているから、私はAT + CMGS後にメッセージを入力し、続いCtrl-Zキーで、そして何の改行は必要ありませんしなければならないと思います。あなたはWriteLineメソッド(メッセージ)書く(メッセージを)変えてみてもらえますか?

この情報がお役に立てば幸い!

scroll top