建立网络的过程



main()->osal_init_system()->osalInitTasks()->ZDApp_Init()

①在ZDApp_Init中调用ZDOInitDevice( 0 )这个函数;

②在ZDOInitDevice中调用ZDApp_NetworkInit( extendedDelay )这个函数;③在ZDApp_NetworkInit( extendedDelay )中调用 

osal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, delay )这个函数来开启一个定时器;

④定时时间到后在ZDApp_event_loop中的调用ZDO_StartDevice这个函数;

⑤在ZDO_StartDevice这个函数中调用NLME_NetworkFormationRequest这个函数来建立网络;


---->ZDOInitDevice();

 ---->ZDApp_NetworkInit(); 

---->osal_set_event( ZDAppTaskID, ZDO_NETWORK_INIT );

 ---->events & ZDO_NETWORK_INIT;

 ---->ZDO_StartDevice(); 

如果是协调器启动 ---->NLME_NetworkFormationRequest();

如果是路由器或者终端设备第一次启动 ---->NLME_NetworkDiscoveryRequest();

 如果是路由器重新加入: ---->nwk_ScanJoiningOrphan(); 

如果是终端设备重新加入: ---->NLME_OrphanJoinRequest(); 

如果启动失败: 

osal_start_timerEx(ZDAppTaskID, ZDO_NETWORK_INIT, NWK_RETRY_DELAY ); * * * * 

---->ZDO_NetworkFormationConfirmCB(); 

---->osal_set_event( ZDAppTaskID, ZDO_NETWORK_START );

---->events & ZDO_NETWORK_START---->ZDApp_NetworkStartEvt(); 

---->

  osal_set_event(ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); 

---->events & ZDO_STATE_CHANGE_EVT ---->ZDO_UpdateNwkStatus( devState ); 

---->osal_msg_send( *(epDesc->epDesc->task_id), (byte *)msgPtr ); 

//上面事件的作用是:向每个应用层任务注册一个ZDO_STATE_CHANGE事件 

 

 

 

 

 

 

协调器(自启动模式)—以SampleApp的协调器为例,并假设初始化成功,网络建立成功. 程序大致流程: 

 

main()->osal_init_system()->osalInitTasks()->ZDApp_Init()->ZDOInitDevice()->ZDApp_NetworkInit->触发ZDAppTaskID的ZDO_NETWORK_INIT->ZDO_StartDevice()->NLME_NetworkFormationRequest()->网络建立成功ZDO_NetworkFormationConfirmCB->触发ZDAppTaskID的ZDO_NETWORK_START->ZDApp_NetworkStartEvt()->触发ZDAppTaskID的ZDO_STATE_CHANGE_EVT->ZDO_UpdateNwkStatus()->触发SampleApp_TaskID的ZDO_STATE_CHANGE->开户周期信息发送的定时器. 


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值