2

USBケーブルで携帯電話に接続して電話をかけるac#プログラムを作りたい。SerialPortで接続する方法と、ATコマンドで電話をかける方法を見つけましたが、プログラムを実行してクリックして電話をかけると、何も起こりません。これは私のコードです、助けてください:

SerialPort SP = new SerialPort("COM3");
SP.BaudRate = 9600;
SP.Parity = Parity.None;
SP.DataBits = 8;
SP.StopBits = StopBits.One;
SP.RtsEnable = true;
SP.DtrEnable = true;
SP.Encoding = System.Text.Encoding.Unicode;
SP.ReceivedBytesThreshold = 1;
SP.NewLine = Environment.NewLine;
SP.Open();
SP.Write("ATDT 0999182542"+ Environment.NewLine);

SP.Close();
4

3 に答える 3

4

まず、モデムが接続されているかどうかを確認するATために、ポートにコマンドを送信します。as応答が表示された場合OKは、モデムが接続されていることを意味します。

電話をかけるための構文は次のとおりです。

ATDYourphnumber; // 「;」を忘れないでください

例:ATD9012345645;

したがって、同じ方法でポートに書き込む必要があります。

構文:

SP.WriteLine("ATD"+phonenumber+";");

WriteLineも役立つので、WriteLineを使用できます\r\n

更新:モデムからの応答を確認する方法:

SP.Open()の後;

string cmd = "AT";
SP.WriteLine(cmd + "\r");
SP.Write(cmd + "\r");
Thread.Sleep(500);
string ss= SP.ReadExisting();
if(ss.EndsWith("\r\nOK\r\n"))
  {
   MessageBox.Show("Modem is connected");
  }
于 2012-09-12T11:12:07.237 に答える
2

@Cdeezあなたの答えは最高です!私が試したXDは問題なく動作しますが、「Enter」を押すと機能する「\ r」が含まれていなかったため、コマンドを実行するにはEnterキーを押す必要があります。ちなみに、ここに私の呼び出し方法があります。@ Cdeezにもう一度感謝します!:

private void Call() {
        SerialPort celu = new SerialPort();
        celu.PortName = "COM13"; // You have check what port your phone is using here, and replace it
        celu.Open();
        string cmd = "ATD";  // Here you put your AT command
        string phoneNumber = "784261259"; // Here you put the phone number, for me it worked just with the phone number, not adding any other area code or something like that
        celu.WriteLine(cmd + phoneNumber + ";\r");
        Thread.Sleep(500);
        string ss = celu.ReadExisting();
        if (ss.EndsWith("\r\nOK\r\n"))
        {
            MessageBox.Show("Modem is connected \r Calling : " + phoneNumber);
        }
        celu.Close();
    }
于 2013-05-30T20:41:05.077 に答える
0

COMポートロギングツールについてはどうですか。使っていますか?コマンドはCOMポートに送信されましたか?

私の知る限り、ダイヤルコマンドはATD[番号]です。したがって、次のようにコードを書き直してみてください。

    SP.Write("ATD0999182542;"+ Environment.NewLine);

このライブラリを使用してみてください: GSM通信ライブラリ

于 2012-09-07T15:24:03.667 に答える