ZigBee協(xié)議棧初始化網(wǎng)絡(luò)啟動流程_第1頁
ZigBee協(xié)議棧初始化網(wǎng)絡(luò)啟動流程_第2頁
ZigBee協(xié)議棧初始化網(wǎng)絡(luò)啟動流程_第3頁
ZigBee協(xié)議棧初始化網(wǎng)絡(luò)啟動流程_第4頁
ZigBee協(xié)議棧初始化網(wǎng)絡(luò)啟動流程_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

ZigBee協(xié)議棧初始化網(wǎng)絡(luò)啟動流程),基本流程:main()—>osal_init_system()->os{HalDriverInit();////DeterminetheextendedafInit();#endif//Initializetheoperzmain_dev_info();#ifdefLCD_SUPPORTED#endif#ifdefWDT_IN_PM1/*IfWDTisused,thisWatchDogEnable(WDTIMX);{tasksEvents=(uint16*)osal_mem_alloc(sizeof(uint16)*tasksCnt);nwk_init(taskID++);Hal_Init(taskID++);//硬件抽象層初始化#endifAPS_Init(taskID++);ZDApp_Init(taskID++);//判斷如果協(xié)調(diào)器節(jié)點建立網(wǎng)絡(luò)、如果終端節(jié)點加}1.3初始化ZigBee協(xié)議棧網(wǎng)絡(luò){ZDAppTaskID=task_idZDAppTaskID=task_id;//InitializetheZDOglobaldeviceshortadZDAppNwkAddr.addrMode=Addr16Bit;ZDAppNwkAddr.addr.shortAddr=INVA(void)NLME_GetExtAddrZDAppCheckForHoldKey();ZDO_Init();//通過判斷預(yù)編譯來開啟一些函數(shù)功能//RegistertheendpointdescriptionwiththeafRegister((endPoint#ifdefined(ZDO_USERDESC_RESPONSE)ZDApp_InitUserDesc();#endif//ZDO_USERDESC_RESPONSE//Startthedevice?{);}{}ZDApp_RegisterCBs();網(wǎng)絡(luò)狀態(tài)。如果應(yīng)用層強制進(jìn)行新的join操作,它應(yīng)該在調(diào)用這個函數(shù)之前設(shè)置ZCD_STARTOPT_DEFAULT_NETWORK_STATE位。可以調(diào)用uint8ZDOInitDevice(uint16startDel{uint8networkStateNV=ZDO_INITDEV_NEW_NETW{}ZDConfig_InitDescriptors;_NIB。CapabilityInfo=ZDO_Config_Node_DZDApp_LeaveCtrlStartup(&devState,&startDelay);{//設(shè)置啟動選項zgWriteStartupOptions(ZG_STARTUP_ZCD_STARTOPT_DEFAULT_NETWORK_STATE);//通知應(yīng)用層觸發(fā)事件osal_set_event(ZDAppTaskID,ZDO_STATE_CHANGE_EVT}#ifdefined(NV_RESTORE)networkStateNV=ZDO_INITDEV_NEW_NETWORK_STATE;{//通過讀取ZCD_NV_STARTUP_OPTION選項決定是否進(jìn)行網(wǎng)絡(luò)恢復(fù)networkStateNV=ZD}ZDO_INITDEV_RESTORED_NETWORK_STATE){networkStateNV=ZDApp_RestoreNetworkState();}{//WipeoutthenetworkstateinNV}#endif{ZDAppDetermineDeviceType;//根據(jù)選項設(shè)置extendedDelay=(uint16)((NW}//Initializethesecurity//觸發(fā)啟動網(wǎng)絡(luò)//TriggerthenetworZDApp_NetworkInit(extendedDelay);//setbroadcastaddressmasktosupportbroadcastfiltering用于處理合法NLME_SetBroadcastFilter(ZDO_Config_Node_Descriptor.CapabilityFlags}進(jìn)入ZDApp_NetworkInit()函數(shù),等待一段時間在執(zhí)行ZDO_voidZDApp_NetworkInit(uint16delay){if(delay){//Waitawhilebeforestartingthedeviceosal_start_timerEx(ZDAppTaskID,ZDO_NETWORK_//發(fā)送ZDO_NETWORK_INIT(網(wǎng)絡(luò)初始化)消息}{osal_set_event(ZDAppTaskID,ZDO_NETWORK_INIT);}}ZDApp_event_loop()函數(shù)是回調(diào)函數(shù),循環(huán)處理主事件。設(shè)備邏輯類型,啟動模式,信{{{ZDApp_ProcessOSALMsg((osal_}return(events^SYS_EV}{//設(shè)備邏輯類型,啟動模式,信標(biāo)時間,超幀長度,接著轉(zhuǎn)到去啟動設(shè)備,轉(zhuǎn)到ZDO_StartDevice()ZDO_StartDeviceuint8)ZDO_Config_Node_Descriptor。}{if(events&ZDO_NETWORK_START){}{{osal_pwrmgr_device(P}{}}}{ZDO_UpdateNwkStatus(devState);{osal_start_timerEx(N}return(events^ZDO_ST}{return(events^ZDO_COMM}if(events&ZDO_NWK_UPDATE_NV){ZDApp_SaveNetworkStateEvt();return(events^ZDO_NWK_UPDATE_}if(events&ZDO_DEVICE_RESET){}{return(ZDApp_ProcessSecEvent(task_}{}}voidZDO_StartDevice(bytelogicalType,devStartModesbeaconOrder,bytesuperframeOrder){ZStatus_tret;#ifdefined(ZIGBEE_FREQ_AGILITY)#ifdefined(ZIGBEE_COMMISSIONING)#endif{{////向網(wǎng)絡(luò)層發(fā)送網(wǎng)絡(luò)形成請求。當(dāng)網(wǎng)絡(luò)層執(zhí)行NLME_NetworkFormationRequest()建立網(wǎng)絡(luò)后,//接著轉(zhuǎn)去執(zhí)行ZDApp層的ZDO_NetworkFormation()函數(shù)zgApsUseExtendedPANID,zgDefaultChannelList,zgDefaultStartingScanDuration,beaconOrder,superframeOrder,false);}elseif(startMode==MODE_RESUME){//Juststartthecoordinator}{}}{||{ZDOManagedScan_Next;zgDefaultStartingScanDuration);#ifdefined(ZIGBEE_FREQ_AGILITY)if(!(ZDO_Config_Node_Descriptor。CapabilityFlags&CAPINFO_RCVR_ON_IDLE)&&{//shouldbecompletedusinzgDefaultChannelList=MAX_CHAN}#endif//ZIGBEE_FREQ_AGILITY#ifdefined(ZIGBEE_COMMISSIONING){//WhenApsUseExtendedPanIDiscommissionedtoanon//applicationspecificmeans,thedeviceshallconductanzgDefaultChannelList=MAX_CHANN}#endif//ZIGBEE_COMMISSIONING}elseif(startMode==MODE_RESUME){{ZMacScanCnf_tscanCnf;scanCnf.hdr。StatusscanCnf。ScanType=ZMAC_ORPHAN_SCscanCnf。UnscannedChannelnwk_ScanJoiningOrphan(&}{ret=NLME_OrphanJoinRequest(zgDefaultStartingScanDuration);}}{#e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論