我有两个XBee芯片,其中一个连接到继电器开关,另一个通过USB电缆连接到我的计算机上。
我可以将本地连接的XBee配置为将其D0值发送到远程XBee,这样,当我切换本地XBee的D0行时,远程中继开关也会切换。
我想要做的是能够通过其串行连接向本地XBee发送命令,并让本地XBee向远程XBee发送一个命令,该命令将切换中继交换机,而不必与本地XBee上的D0线路进行物理交互。
XBees是S1,所以他们没有(似乎?)支持ATIO命令,至少我的测试没有显示该命令有效。我还尝试使用API命令83 (如这里所示)使用ATAP 1,但这不起作用。
硬件设置可以工作--将一个按钮附加到D0上,将其状态传输给远程XBee,那么如何才能在软件上实现相同的操作呢?
发布于 2014-06-16 15:15:48
终于明白了,谢谢你引导我朝正确的方向前进
问题是Digi的网站没有告诉您将IA设置为0xFFFF (允许所有源地址更改引脚状态),默认为0xFFFFFFF(禁用远程引脚更改)。
在本站上找到了一个更好的提示。
这就是在XCTU中Mac的样子:
以下是与默认设置不同的所有设置,其中一个是我让它工作的。
发送器: MY=7 AP=1 (启用API) D0=3 (Pin 0输入) IC=FF (Change Pin)
接收器: MY=2 D0=5 (Pin 0高输出) IU=0 (UART IO禁用) IA=0xFFFF (允许所有更改引脚)
我使用的命令:
7 e 00 10 17 01 00 13 A2 00 AA BB CC DD FF FE 02 49 4F 00 8D -发送远程ATIO 0
7 e 00 10 17 01 00 13 A2 00 AA BB CC DD FF FE 02 49 4F 01 8C -发送远程ATIO 1
发布于 2014-06-09 08:11:29
您需要为参数ATD0
发送一个“远程AT命令”框架,如这个页面在Digi的网站上中所述。
尽管该页面是针对系列2无线电模块的,但是如果您查看系列1的文档,您可以找到远程at命令的框架格式。
而且,如果要使用C来发送命令,这个开放源码,可移植,ANSI C XBee主机库将在samples/common/_atinter.c
中包含一个函数process_command_remote()
来发送远程AT命令。
https://stackoverflow.com/questions/24107482
复制