This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

为什么endpoint会不断的去请求data request,这个请求的作用是什么呢? 关闭了NWK_AUTO_POLL,为什么还是有data request?

为什么endpoint会不断的去请求data request,这个请求的作用是什么呢? 我现在endpoint节点是温度采集的,每5s发送一次温度数据,打开了POWER_SAVING功能,进入了PM2模式,通过定时器唤醒。那这个data request发出去之后,会等待多久,然后节点再次进入休眠模式呢?

猜想1: 是不是去父节点查询有没有属于自己的信息?如果有,父节点收到data request请求,就会主动返回给它?

关闭了NWK_AUTO_POLL,为什么还是有data request?

  • Xiaobo,

    Endpoint在ZigBee 协议里面还有其他的意思,你的提问应该是End Device吧?

    End device的通信都是通过父节点来做,包括广播,转发数据等都是有父节点完成的。那么当父节点有数据需要发给子设备End device的时候,数据是buffer在父节点底层的,因为父节点有可能认为节点处于休眠状态,或者节点的RX没有打开,所以每次需要节点Data request去向父节点请求数据,当父节点收到Data request以后,再把数据发给子设备。

    如果在开启了PM2模式下,节点在发送完成Data request大概会有几时ms的时间RX打开的。

    你的猜想是正确的。

    修改下面这个poll rate在f8wconfig.cfg文件里面

    /* The number of milliseconds to wait between data request polls to the coordinator. */
    -DPOLL_RATE=1000

  • VV您好

          我实际测试时候有点问题,我测试的环境是一个协调器和一个休眠的终端,在休眠的时候我发送点播数据,等终端发送datarequest的时候,协调器并没有给终端发送目标信息,似乎只有在终端开始发送datarequest前比较短的时间内发送数据终端才能接受到,这是什么原因呢

  • 协议栈中是否提供了父节点响应终端的datarequest的代码给我们

  • 我也是遇到這个问题,有啥好办法

  • End device如何取消data request

  • End device如何取消data request

  • 可以通过NLME_SetPollRate( uint32 newRate );把poll rate设置成0,节点不会发送data request。
    不发送data request意味着,父设备的数据没办法下发了,因为父设备给子设备的数据都是通过子设备的data request查询来接收的。
  • 你好,谢谢你的回复。再问你一个问题,是不是把这个设置成真(-DRFD_RCVC_ALWAYS_ON=TRUE),就算不发送data request,也可以正常接收父设备的数据

x 出现错误。请重试或与管理员联系。