2

我正在开发一个使用 GSM 调制解调器和我的电脑发送和接收 SMS 的程序。

我已经开始发送和接收工作 - 很好。

有时,由于调制解调器混淆了有关无线电信号强度指示等信息,我的程序被发送到完全崩溃的状态,同时还为我的程序提供消息的十六进制代码。

我的代码可以很好地处理十六进制代码。但是我在解码字节流时看到了以下行弹出:

^RSSI: 2

到目前为止,我已经看到它发出了 1 到 10 之间的值。

是否有可以禁用它们的 AT 命令?我不需要他们。

或者替代方案:它们是否有通用语法,所以我可以在解码之前将它们过滤掉?

我倾向于过滤解决方案。但是,如果我知道调制解调器何时以以下形式发送:“^SOMETHING:xxx”,那么这将更容易实现,那么很高兴知道它是否总是跟进是一个分隔符,例如“\r” .

4

2 回答 2

9

您应该尝试使用 AT^CURC=0 关闭定期消息。

关于 AT^CURC 命令的信息:

AT^CURC? 周期性状态消息的当前设置

AT^CURC=? 看看你可能的价值观是什么

AT^CURC=0 关闭周期性状态消息

于 2012-06-25T07:12:10.073 回答
1

解决这种情况的最佳方法是将响应的那部分替换为空字符串,否则,即使发送用于禁用它的命令是否有效,也很难检查。

这个正则表达式将匹配所有这些。理想情况下,您可以用空字符串替换它们。

(\\n|\\r|\\r\\n)\\^.*(\\n|\\r|\\r\\n)
于 2015-05-10T22:10:05.260 回答