从 SIM 接收短信

Receiving SMS from SIM

我想知道,当我尝试使用 AT+CMGL 从 SIM 卡接收短信时,消息可以包含 OK<CR><LF> 吗?如果是这样,我怎么知道消息的结尾在哪里?

谢谢

这是一个很好的问题,正如您所确定的,如果信息文本包含您松散的最终结果代码,因为没有办法知道。

这在 V.250 中部分介绍,它禁止调制解调器在分行时引入错误的最终结果代码:

Note that the DCE may insert intermediate characters in very long information text responses, in order to avoid overrunning DTE receive buffers. If intermediate characters are included, the DCE shall not include the character sequences "0 " (3/0, 0/13) or "OK" (4/15, 4/11, 0/13), so that DTE can avoid false detection of the end of these information text responses.

还有几个命令(+GMI、+GMM、+GMR、+GSN、+GOI 和+GCAP)被明确禁止生成嵌入 OK 最终结果代码的文本(但它不会提及有关 ERROR...的任何事情)。

27.007 类似,它禁止某些命令(+CGMI、+CGMM、+CGMR、+CGSN、+CEER 和 +CLAC)包含 OK(同样没有提及 ERROR...).

27.005 没有指定任何关于嵌入的最终结果代码,所以为了避免 AT+CMGL 的嵌入最终结果代码的问题,你需要在 PDU 模式下阅读消息,你有一个保证信息文本中不会包含OKERROR