我在向 COM5 上连接的 3G 调制解调器发送命令时遇到问题。 调制解调器正在接受连接并接收命令。 但是出了点问题(我认为是在我的语法/AT 命令中)。 在 super 终端中,命令返回错误。 如果有人可以提供帮助,我将不胜感激。
--------代码如下--------
<?
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”。 “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"
等等... 有可能你的手机不支持SMS text mode only pdu mode
输入 at+CMGF=?
键入回车键,如果响应是 at+CMGF (0,1) 它只支持 if (0) then pdu。您必须在 pdu 模式下输入短信。
有很多关于如何执行此操作的示例。
关于php - 使用 PHP 将 SMS AT 命令发送到 3G 调制解调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9257302/