php - 使用 PHP 将 SMS AT 命令发送到 3G 调制解调器

标签 php modem 3g at-command

我在向 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/

相关文章:

c# - 从该行数据创建 HTML 表格的算法?

php - DateTime 的儒略日

javascript - 文件 API 在 Safari 中不工作

modem - 免费调制解调器拨号器

android - Android 能否根据名称解析失败同时使用 3G 和 Wifi 进行路由?

php - MYSQLi Select 语句 - 不起作用

c# - 将 USSD 代码发送到 C# 中的调制解调器,并始终返回 ERROR

Android 作为拨号/传真调制解调器

android - 在没有网络访问的本地 wifi 上强制 Android 使用 3G

ios - 如何强制 iOS 应用程序使用 3G 而不是 WiFi?