使用PHP将SMS AT命令发送到3G调制解调器 [英] Sending SMS AT commands to 3G modem using PHP

查看:110
本文介绍了使用PHP将SMS AT命令发送到3G调制解调器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法向连接到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆