2013-03-10 66 views
3

我有一个简单的xbee网络,其中有一堆从远程操作的从站,并且都与一个连接到服务器计算机的主站进行通话。这没有问题。XBee发送到所有

所有的从服务器都将自己的ID作为数据包的一部分发送出去,我希望主服务器在延迟后故意发送一个Ack。我试图弄清楚如何有效地做到这一点,似乎在每次Ack之前不需要重新编程主机的唯一合理的方式是将Ack发送给所有的从机,并让它们忽略数据包,如果它不适用于他们。

该解决方案是好的 - 我只是无法弄清楚使用这个命令。是否有某种串行sendAll命令?所有设备都在同一个ATID上。

回答

3

通常在这种情况下,您应该在API模式下配置主设备,以便您可以使用源地址信息获得“接收显式”帧,并可以使用“发送显式”帧类型进行发送,并在帧中包含寻址信息。

如果您使用AT模式(透明串行模式),那么您每次需要更改发送给谁时都必须更改协调器上的DH和DL参数。您应该避免使用广播数据包,因为每个广播数据包都会导致大量网络流量(IIRC,每个路由器将发送广播数据包三次)。

我不知道Arduino上有一个好的XBee库,但它可能会将Digi的开放源码ANSI C XBee Host Library移植到该平台上。

+0

是的,我在发布问题后不久就意识到API路线。谢谢tomlogic。 – user592419 2013-03-18 22:00:00