GSM有没有AT命令可以查看收件箱是否已满?

Is there any AT command to check whether the inbox is full or not in GSM?

有没有AT命令可以查看消息收件箱是满还是空? 我知道一些与 SMS 相关的命令,用于读取、写入、发送和存储到内存位置(SIM 内存、闪存)。在我的例子中,我将消息存储在 SIM 内存中,因此它提供了一些内存位置(最多 10 条消息) ).

是的。您可以使用 AT+CPMS 命令进行检查。使用 atinout 的示例:

$ echo AT+CPMS=? | atinout - /dev/ttyACM0 -
AT+CPMS=?
+CPMS: ("ME","SM"),("ME","SM"),("ME","SM")

OK
$ echo AT+CPMS? | atinout - /dev/ttyACM0 -
AT+CPMS?
+CPMS: "ME",5029,47843,"ME",5029,47843,"ME",5029,47843

OK
$

命令在27.005中定义,读取命令1响应的格式为

+CPMS: <mem1>,<used1>,<total1>,<mem2>,<used2>,<total2>,<mem3>,<used3>,<total3>

这正是您所要求的。

读取命令将为当前 selected 内存位置 return 值,要查询不同的内存位置 select 它首先使用设置命令2 。或者,set 命令实际上也在信息文本响应中提供与 read 命令相同的信息,因此您可以选择解析它。


1 参见 V.250 中的 5.4.4.3 Parameter read command syntax

2 请注意,虽然指定的语法允许单独指定 mem1 而无需提供 mem2 一些手机不喜欢这样,因此兼容的方法是始终同时指定 mem1 和 mem2,例如AT+CPMS="SM","SM".