パテでは簡単にシリアル経由でNokiaの電話でSMSを送信しようとしています。 nokia documentationのコマンドは正常に動作します。シリアルポート経由のノキア電話によるSMS
しかし、C#アプリケーションから同じコマンドを送信しようとすると、悲惨に失敗します。私はSysinternals PortMonを実行しました。コマンドが正常に実行されているのを見ることができます。唯一の違いは接続方法ですが、これらの違いを解消するコマンドを見つけるのは難しいです。
私が実行しているコードは、私は、シリアルポートからのトレースで見ている違いがスタート
0.00001844 aspnet_wp.exe IOCTL_SERIAL_SET_HANDFLOW USBSER001 SUCCESS Shake:1 Replace:43 XonLimit:4096 XoffLimit:4096
で
ある少しこの
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.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
誰もこれらの問題を解決するためのヒントがありますか?また、私はコマンドが発行されたときに電話がアプリケーションに応答していないことに気づいているので、問題が接続にあり、最後のメッセージではないと思われます。
電話機にハードウェアフロー制御が必要かどうか確認しましたか? – toholio
ハンドシェイクとフロー制御は、私が見ることのできるパテと同じです。明確にするために;シェイク:1交換:43は何が違うのですか?私はそれをどのように変更するか分かりません。 – mjallday
あなたは答えを見つけましたか?私は私の電話からの配達応答を得るために苦労しています... –