问题描述
是否可以通过除ESC之外的某些控制代码取消AT+CMGS
命令?
我需要它,因为ESC被附带的设备拦截供自己使用,并且从不进入调制解调器。而且,我无法更改。
不幸的是, CTRL-Z 甚至会发送一条空消息,否则我可以退格以清除该消息并执行 CTRL-Z 中止。
相关的“ AT命令集” 手册无济于事。
解决方法
根据TS 127 005规范,似乎无法为短信发送中止配置字符。
无论如何,我可以根据三种不同的命令提出一种解决方法:
-
+CMGW
-将消息写入内存 -
+CMGD
-删除邮件 -
+CMSS
-从存储空间发送消息
因此,基本上,与其使用+CMGS
一步一步发送邮件
-
使用
+CMGW
(与+CMGS
相同的语法)将SMS写入内存。用 CTRL-Z 字符关闭SMS内容后,答案是+CMGW: <index>
其中
<index>
是当前内存存储中的邮件位置索引 -
实际上是通过
发送的AT+CMSS=index
-
使用
删除短信AT+CMGD=index
由于内存插槽有限,因此无论如何都必须删除它。如果您意识到在
+CMGW
阶段编写的消息是错误的,则无论如何都将其存储在 CTRL-Z 中,并跳过实际的发送。
如您所见,整个过程无需使用 ESC 字符(0x1B
),即可轻松实现自动化,并且不需要执行更多时间。 / p>