协调器用函数ZDO_JoinIndicationCB做IEEE地址过滤,判断节点加入网络。一开始节点加入网络,type=NWK_ASSOC_JOIN。然后函数就返回ZFailure。多次以后,节点加入网络,参数type就变成NWK_ASSOC_REJOIN_SECURE了。
我跟踪节点的程序,发现函数ZDApp_ProcessNetworkJoin遇到协调器的ZDO_JoinIndicationCB返回ZFailure时,nwkStatus为ZFailure,多次重试之后,会触发函数ZDO_SyncIndicationCB。
ZDO_SyncIndicationCB
VV:
ZDO_SyncIndicationCB是在已经入网,但是和父节点失去同步的时候会触发这个函数,从而进入rejoin的过程,如果是父节点和子节点失去同步的时候也会触发这个函数,只是不会执行rejoin过程,因为是父节点。
Aries Lord:
回复 VV:
未成功入网的节点为什么也会触发?父节点在ZDO_JoinIndicationCB时返回ZFailure,返回超过3次,子节点就会触发ZDO_SyncIndicationCB