使用PHP向3G调制解调器发送SMS AT命令

时间:2012-02-13 08:12:38

标签: php modem 3g at-command

我在向COM5上连接的3G调制解调器发送命令时遇到问题。 调制解调器正在接受连接并接收命令。 但是有一些问题(我认为这是我的语法/ AT命令)。 在超级终端中,命令返回错误。 如果有人可以提供帮助,我很乐意欣赏它。

-------以下代码-------

<?
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);
}

?>

2 个答案:

答案 0 :(得分:3)

您需要将\ r附加到每个命令的末尾而不是“确定”。 “确定”是您希望手机返回的响应。 使用终端程序

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

...等 您的手机可能不支持仅短信模式pdu模式

输入+ CMGF =?

输入回车键,如果响应位于+ CMGF(0,1),则它同时支持if(0)和pdu。您必须在pdu模式下输入短信 有很多关于如何做到这一点的例子。

答案 1 :(得分:0)

您需要将\ r附加到每个命令的末尾而不是“确定”。 “确定”是您希望手机返回的响应。使用终端程序

延迟1秒 +++ 1秒延迟 调制解调器应以“OK”响应 输入AT + CMGF = 1 按回车键 调制解调器将以“确定”的方式响应

等等......您的手机可能不支持仅短信文本模式pdu模式

输入+ CMGF =?

输入回车键,如果响应位于+ CMGF(0,1),则它同时支持if(0)和pdu。您必须在pdu模式下输入SMS消息。 有很多关于如何做到这一点的例子。

CAN U给我代码