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.

AF_DataRequest需要确认什么才会将数据发出?

确认数据发送是否成功,是直接在设备自身带的设备表中确认目标的输入输出簇,短地址和端口呢? 还是中间会有无线数据沟通?

若是突然将终端掉电,紧接着立马调用AF_DataRequest为什么会立即发送失败呢?

求解~~~~~~~~~ 

  • 如果你的掉电重启发送会失败的,因为不在网络中,如果你开启了NV,并且rejoin到网络中才可以。

  • Hi Alvin Chen,

      我让终端掉电,同时按下按键让协调器立马发送数据,而该数据是否会发出呢? 

      我测试的结果为不发送,因为我用抓包软件并未看到,并且afDatarequset返回失败。

      协调器是如何立马知道终端已掉电的呢?

  • 是需要终端request的,

    在1.22a版本中有zgChildAgingEnable功能,请看:

    http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/p/85924/236687.aspx#236687

  • Hi Alvin Chen,

    根据帖子,我理解的是协调器通过AssociateList确定终端是否在线,不知道我理解的对不对?

    如果是对的,那么当我终端掉电时,协调器的AssociateList表中依旧存在着掉电终端的短地址,那么

    当此时要发送数据给子设备,数据其实已经准备好了,只是需要终端的datarequest才会发出对吗?

    那么子设备如果换成路由器呢,数据是否会发出呢?

  • 按理说收到MAC层的确认,就算是数据发出去了,不知道MAC_MLME_COMM_STATUS_IND消息算不算是发送成功的确认。

  • 已实测:

    当协调器的AssociatedDevList中还有子设备的记录都会发送数据出来; 只是终端的数据需要终端datarequest后,协调器才会进行发送;

    如果是子设备是路由的话,协调器就会直接发送出来。

    已用packet sniiffer实测