gsm モデムにデータを読み書きするアプリケーションを開発しています。モデムの電源を切って再び電源を入れると、起動時にATコマンドを送信して、モデムがポートに指定された設定に自動的に設定されるようにする必要があります。ハイパー ターミナルでこのコマンドを実行すると、コマンドは表示されませんが、コマンドはモデムに送信されます。モデムは、ハイパーターミナルのポート設定に指定した設定に自身を設定します。その後、残りのコマンドを送信できます。しかし、私のアプリケーションでは最初の AT コマンドを送信できないため、ハイパー ターミナル経由で手動で送信しています。アプリケーションでこれが発生しないのはなぜですか? ボタンクリックを使用してこのコマンドを送信しようとしましたが、それでもポートで実行されません。
port.Open();
port.DtrEnable = true;
port.RtsEnable = true;
if (port != null)
{
btn_connect.Enabled = false;
btn_disconnect.Enabled = true;
port.WriteLine("AT");
port.WriteLine("AT+CLIP=1");
port.WriteLine("AT+CMGF=1");
con_status.Text = "Connected at " + cboPortName.Text;
}
アプリケーションで指定したポート設定は次のとおりです。
port.PortName = cboPortName.Text;
port.BaudRate = Convert.ToInt32(this.cboBaudRate.Text); //9600
port.DataBits = Convert.ToInt32(this.cboDataBits.Text); //8
port.ReadTimeout = Convert.ToInt32(this.txtReadTimeOut.Text); //300
port.WriteTimeout = Convert.ToInt32(this.txtWriteTimeOut.Text); //300
port.StopBits = StopBits.One; //1
port.Parity = Parity.None; // None
port.Encoding = Encoding.GetEncoding("iso-8859-1");
port.Open();
port.DtrEnable = true;
port.RtsEnable = true;