ZDO_StartRouterConfirmCB节点求成功加入后调用回调函数
ZDO层接收到该消息后,(ZDApp.c文件中ZDApp_ProcessOSALMsg())首先修改设备状态为正在加入网络: devState = DEV_NWK_JOINING; 任务事件处理函数将执行请求加入网络事件:NLME_JoinRequest();经过一番的网络请求后NWK层将接收到网络反馈:ZDO_JoinConfirmCB( uint16 PanId, ZStatus_t Status ) 是对请求加入的网络反馈,接着发送加入网络指示消息至ZDO层。ZDApp_SendMsg( ZDAppTaskID, ZDO_NWK_JOIN_IND, sizeof(osal_event_hdr_t), (byte*)NULL ); ZDO层接收到该消息后,任务事件处理函数将执行处理加入网络函数: ZDApp_ProcessNetworkJoin(); 修改设备状态为终端设备:devState = DEV_END_DEVICE; 并且根据设备逻辑类型为路由器,发送请求启动路由: NLME_StartRouterRequest( 0, 0, false ); 经过一番启动路由动作后,NWK层接收到请求启动路由反馈ZDO_StartRouterConfirmCB( ZStatus_t Status ) ,然后设置启动路由事件osal_set_event( ZDAppTaskID, ZDO_ROUTER_START );此时修改由路状态为:devState = DEV_ROUTER;检查供电状态,设置ZDO状态改变事件osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT );ZDO更新网络状态事件:ZDO_UpdateNwkStatus( devState ); 然后向注册的端点号发送ZDO状态改变消息:zdoSendStateChangeMsg(state, *(pItem->epDesc->task_id)); 确定路由器的16位网络地址和64位IEEE地址。改变应用层网络状态为SampleApp_NwkState = DEV_ROUTER;