2012-02-13 15 views
4

COM5に接続された3Gモデムにコマンドを送信できません。 モデムが接続を受け付けており、コマンドを受信して​​います。 しかし、何か間違っている(私はそれが私の構文/ ATコマンドにあると思う)。 ハイパーターミナルでは、コマンドがエラーを返しています。 誰でも助けてくれれば喜んで感謝します。PHPを使用してSMS ATコマンドをPHPを使用して3Gモデムに送信する

------- -------以下のコード

<? 
exec("mode COM5 BAUD=9600 PARITY=N data=8 stop=1 xon=off"); 
$fp = fopen ("\\.\COM5:", "r+"); 
//$fp = dio_open('COM5:', O_RDWR | O_NOCTTY | O_NONBLOCK); 
if (!$fp) 
{ 
    echo "Uh-oh. Port not opened."; 
} 
else 
{ 

    $string = "AT+CMGF=1"; 

    $string = $string."OK"; 

    $string = $string."AT+CMGS='+27824139864'"; 

    $string = $string."> Hello World?<Ctrl>+<Z>"; 

    $string = $string."+CMGS: 44"; 

    $string = $string."OK"; 

    fputs ($fp, $string); 
    echo $string."\n"; 
    fclose ($fp); 
} 

?> 
+0

を与えることができ、目に見えるエラーが –

+0

ありませんしてください。モデムは単にSMSを送信しません。 – Luben

+0

シリアルターミナルで同じコマンドを実行すると、SMSが送信されますか? – Appleman1234

答えて

3

あなたは、各コマンドの終わりではなく、 "OK" に\ rを追加する必要があります。 「OK」は、電話機から返されると思われる応答です。 は、ターミナルプログラムを使用し

1 second delay 
+++ 
1 second delay 
The modem should respond with "OK" 
Type AT+CMGF=1 
press enter key 
Modem will repond with "OK" 

等... それはあなたの携帯電話は+ CMGF =でのみPDUモード

タイプのSMSテキストモードをサポートしていない可能ですか?

応答が+ CMGF(0,1)の場合はタイプ入力キー、それは(0)とpduのみの両方をサポートします。 pduモードでSMSメッセージを入力する必要があります。
これを行う方法の例はたくさんあります。

+0

デビッド氏のおかげですが、私がAT + CMGFと入力すれば=私はまだ "ERROR"レスポンスを得る。私が入力したコマンドが私に "エラー" msgを出すようです。 ATは "OK"を返します。何が問題なのでしょうか?それはモデムの設定ですか? – Luben

+0

あなたは本当にcom5が電話ですか?たぶんあなたはモデムを使ってあなたと話しているでしょう(彼らは通常com3、windozeになりますが)。 –

+0

ピンが入力されたかどうかをチェックします。ピンを入力するまで、エラーが返されることがあります –

0

「OK」ではなく各コマンドの最後に\ rを追加する必要があります。 「OK」は、電話機から返されると思われる応答です。ターミナルプログラムを使用し

1秒の遅延 +++ 1モデムが+ CMGF = 1 AT タイプ "OK" で応答しなければならない秒の遅延 は プレスがモデムが

"OK" をrepondます キー入力してください

その他...電話機がSMSテキストモードのみのpduモードをサポートしていない可能性があります

+ CMGF =

応答が+ CMGF(0,1)の場合はタイプ入力キー、それは(0)とpduのみの両方をサポートします。 pduモードでSMSメッセージを入力する必要があります。 これを行う方法には多くの例があります。

はUが私たちにエラーを与えるミーCODE

関連する問題