使用PHP发送SMS AT命令到3G调制解调器使用PHP
我无法将命令发送到连接在COM5上的3G调制解调器。 调制解调器正在接受连接并接收命令。 但有一些错误(我认为这是在我的语法/ AT命令)。 在超级终端中,命令返回错误。 如果任何人都可以帮助,我会很乐意欣赏它。使用PHP发送SMS AT命令到3G调制解调器使用PHP
-------下面的代码-------
<?
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);
}
?>
您需要添加一个\ 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模式
类型?
键入回车键,如果响应在+ CMGF(0,1),则它支持if(0)和pdu only。您将不得不以pdu模式输入短信。
有很多关于如何做到这一点的例子。
谢谢戴维,似乎是对的,但如果我输入AT + CMGF =?我仍然收到“错误”回应。看来,我输入的任何命令都会给我“错误”信息。在AT返回“确定”..可能是问题是什么?它可能是调制解调器上的设置? – Luben 2012-02-13 12:07:37
你确定com5是电话吗?也许你正在和你内置的调制解调器通话(尽管它们通常以com3为结尾,反正是windoze) – 2012-02-13 21:36:09
刚刚有一个想法做了一个+ cpin \ r这将检查是否输入pin。这可能是错误返回,直到你已经输入引脚 – 2012-02-17 11:12:58
您需要在每个命令的末尾附加一个\ r而不是“OK”。 “确定”是您希望通过电话返回的响应。使用终端程序
1秒的延迟 +++ 1秒的延迟 调制解调器应该AT + CMGF = 1 “OK” 类型回应 按回车键 调制解调器会以 “OK”
repond等......这可能是您的手机不支持短信文本模式只有pdu模式
在+ CMGF =?
键入回车键,如果响应在+ CMGF(0,1),则它支持if(0)和pdu only。您将不得不以pdu模式输入短信。 有很多关于如何做到这一点的例子。
ü可以给我的代码
给我们一个错误,请 – 2012-02-13 08:20:21
没有明显的错误。调制解调器根本不发送短信。 – Luben 2012-02-13 08:22:17
在串行终端中运行相同的命令是否发送SMS? – Appleman1234 2012-02-13 08:46:51