SerialApp中组建(协调器)和加入(路由器和终端)网络的流程_第1页
SerialApp中组建(协调器)和加入(路由器和终端)网络的流程_第2页
SerialApp中组建(协调器)和加入(路由器和终端)网络的流程_第3页
SerialApp中组建(协调器)和加入(路由器和终端)网络的流程_第4页
SerialApp中组建(协调器)和加入(路由器和终端)网络的流程_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、系统启动时typedefunsignedshorpTi(*kEventHandlerFn)();李祥平011-1osal_mit_system();voidosalInitTasks(void)uinttaskID=0;(uint16*)osal_mem_alloc(sieof(uintl6osal_memset(tasksEvents,tasksEvents=0,(sieof(uint16)*tasksCmacTaskInit(taskIDnwk_init(taskIDHal_Init(taskIDifdefined(MT_TASKMT_TaskInit(taskIDendifAS_Init

2、(taskIDZDApp_Init(taskIDSerialApp_Init(taskID);););););););voidZDApp_Init(bytetask_id).-/Startthedeviceif(devState=DE_HOLD)-DOInitDevice(0);osal_start_system();voidosal_start_system(void)-tasksCnt);constpTaskEventHandlerFntasksArrmacEventLoop,nwk_event_loop,Hal_rocessEvent,ifdefined(MT_TASK)MT_roces

3、sEvent,endifAS_event_loop,ZDApp_event_loopSerialApp_rocessEventZDApp.cfor(;)uintHaldo/ForeverLoopidx=0;rocessoll();uintZDOInitDevice(uint16startDelay)./TriggerthenetworkstartZDApp.cDApp_NetworkInit(extendedDelay);while(ifvoidZDApp_NetworkInfjtuint16delay)-if(delay)ZDApp.celseosal_set_event(ZDApZDO_N

4、ETWORK_INIT);则添加/Waitawhilebeforestartingthedeviceosal_start_timerEx(ZDAZDO_klDTWORK_INIT,delay系统检测到该T列events=(tasksArridx)(idx,events);HALENTERCRITICALsfe;ECTION(intState);(tasksEventsidx)/Taskishighestprioritybreak;idxif(idxuintl6tasksCnt);tasksCnt)events;halIntState_tintState;HAL_ENTER_CRITICAeve

5、nts=tasksEventsidx;tasksEventsidx0;HAL_EIT_CRTIcAL_SECTION(intState);ION(intState)tasksEventsidx|=events;HAL_EIT_CRITICAL_SECTION(intState);、UINT16ZDApp_event_loop(bytetask_id,UINT16events)-events&ZDO_NETWORK_INIT-return(eventsdevState=DEDO_StartDevi(e(uint_INIT;)ZDO_Config_Node_Descriptor.LogicalTy

6、pe,devStartMode,DEFAULT_BEACON_ORDER,DEFAULT_SUERFRAME_ORDER);ZDO_NETWORK_INIT);ZDO_StartDevice(logicalType,startMode,beaconOrder,superframeOrder)LI.,一if(logicalTypeNODETOORDINATOR)/路.由NLMEetNe=workDiscoveryRequest(gDefaultChannelList,gDefaultStartingScanDMrationi器NLME_OrphanJoinRequest(gDefaultChan

7、nelLisgDefaultStartingScanDuration);ThisfunctionallowsthenexthigherlayertorequestthatthedeviceformanewbecometheZigbeeCoordinatorforthatnetheorkesultofthisaction(status)isreturnedtoZDO_NetworkFormationConfirmCB()callbackItisbestnottousethisfunctiondirectlyandnetworkatheinsteuseZDO_StartDevice().NLME_

8、NetworkFormationRequest()NLME_NetworkFormationRequest()ZDO_NetworkFormationConfirmCB()3.4.1.1.1NLME_NetworkDiscoveryRequest()-ndZ-StackAPI_F8W-2006-0021_.pdfThisfunctionrequeststhenetworklayertodiscoverneighboringrouters.Thisfunctalledbeforejoiningtoperformanetworkscan.Thescanconfirm(results)willbeD

9、O_NetworkDiscoveryConfirmCB()callback.Itisbestnottousethisfunction(unlessionreturnedinyoushouldbethoroughlyunderstandthenetworkjoiningprocess)andinsteaduseZDO_StartDevice().ZDO_NetworkFormationConfirmCB(ZStatus_tStatus)一-osal_set_event(ZDAppTaskIZDO_NETWORK_START);ZStatus_tZDO_NetworkDiscoveryConfir

10、mCB(/)-ZDApp_SendMsg(ZDAppTaskMDO_NWK_DISC_CNF,);ZDApp_event_loop()-ifeventsZDO_NETWORK_START)-DApp_NetworkStartEvt();return(eventsZDO_NETWORK_START);voidZDApp_ProcessOSALMsgyffsal_event_hdr_t*msgPtr)-caseZDONWKDISCCNF:voidZDApp_NetworkStartEvt(void-if(nwkStatus/ifZSuccesselseSuccessfullystarteda(de

11、vStateZigBeenetworkDEV_COORD_STARTING)devState=DEV_ZB_COORD;osal_pwrmgr_device(PWRMGR_ALWAS_ON);osal-aDApZDO_SDATE_CHANGE_EVT);INT16events)HalLedSet(HAL_LED_1,HALForeverLoop(idxtasksCHAL_ENTER_CRITICAL_SECTION(intState):tasksEventsidx|=events;HAL_EIT_CRITICAL_SECTION(intState);elseZSEGintmain(ifuint

12、16events;halIntState_tintState;osal_init_system();main()osal_start_system();for(;)/pp_ProcessEvent(uinttask_id,/Deviceisnolongerinthenetwork=(devStates_t)(MSGpkDEV_ZB_COORD)B_ROTER)D】ND_DEVICE)HAL_ENTER_CRITICAL_SECTION(intState);events=tasksEventsidx;tasksEventsidx;HAL_EIT_CRITICAL_SECTION(jnState)

13、;events=(tasksArridx)(idx,events);ZDO_STATE_CHANGE:SerialApp_NwkStateif(SerialApp_NwkState|(SerialApp_NwkState|(SerialApp_NwkStateif(devStartModeLME_JoinRifquest(ZDO_NetworkDiscoveryCfm_t*)msgPtr)extended/PANID,BILD_INT16(ZDO_NetworkDiscoveryCfm_t*)msgPtr)panIdLSB,(ZDO_NetworkDiscoveryCfm_t*)msgPtr)

14、panIdMSB),(ZDO_NetworkDiscoveryCfm_t*)msgPtr)logicalChannel,ZDO_Config_Node_DescriptorCapailityFlags)=ZSuccess)ZDApp_NetworkInit(uintl6)(NWK_START_DELA(uint16)(osal_rand()ETENDED_JOINING_RANDOM_MASK);MODE_JOIN)3.4.1.1.6NLME_JoinRequest()-NLME_JoinRequest()ZDO_JoinConfirmCB()ZDO_JoinConfirmCB(uint16P

15、anld,ZStatus_tStatus)一-ZDApp_SendMsg(ZDAppTaskMDO_NWK_JOIN_IND,sieof(osal_event_hdr_t),(yte*)NLL);hdrstatus);DE_ON);LEDZDApp_ProcessOSALMsg(osal_event_hdr_t*msgPtr)-voidosal_start_system(voidpT)askEventHandlerFntasksArrmacEventLoop,nwk_event_loop,Hal_ProcessEvent,ifdefined(MT_TASK)MT_ProcessEvent,endifnt)APS_event_loop,ZDApp_event_loop,SerialApp_ProcessEventvoidosalInitTasks(uinttaskIDvoid)tasksEventsosal_memset(tasksEvents,(uint16*)osal_mem_alloc(si

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论