【发布时间】:2015-03-25 14:03:49
【问题描述】:
我想处理来自我的 GSM 调制解调器(SIM900,但也有少数其他调制解调器)的短信,但没有 +CMTI 通知。
代码将运行并执行各种命令,其中之一是检查消息是否到达,然后采取行动。
目前,如果调制解调器收到短信,它会输出 +CMTI 消息,该消息会在缓冲区中的某个位置。
禁用该方法是更好的方法还是我应该解析结构?
【问题讨论】:
标签: gsm at-command
我想处理来自我的 GSM 调制解调器(SIM900,但也有少数其他调制解调器)的短信,但没有 +CMTI 通知。
代码将运行并执行各种命令,其中之一是检查消息是否到达,然后采取行动。
目前,如果调制解调器收到短信,它会输出 +CMTI 消息,该消息会在缓冲区中的某个位置。
禁用该方法是更好的方法还是我应该解析结构?
【问题讨论】:
标签: gsm at-command
请运行
AT+CNMI=0,0,0,0,0
此命令将所有 SMS URC 通知静音。
【讨论】:
接收和处理 SMS 消息的方式各有利弊。
1) 存储在 SIM 卡上
此选项有几个缺点。您必须从 SIM 卡中提取 SMS 消息,一方面这需要时间。另一方面,它会降低 SIM 卡本身的性能。根据您收到的短信数量,这可能会导致 SIM 卡停止工作,也就是不再能够进行读写。
2) 处理不请自来的
这里的缺点是您必须永久连接到调制解调器并在消息到来时收集它们。因此,如果存在 USB 连接问题,您可能会丢失消息。有一些方法可以解决这个问题,例如通过配置调制解调器,以便您手动确认收到的 SMS 消息 (AT+NACK)。这意味着移动运营商网络将在稍后的时间点重新发送消息。
如果您拥有来自不同制造商的调制解调器,那么对于未经请求的消息进行配置有时会有些棘手。如果您选择这条路线,请注意那里。通过 AT+CNMI(参数因制造商/型号而异),您可以配置调制解调器如何处理未经请求的消息。这还涉及调制解调器在没有“主机”连接到调制解调器时如何处理消息等...我真的建议您找到调制解调器的 AT 命令手册,看看那里有什么可能。
总而言之,我个人推荐使用主动发送的方法,因为它比访问 SIM 卡来抓取和删除收到的消息更舒适。
【讨论】: