如何测试何时到达SMS消息的结尾

时间:2017-04-24 10:24:44

标签: sms at-command

我正在编写一个应用程序,它对通过SMS接收的命令起作用(在Python中,但问题出现在其他语言中)。

This page on the CMGL command显示以下命令和响应:

AT+CMGL="ALL"
+CMGL: 1,"REC UNREAD","+31628870634",,"11/01/09,10:26:26+04"
This is text message 1
+CMGL: 2,"REC UNREAD","+31628870634",,"11/01/09,10:26:49+04"
This is text message 2
OK

我查看的大多数实现都会查找有效状态,例如OK或ERROR来检测响应的结束。

我正试图找到一种方法来确定此状态代码与消息结束之间的区别。

否则,恶意发件人可能会发送

消息
Hello<CR><LF>OK<CR><LF>+CMGL: 1,(rest of fake message...)

因为我在串口上接收数据,所以当我从GSM板到达一条消息的末尾时,没有明确的方法可以判断。

有人能指点我这里有关于最佳做法的一些信息吗?我见过的其他实现似乎没有涵盖这个问题。

我到目前为止唯一的想法(但感觉非常混乱)是继续阅读,直到超时被击中。然后检查消息中的OK / ERROR行数,只接受最后一行。

0 个答案:

没有答案