我想在某个应用程序中使用GSM调制解调器。
我想要的是处理已发送短信列表的短信发送报告。
GSM调制解调器收件箱&发件箱限量15件。每当我读取收件箱时,gsm调制解调器返回一个列表清除列表。
如何检查已从GSM调制解调器收件箱中删除的短信的发送状态?
我需要一些独特的东西,使我能够识别每条消息。
答案 0 :(得分:4)
每次我读取收件箱时,gsm调制解调器都会返回一个列表清除清单。
读取后,存储在调制解调器内存中的消息不会被删除。您只需使用at+cmgl={message id in storage}
命令读取消息,然后使用at+cmgd={message id in storage}
命令将其删除(或不按照您的意愿删除它。您可以使用at+cmgd=1,4
命令清除所有调制解调器的存储空间。)
回到问题:发送短信后,你会得到调制解调器的响应,像这样:+cmgs: {sms id, 0 to 255} OK
。如果服务中心已成功发送短信,调制解调器将返回此响应:+cds: {some id which does not matter} {PDU status report}
。您只需要decode此PDU即可获取状态报告,原始SMS的ID和其他有用数据。如果从状态报告中发送短信的ID和ID相等,则您的状态报告将完全针对您的消息。请注意,如果您在收到投放报告之前从调制解调器的存储中删除邮件,则会收到包含所有常用信息的报告,但status of delivery最有可能是71而不是0.