Php 使用AT命令通过gsm调制解调器发送sms后获取传递状态

Php 使用AT命令通过gsm调制解调器发送sms后获取传递状态,php,gsm,at-command,Php,Gsm,At Command,我的php文件包含以下代码: $serial->deviceOpen(); $serial->sendMessage('AT+CMGF=1'); $serial->sendMessage(chr(13)); $serial->sendMessage('AT+CMGS="+3XXXXX"'); $serial->sendMessage(chr(13)); $serial->sendMessage("THIS IS TEST"); $serial->s

我的php文件包含以下代码:

$serial->deviceOpen();

$serial->sendMessage('AT+CMGF=1'); 
$serial->sendMessage(chr(13));
$serial->sendMessage('AT+CMGS="+3XXXXX"');
$serial->sendMessage(chr(13));
$serial->sendMessage("THIS IS  TEST");
$serial->sendMessage(chr(26));

sleep(6);

$read=$serial->readPort();

我的代码包括AT命令,现在它可以通过gsm调制解调器向任何号码发送短信。现在我想获得交货状态。我在putty软件中使用了AT命令来表示交货状态,并得到了正确的结果。我想通过php代码查看报告。如何做到这一点?

您可以通过新收到的短信来检查交付状态,该短信将通知您是否成功。通过以下AT cmds访问它应该不难:

AT+CNMI New SMS message indication
AT+ CMGL List SMS messages from preferred storage
AT+CMGR Read SMS message

您可以通过新收到的短消息检查交付状态,该短消息将通知成功。通过以下AT cmds访问它应该不难:

AT+CNMI New SMS message indication
AT+ CMGL List SMS messages from preferred storage
AT+CMGR Read SMS message

通过CNMI命令启用交付状态报告,然后通过CSMP命令启用交付报告请求

AT+CNMI=2,1,0,1,0
AT+CSMP=49,167,0,0
CSMP命令49中的第一个参数表示向GSM网络发送报告的请求。如果不需要交付报告,只需使用17而不是49。 然后使用CMGS命令发送您的短信。
传送报告将通过+CDS URC代码从调制解调器报告给主机。

通过CNMI命令启用传送状态报告,然后通过CSMP命令启用传送报告请求

AT+CNMI=2,1,0,1,0
AT+CSMP=49,167,0,0
CSMP命令49中的第一个参数表示向GSM网络发送报告的请求。如果不需要交付报告,只需使用17而不是49。 然后使用CMGS命令发送您的短信。
交付报告将通过+CDS URC代码从调制解调器报告给主机。

在每次发送时将数据写入文本文件。。使用fopen和FWrite抱歉,我不明白。你能给我提供一个有用的链接吗?在每次发送时,将数据写入文本文件。。使用fopen和fwrite对不起,我不明白。你能给我提供一个有用的链接吗?