【问题标题】:Can AT+CMGS be cancelled without ESC?没有ESC可以取消AT+CMGS吗?
【发布时间】:2020-10-14 12:35:20
【问题描述】:

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

我需要它,因为 ESC 被连接的设备拦截以供自己使用,并且永远不会到达调制解调器。而且,我无法改变这一点。

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

相关的《AT指令集》手册也无济于事。

【问题讨论】:

    标签: sms at-command sim800


    【解决方案1】:

    按照TS 127 005的规范,好像没有办法配置短信发送中止的字符。

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

    • +CMGW - 将消息写入内存
    • +CMGD - 删除消息
    • +CMSS - 从存储中发送消息

    所以基本上,而不是使用一步发送消息的+CMGS

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

      +CMGW: <index>
      

      其中&lt;index&gt;是当前内存存储中的消息位置索引

    2. 其实是用发送的

      AT+CMSS=index
      
    3. 删除短信

      AT+CMGD=index
      

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

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

    【讨论】:

    • 这是一个好主意。在我将其标记为正确之前,我会等着看是否有更接近我想要的建议。
    猜你喜欢
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 2021-03-06
    相关资源
    最近更新 更多