自动启动模式建立网络

自动启动模式建立网络

ID:12749755

大小:92.00 KB

页数:8页

时间:2018-07-18

自动启动模式建立网络_第1页
自动启动模式建立网络_第2页
自动启动模式建立网络_第3页
自动启动模式建立网络_第4页
自动启动模式建立网络_第5页
资源描述:

《自动启动模式建立网络》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、建立zigbee网络本工程是利用IAREmbeddedWorkbenchIDE平台在Z_Stack协议栈所给实验工程例子SimpleApp基础上做的。准备工作:为了能够正确的建立zigbee网络必须确保:有正确的设备作为coordinator;终端设备被正确配置。这就需要对设备进行合理的配置,配置位置如下图所示。1.在f8wConfig.cfg文件中对设备“网络参数”进行合理的配置,本工程采用了默认的配置方式;-DDEFAULT_CHANLIST=0x00000800//11-0x0B-DZDAPP_CONFIG_PAN_ID=0xFFFF//

2、PANID配置2.f8wCoord.cfg;f8wEndev.cfg;f8wRouter.cfg文件中对设备的“细节参数”进行设置,根据设备在网络中的角色不同配置参数可以不同;3.配置ZCD_NV_LOGICAL_TYPE。网络建立过程:Z_Stack中程序是都是首先从Zmain.c文件中的主函数开始的,当控制节点上电以后经一系列的初始化激活osal_init_system(void)函数,进入操作系统初始化,通过osalInitTasks()初始化系统事件函数进入ZDApp_Init(uint8task_id)应用层初始化函数,最终在sapi

3、层设置进入事件。由事件处理函数对事件依依处理。建立网路有两种方式:自动启动模式和非自动启动模式。在ZDApp.c文件中,有如下定义:#ifdefined(HOLD_AUTO_START)devStates_tdevState=DEV_HOLD;//初始化-不会自动启动#elsedevStates_tdevState=DEV_INIT;//初始化-没有连接到任何东西#endif非自动启动模式即需要定义HOLD_AUTO_START编译选项,采用手动按钮来启动的方式;自动启动模式则是没用定义编辑选项所进行的程序启动模式。本文采用的是自动启动模式,下

4、面本系统的网络建立进行简介。协调器建立网络基于Zigbee网络的项目程序都是从Zmain.c主函数开始,在网络建立的过程中主要是经一定的硬件初始化后调用osal.c文件中的//Initializetheoperatingsystem(初始化操作系统)osal_init_system();进入操作系统初始化//Initializethesystemtasks.初始化系统事件OSAL_Yeelink.c文件中osalInitTasks();voidZDApp_Init(uint8task_id)应用层初始化函数(在ZDAPP.c文件中)设备启动有两

5、种方式:自动启动和非自动启动(用户进行了HOLD_AUTO_START宏定义或者按下了SW_1键使得devState等于DEV_HOLD)。进行到这里,系统将根据用户配置自动进行启动模式判断。不管哪种启动方式,都在以下代码中得到体现:voidZDApp_Init(bytetask_id){uint8capabilities;//SavethetaskIDZDAppTaskID=task_id;//InitializetheZDOglobaldeviceshortaddressstorageZDAppNwkAddr.addrMode=Addr16

6、Bit;ZDAppNwkAddr.addr.shortAddr=INVALID_NODE_ADDR;(void)NLME_GetExtAddr();//LoadthesaveExtAddrpointer.加载IEEE地址//Checkformanual"HoldAutoStart"//打开电源时,检测到有手工设置SW_1则会设置devState=DEV_HOLD,从而不进行网络初始化ZDAppCheckForHoldKey();//InitializeZDOitemsandsetupthedevice-typeofdevicetocreate.

7、ZDO_Init();//初始化ZDO条目,并设置设备的启动方式是协调器,还是别的afRegister((endPointDesc_t*)&ZDApp_epDesc);#ifdefined(ZDO_USERDESC_RESPONSE)ZDApp_InitUserDesc();#endifNLME_GetRequest(nwkCapabilityInfo,0,&capabilities);NLME_SetBroadcastFilter(capabilities);if(devState!=DEV_HOLD){ZDOInitDevice(0);//

8、如本工程没有定义HOLD_AUTO_START则成功执行设备初始化函数}else{//如进行了宏定义,则等待延时或外部事件启动网络,并且LED4灯闪烁

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

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

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