【发布时间】:2013-08-14 23:55:55
【问题描述】:
我正在开发一个设备的固件,该设备将在串行端口仿真模式下使用蓝牙连接到 PC。
在测试过程中,我发现 Linux 上的调制解调器管理器“有用”地尝试将其检测为调制解调器,并发送 AT+GCAP 命令;对此,目前我的设备回复类似于INVALIDCMD AT+GCAP。这是对我的协议的正确响应,但显然不是 AT 回复,因此 modem-manager 不满意并再次尝试使用AT+GCAP 和其他与调制解调器相关的内容。
现在,我找到了一些调制解调器管理器的解决方法(请参阅 here 和 here,尤其是 udev rule method),但是:
- 它们不是非常健壮(我必须制定一个自定义 udev 规则,如果我们更改蓝牙模块,它可能会中断);
- 我担心不仅调制解调器管理器,而且类似的软件/操作系统功能(例如在 Windows 或 OS X 上)可能会给我带来类似的烦恼。
另外,我可以完全控制固件,可以为AT+GCAP 和类似的东西添加一个特殊情况;所以,来回答我的问题:
对AT+GCAP 和其他类似的调制解调器探测查询是否有标准/安全的回复来告诉“我不是调制解调器,走开让我一个人呆着?”
【问题讨论】:
-
如果您不是调制解调器,则对调制解调器命令的正确响应是 nothing。尝试几次后它应该放弃。 “ERROR”是对您未实现的 AT 命令的响应。
-
@HansPassant:所以,如果我忽略以
AT+开头的所有内容,我应该安全吗?还有其他我应该注意的调制解调器探测消息吗? -
你应该忽略所有以 AT 开头的东西,其中一些没有 +
-
@HansPassant:别担心,我找到了一种告诉调制解调器管理器“别管这个设备”的方法,我正在寻找的只是设备告诉的“通用”方式“我感谢您的兴趣,但我不是调制解调器”,因此要避免特定于平台的黑客攻击。如果你告诉我沉默是正确的答案,那么这就是我需要的答案。 :)
-
+1 表示您显然为创建此答案所付出的努力,是的,沉默将是正确的回应。
标签: serial-port hardware modem at-command firmware