首页 文章

XBee Arduino API远程命令响应

提问于
浏览
1

我有两个XBee Series 2模块和一个Arduino UNO . 我使用的是XBee-API库:http://code.google.com/p/xbee-api/ . 我生成三个RemoteATRequest数据包(0x17)来控制远程睡眠节点的数字引脚并将其从SoftwareSerial发送到XBee协调器,该协调器通过Sparkfun XBee Arduino Shield(https://www.sparkfun.com/products/10854)连接到Arduino UNO . 通讯工作正常 . 每个请求包都发送到远程 . 并且对于每个请求分组,接收远程分组 . 我用串行监视器和RS232 < - > TTL转换器检查了这个 . 但在我的Arduino软件中,似乎只收到一个远程数据包 . 奇怪的是,当我在远程休眠时发送请求数据包时,如果它处于唤醒状态并且从协调器获取请求,则读取三个响应 .

有没有人尝试相同或相同的问题?我已经尝试了很多,直到知道另一个波特率,延迟发送 . 什么都行不通 .

1 回答

  • 0

    我对ZigBee和/或802.15.4的回忆是,一个困的终端设备的父节点只会在困的设备唤醒时保持/排队一个帧 . 请注意,在ZigBee中,它只能保证排队7.5秒 . 您可能需要修改代码以一次发送一个远程AT请求,并在发送另一个之前等待响应 .

    This page对MAC层的工作方式有很好的描述:

    一旦框架组装完成,实际上有两种方式发送它 . 如果它转到另一个路由器或接收器始终打开的终端设备,则该帧将直接通过无线电发送 . 否则,如果目的地是困终端设备,则需要将帧作为间接传输发送 . 帧将进入间接队列,直到目标设备唤醒并轮询父节点 . 一旦轮询进入,框架将被发送到目的地 .

    如果XBee模块支持包含多个AT命令的帧类型会很棒,但据我所知,这不是一个选项 .

相关问题