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.

为什么节点加入网络失败会触发ZDO_SyncIndicationCB?



协调器用函数ZDO_JoinIndicationCB做IEEE地址过滤,判断节点加入网络。一开始节点加入网络,type=NWK_ASSOC_JOIN。然后函数就返回ZFailure。多次以后,节点加入网络,参数type就变成NWK_ASSOC_REJOIN_SECURE了。

我跟踪节点的程序,发现函数ZDApp_ProcessNetworkJoin遇到协调器的ZDO_JoinIndicationCB返回ZFailure时,nwkStatus为ZFailure,多次重试之后,会触发函数ZDO_SyncIndicationCB。

ZDO_SyncIndicationCB

  • ZDO_SyncIndicationCB是在已经入网,但是和父节点失去同步的时候会触发这个函数,从而进入rejoin的过程,如果是父节点和子节点失去同步的时候也会触发这个函数,只是不会执行rejoin过程,因为是父节点。

     

  • 未成功入网的节点为什么也会触发?父节点在ZDO_JoinIndicationCB时返回ZFailure,返回超过3次,子节点就会触发ZDO_SyncIndicationCB