AT+CMGS不用ESC可以取消吗?
Can AT+CMGS be cancelled without ESC?
是否可以通过 ESC 以外的某些控制代码取消 AT+CMGS
命令?
我需要它,因为 ESC 被附加设备拦截供自己使用,永远不会到达调制解调器。而且,我无法改变这一点。
不幸的是,CTRL-Z 甚至会发送一条空消息,否则我可以退格足以清除消息并执行 CTRL-Z 中止。
相关的《AT命令集》手册没有帮助。
根据TS 127 005规范,似乎没有办法配置短信发送流产的字符。
无论如何,我可以根据三个不同的命令提出解决方法:
+CMGW
- 将消息写入内存
+CMGD
- 删除消息
+CMSS
- 从存储中发送消息
所以基本上,而不是使用一步发送消息的 +CMGS
用+CMGW
将短信写入内存(与+CMGS
语法相同)。短信内容以CTRL-Z字符结束后,回复为
+CMGW: <index>
其中<index>
是当前内存存储中的消息位置索引
实际用
发送
AT+CMSS=index
删除短信
AT+CMGD=index
由于内存插槽有限,无论如何您都必须删除它。如果您意识到您在 +CMGW
阶段撰写的消息是错误的,请将其存储为 CTRL-Z 并跳过实际发送。
如您所见,整个过程是在不使用 ESC 字符 (0x1B
) 的情况下执行的,可以轻松实现自动化并且不需要更多时间待执行。
是否可以通过 ESC 以外的某些控制代码取消 AT+CMGS
命令?
我需要它,因为 ESC 被附加设备拦截供自己使用,永远不会到达调制解调器。而且,我无法改变这一点。
不幸的是,CTRL-Z 甚至会发送一条空消息,否则我可以退格足以清除消息并执行 CTRL-Z 中止。
相关的《AT命令集》手册没有帮助。
根据TS 127 005规范,似乎没有办法配置短信发送流产的字符。
无论如何,我可以根据三个不同的命令提出解决方法:
+CMGW
- 将消息写入内存+CMGD
- 删除消息+CMSS
- 从存储中发送消息
所以基本上,而不是使用一步发送消息的 +CMGS
用
+CMGW
将短信写入内存(与+CMGS
语法相同)。短信内容以CTRL-Z字符结束后,回复为+CMGW: <index>
其中
<index>
是当前内存存储中的消息位置索引实际用
发送AT+CMSS=index
删除短信
AT+CMGD=index
由于内存插槽有限,无论如何您都必须删除它。如果您意识到您在
+CMGW
阶段撰写的消息是错误的,请将其存储为 CTRL-Z 并跳过实际发送。
如您所见,整个过程是在不使用 ESC 字符 (0x1B
) 的情况下执行的,可以轻松实现自动化并且不需要更多时间待执行。