SARA R410M AT 命令中止

问题描述 投票:0回答:1

我正在尝试将我的系统设置为能够中止可以中止的 AT 命令。根据 U-Blox SARA R410M-02B-01 的文档,在命令执行期间向 DCE 发送字符会中止命令:

第 4 页,来自 AT 命令手册

我正在通过发出命令

AT+COPS=?
来测试系统,根据数据表,该命令可以中止:

然后通过 UART 向 SARA 调制解调器发送一个字符以中止。到目前为止,我还没有取得任何成功,命令总是被执行。我已经尝试过 UTF-8 中的所有字符(使用

for
循环),除了结尾字符 [0x00] 之外。此外,我尝试发送带有或不带有调制解调器[CRLF]预期的行结尾的字符。

从 UART 事件处理程序中,我知道调制解调器已接收到字符。所以我确信这不是沟通问题。我不知道还能尝试什么,欢迎任何帮助。

谢谢

at-command
1个回答
0
投票

到目前为止,我还没有取得任何成功,命令总是被执行。

如何判断成功?问题是命令发送

OK
最终结果代码 而您希望命令被中止时不会发送,还是命令在发送中止字符后继续执行几秒/分钟的问题并且中止尝试似乎没有效果?


在第一种情况下,预期的行为是始终发送最终结果代码,即使命令被中止也是如此。这意味着在实践中,无法验证命令是否已中止,因为所有调制解调器仅发送

OK
,这与正常的成功执行结果没有区别(理论上调制解调器可能会返回自定义结果代码,如
+CME ERROR: Aborted command +COPS 
但我从来没有听说过这样的事情,并且严重怀疑它是否存在)。

来自V.250章节“5.6.1 中止命令”

当 DCE 识别出此类中止事件时,应终止 正在进行的命令并向 DTE 返回适当的结果代码, 按照特定命令的指定。

(这里的DCE(数据通信设备)指调制解调器,DTE(数据终端设备)指AT命令的发送者)


在第二种情况下,您可能只是运气不好,设备对实际中止命令没有或有限的支持。在调制解调器中运行的软件很可能分为多个进程。接收和解析 AT 命令的进程将没有与移动网络通信的逻辑,这将由其他进程处理。因此,当 AT 解析进程收到

AT+COPS
时,它会发起一些进程间通信,让网络进程完成所需的工作并等待结果,以便生成对 AT 命令的响应。根据软件的编写方式,可能会出现阻塞调用,从而阻止调制解调器立即中止命令。

© www.soinside.com 2019 - 2024. All rights reserved.