不使用ESC可以取消AT + CMGS吗?

问题描述

是否可以通过除ESC之外的某些控制代码取消AT+CMGS命令?

我需要它,因为ESC被附带的设备拦截供自己使用,并且从不进入调制解调器。而且,我无法更改。

不幸的是, CTRL-Z 甚至会发送一条空消息,否则我可以退格以清除该消息并执行 CTRL-Z 中止。

相关的“ AT命令集” 手册无济于事。

解决方法

根据TS 127 005规范,似乎无法为短信发送中止配置字符。

无论如何,我可以根据三种不同的命令提出一种解决方法:

  • +CMGW-将消息写入内存
  • +CMGD-删除邮件
  • +CMSS-从存储空间发送消息

因此,基本上,与其使用+CMGS一步一步发送邮件

  1. 使用+CMGW(与+CMGS相同的语法)将SMS写入内存。用 CTRL-Z 字符关闭SMS内容后,答案是

    +CMGW: <index>
    

    其中<index>是当前内存存储中的邮件位置索引

  2. 实际上是通过

    发送的
    AT+CMSS=index
    
  3. 使用

    删除短信
    AT+CMGD=index
    

    由于内存插槽有限,因此无论如何都必须删除它。如果您意识到在+CMGW阶段编写的消息是错误的,则无论如何都将其存储在 CTRL-Z 中,并跳过实际的发送。

如您所见,整个过程无需使用 ESC 字符(0x1B),即可轻松实现自动化,并且不需要执行更多时间。 / p>