使用PHP将SMS AT命令发送到3G调制解调器 [英] Sending SMS AT commands to 3G modem using PHP
问题描述
我无法向连接到COM5的3G调制解调器发送命令. 调制解调器正在接受连接并接收命令. 但是出了点问题(我认为这是在我的语法/AT命令中). 在超级终端中,命令返回错误. 如果有人可以提供帮助,我将很高兴.
I'm having trouble sending commands to a 3G modem connected on COM5. The modem is accepting the connection and receiving the commands. But there is something wrong (I think it is in my syntax/AT commands). In hyperterminal the commands are returning errors. If anyone can help I would gladly appreciate it.
---------下面的代码-------
-------CODE BELOW-------
<?
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". 确定"是您希望电话返回的响应. 使用终端程序
You need to append a \r to the end of each command rather than an "OK". The "OK" is the response you expect to be returned by the phone. Use a terminal program
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模式而不支持SMS文本模式
Etc... It is possible your phone does not support SMS text mode only pdu mode
在+ CMGF =处键入?
Type at+CMGF=?
键入回车键,如果响应为at + CMGF(0,1),则仅支持(0),然后仅支持pdu.您将必须以pdu模式输入SMS消息.
有关如何执行此操作的示例很多.
Type enter key, if the response is at+CMGF (0,1) it supports both if (0) then pdu only. You will have to enter the SMS message in pdu mode.
There are plenty of examples on how to do this.
这篇关于使用PHP将SMS AT命令发送到3G调制解调器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!