使用SMS调制解调器和Phpserial类发送SMS

使用SMS调制解调器和Phpserial类发送SMS,php,serial-port,sms,gsm,at-command,Php,Serial Port,Sms,Gsm,At Command,我使用的设备如下: 我想使用Phpserial类发送SMS消息,我已经搜索并遵循了一些关于如何实现它的说明。为了确保这一点,我下载了一个AT测试仪,尝试将信息从我的手机发送到我的设备,结果成功了 现在我想在PHP中实现它,并尝试使用Phpserial类。我正在使用windows操作系统,当我尝试它时,它没有返回任何错误,但我没有收到任何消息。我试着检查控制台和网络,它并没有响应,也并没有返回错误,我想 代码如下: <?php require('PhpSerial.php');

我使用的设备如下:

我想使用Phpserial类发送SMS消息,我已经搜索并遵循了一些关于如何实现它的说明。为了确保这一点,我下载了一个AT测试仪,尝试将信息从我的手机发送到我的设备,结果成功了

现在我想在PHP中实现它,并尝试使用Phpserial类。我正在使用windows操作系统,当我尝试它时,它没有返回任何错误,但我没有收到任何消息。我试着检查控制台和网络,它并没有响应,也并没有返回错误,我想

代码如下:

<?php
    require('PhpSerial.php');

    $num_send = $_POST['number'];
    $txt = $_POST['txt_msg'];      

    $serial = new PhpSerial;

    if($serial->deviceSet("COM4")){
        $serial->confBaudRate(9600);
        $serial->confParity("none");
        $serial->confCharacterLength(8);
        $serial->confStopBits(1);
        $serial->confFlowControl("none");
        if($serial->deviceOpen()){
            $serial->sendMessage("AT+CMGF=1\n\r"); 
            $serial->sendMessage("AT+cmgs=\"".$num_send."\"\n\r");
            $serial->sendMessage(" ".$txt." \n\r");

        $serial->sendMessage(chr(26));

        //wait for modem to send message
        sleep(7);
        $read=$serial->readPort();
        $serial->deviceClose();
        echo "Success";
        }
    }        
?>


上面的代码没有错误,但我没有收到任何消息。为什么?

如果在测试仪上使用并成功发送, 您需要GPRS设备中接受的命令和字符
最佳方式嗅探从AT测试仪到GPRS调制解调器的传输数据包。或者免费使用最佳工具来检测接受的命令和字符。仅监控数据包。

以及PC如何从串行端口发送SMS消息?根据协议,您只能从连接到PC的手机或短信网关发送短信。我假设您通过串行电缆连接手机使用了第一种方法,那么问题是您每次调用sendMessage都收到了什么?@DanielProtopov im使用此设备:向我们显示从AT端口嗅出的实际流量会很有帮助。我的意思是这两个命令都发送了一个接收到的响应。那么您是否确认AT测试仪正确地接收到了SMS?在这种情况下,它只能由程序中的错误(例如:目标号码错误)导致我的代码回显成功,但我没有收到文本消息。有什么不对劲吗?或者设备的兼容性?来自代码和AT测试仪的发送数据包是否相等?请逐个字符检查。我试图下载串行端口监视器,但如果开始记录,我的PHP代码将返回警告:在第120行的C:\xampp\htdocs\sms_test\PhpSerial.PHP中指定的串行端口无效。如果我关闭记录器,它将返回成功。我想它与我的COM4端口冲突?可以从AnyDesc远程检查我吗?我还尝试在测试仪上运行,如果我打开串行端口监视器,结果相同,它显示找到的端口:COM4 COM4当前正在使用。请关闭使用此端口的应用程序,然后重新连接。