XBee命令用于发送或接收Dn状态

时间:2014-06-08 15:06:17

标签: xbee

我有两个XBee芯片 - 其中一个连接到继电器开关,另一个 - 通过USB电缆连接到我的电脑。

我可以配置本地连接的XBee将其D0值发送到远程XBee,这样当我切换本地XBee的D0线时,远程继电器开关也会切换。

我想要做的是能够通过其串行连接向本地XBee发送命令,并让本地XBee向远程XBee发送命令,该命令将切换继电器开关而无需与D0线物理交互在我当地的XBee上。

XBees是S1,所以他们不(似乎?)支持ATIO命令,至少我的测试没有显示工作。我也尝试使用带有API命令83的ATAP 1,如here所示,但这不起作用。

硬件设置工作 - 将一个按钮连接到D0会将其状态传输到远程XBee,那么如何才能让软件单独发生?

2 个答案:

答案 0 :(得分:2)

你需要发送一个"远程AT命令" frame,用于参数ATD0,如this page on Digi's website中所述。

虽然该页面适用于2系列无线电模块,但如果您查看系列1的文档,您可以找到远程AT命令的帧格式。

并且,如果您要使用C发送命令,则此Open Source, portable, ANSI C XBee Host Libraryprocess_command_remote()中包含一个函数samples/common/_atinter.c以发送远程AT命令。

答案 1 :(得分:2)

终于想通了,谢谢你指导我正确的方向@tomlogic

问题是Digi的网站没有告诉你将IA设置为0xFFFF(允许所有源地址改变引脚状态),默认情况下为0xFFFF FFFF FFFF FFFF(禁用远程引脚更改)

this site上找到了更好的提示。

这就是XCTU for Mac中的样子: XCTU MAC

以下是所有与默认设置不同的设置。我得到了它。

发射机: MY = 7 AP = 1(启用API) D0 = 3(引脚0输入) IC = FF(更改全部检测)

接收机: MY = 2 D0 = 5(引脚0高输出) IU = 0(UART IO禁用) IA = 0xFFFF (允许所有更改引脚)

我使用的命令:

7E 00 10 17 01 00 13 A2 00 AA BB CC DD FF FE 02 49 4F 00 8D - 发送远程ATIO 0

7E 00 10 17 01 00 13 A2 00 AA BB CC DD FF FE 02 49 4F 01 8C - 发送远程ATIO 1