Z-Stack中SimpleApp控制节点建立网络的过程

Z-Stack中SimpleApp控制节点建立网络的过程

ID:38104358

大小:98.45 KB

页数:4页

时间:2019-06-06

Z-Stack中SimpleApp控制节点建立网络的过程_第1页
Z-Stack中SimpleApp控制节点建立网络的过程_第2页
Z-Stack中SimpleApp控制节点建立网络的过程_第3页
Z-Stack中SimpleApp控制节点建立网络的过程_第4页
资源描述:

《Z-Stack中SimpleApp控制节点建立网络的过程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Z-Stack中SimpleApp控制节点建立网络的过程(2010-12-0713:51)分类:ZigBee技术学习当控制节点上电后,首先经历一系列的初始化工作,最终在sapi层设置进入事件,然后通过任务事件处理函数对该事件进行处理,当读取NV的启动模式选项时,zb_ReadConfiguration(ZCD_NV_STARTUP_OPTION,sizeof(uint8),&startOptions);在编译选项中进行了设备,非自动启动模式,判断为非自动启动,因此看到控制节点的LED_2闪烁,HalLedBlink(HAL_LED_2,0

2、,50,500);操作系统等待其他事件发生。当按下按键S1后,由于在sapi层注册了按键事件,因此会发送KEY_CHANGE消息到sapi层,当收到KEY_CHANGE消息后,sapi层的任务事件处理函数调用:zb_HandleKeys(((keyChange_t*)pMsg)->state,((keyChange_t*)pMsg)->keys);然后将设备逻辑类型(协调器)写入到NV,并将自动启动模式写入到NV:zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE,sizeof(uint8),&logica

3、lType);zb_WriteConfiguration(ZCD_NV_STARTUP_OPTION,sizeof(uint8),&startOptions);最后重新启动:zb_SystemReset();重新启动后,依然进入通过任务事件处理函数对进入事件进行处理,也就是ZB_ENTRY_EVENT当读取NV的启动模式选项时,判断为自动启动,然后调用:zb_StartRequest();紧接着调用ZDO层的初始化设备函数:ZDOInitDevice(zgStartDelay);在该函数中设置了NV网络状态,并修改了当前设备状态:netw

4、orkStateNV=ZDO_INITDEV_NEW_NETWORK_STATE;devState=DEV_INIT;最终触发网络初始化函数:ZDApp_NetworkInit(extendedDelay);设置网络初始化事件:osal_set_event(ZDAppTaskID,ZDO_NETWORK_INIT);ZDO层的任务事件处理函数对网络初始化事件进行处理,即启动该设备:ZDO_StartDevice((uint8)ZDO_Config_Node_Descriptor.LogicalType,devStartMode,DEFAU

5、LT_BEACON_ORDER,DEFAULT_SUPERFRAME_ORDER);此时将改变设备状态为协调器启动:devState=DEV_COORD_STARTING;并根据设备逻辑类型和启动模式调用NWK层网络形成请求函数:NLME_NetworkFormationRequest(zgConfigPANID,zgApsUseExtendedPANID,zgDefaultChannelList,zgDefaultStartingScanDuration,beaconOrder,superframeOrder,false);其中,个域网

6、ID号和默认通道号在f8wConfig.Cfg中定义:-DZDAPP_CONFIG_PAN_ID=0xFFFF//PAN_ID-DDEFAULT_CHANLIST=0x00000800//11-0x0B信道号当NWK层通过调用MAC和PHY层相关功能函数执行一些列网络形成动作后,NWK层将接收到网络形成反馈,这里的很多网络层MAC层的函数都不是开源的,可能会看不到源代码。即:ZDO_NetworkFormationConfirmCB()设置网络启动事件:osal_set_event(ZDAppTaskID,ZDO_NETWORK_STAR

7、T);ZDO层任务事件处理函数将执行网络启动事件处理:ZDApp_NetworkStartEvt();此时将改变设备状态为协调器,并且保证电源供电:devState=DEV_ZB_COORD;osal_pwrmgr_device(PWRMGR_ALWAYS_ON);而且设置ZDO状态改变事件:osal_set_event(ZDAppTaskID,ZDO_STATE_CHANGE_EVT);ZDO层任务事件处理函数将执行ZDO更新网络状态事件处理:ZDO_UpdateNwkStatus(devState);此时搜索端点列表,寻找曾经在sap

8、i层注册过的端点号,并且将ZDO状态改变消息发送给这些端点:zdoSendStateChangeMsg(state,*(pItem->epDesc->task_id));而且确定控制节点(此时

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。