ZigBee无线通信网络软件毕业设计.docx

上传人:小飞机 文档编号:3170419 上传时间:2023-03-11 格式:DOCX 页数:105 大小:81.53KB
返回 下载 相关 举报
ZigBee无线通信网络软件毕业设计.docx_第1页
第1页 / 共105页
ZigBee无线通信网络软件毕业设计.docx_第2页
第2页 / 共105页
ZigBee无线通信网络软件毕业设计.docx_第3页
第3页 / 共105页
ZigBee无线通信网络软件毕业设计.docx_第4页
第4页 / 共105页
ZigBee无线通信网络软件毕业设计.docx_第5页
第5页 / 共105页
亲,该文档总共105页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ZigBee无线通信网络软件毕业设计.docx》由会员分享,可在线阅读,更多相关《ZigBee无线通信网络软件毕业设计.docx(105页珍藏版)》请在三一办公上搜索。

1、ZigBee无线通信网络软件毕业设计目 录 1 前言. 1 2 系统总体方案设计. 1 2.1 系统结构示意图. 1 2.2系统总体说明. 3 3 系统硬件电路设计. 4 3.1 ZigBee无线通信网络 . 4 3.1.1无线节点模块. 4 3.1.2光照传感器模块. 错误!未定义书签。 3.1.3控光电路模块. 错误!未定义书签。 3.2网关. 10 3.2.1 网络接口模块. 11 3.2.2 通信接口模块. 11 4 系统软件设计. 12 4.1 ZigBee无线通信网络软件设计 . 14 4.1.1 协调器模块软件设计. 14 4.1.2 终端节点模块软件设计. 22 4.2 网关软

2、件设计. 53 4.2.1 ARM 驱动程序开发 . 53 4.2.2 ARM应用程序开发 . 58 4.3 远程监控中心软件设计. 67 4.3.1 软件基本介绍与模块划分. 67 4.3.2 窗体设计与实现. 68 4.3.3 模块之间数据的相互交换与通信. 74 5 调试. 77 5.1 无线通信网络组网测试. 77 5.2 网关测试. 78 5.3远程监控中心测试. 82 1 前言 随着人们生活水平的提高,人们对照明控制的要求越来越高,如营造舒适的照明环境、节约电能、提高光源寿命等。目前,传统的照明控制系统实现方案有以下缺点: 基于有线方案,布线麻烦,增减设备需要重新布线,而且影响美观

3、。 标准不统一,照明控制系统中的控制器间进行通信没有规范的通信协议,通信命令帧编码混乱。 只能实现就近控制,不能远程同步到网络。 为了满足现代社会对高效、自动化和节能照明技术的需求,本项目设计了一种基于ZigBee和ARM的网络智能照明节能系统,实现了照明系统远程控制、智能化调节,达到了节能、节电和提供人性化管理的目标。 创新点有以下几点: 照明系统的架构采用两级式的结构:用以太网来连接子网和远程监控中心,在子网中用ZigBee进行通讯、命令的传递和状态信息的回馈。一方面充分利用了现有的网络组建远距离通信,另一方面利用低成本、低功耗的ZigBee技术进行快捷的无线组网来替代传统的布线组网,各节

4、点设备之间是基于统一的协议标准的,利于网络的扩展。 网关采用32位ARM高性能微控制器S3C6410X,取代了传统的PC机做网关,大大节约了成本、减少了体积、降低了功耗。在网关里移植了Linux内核,编写了硬件驱动程序和应用程序,并利用QT设计了监测中心的图形界面。 所有接入网络的照明灯能根据周边环境的可见光强度进行智能化的亮度调节,达到最大限度的自动节能。同时,在远程服务器上给用户提供了美观和便捷的交互界面,用户可查询节点的组网信息和各节点的光感强度,并可对照明灯的亮度进行自动和手动两种控制方式。克服了ZigBee网络只能在小范围内进行通信的弊端,使得用户能够远程对现场实施监控。 2 系统总

5、体方案设计 2.1 系统结构示意图 系统由3个部分组成:ZigBee无线通信网络、网关及远程监控中心,其结构示意图和实物图分别如图1、2所示。 1 无线传感器节点光照传感器无线传感器节点湿度传感器以太网UART协调器无线传感器节点CO2传感器网关远程监控中心无线传感器节点LED台灯ZigBee无线通信网络无线传感器节点无线传感器节点水泵卷帘图1 系统总体结构示意图 图2 系统总体实物图 2 2.2系统总体说明 使用该系统前,首先需要组建一个无线传感网络。将不同的传感器节点和控制节点布置到环境中的不同位置,传感节点负责采集环境中的光照、湿度、二氧化碳等数据,控制节点责负责LED台灯的亮度调节,水

6、泵的开关、卷帘的开合的工作。使用ZigBee组网技术将处于不同位置的节点组建一个无线传感器网络,实现传感数据的汇集和控制数据的分发。Zigbee网络通过协调器与网关进行连接,在网关上部署有本地监控程序,可以对Zigbee网络中的环境数据的查询和控制。同时网关具有数据转化功能,通过以太网连接到远程监控中心,可以实现远程监控中心与Zigbee网络中的节点进行通信,从而完成远程监控功能。 远程监控中心 完成接收网关数据和发送指令,实现可视化、形象化人机界面,通过人机交互界面,使用户能够轻易的使用该系统。远程监控中心能够查询每个传感节点的传感信息,并能通过控制节点对系统管理的相关设备进行控制。 网关

7、网关起着纽带的作用,连接Zigbee无线传感网络与Internet网络,在网关内部实现将Zigbee数据包转换成Internet的IP数据包,实现两种网络协议之间的转换,本系统采用嵌入式ARM系统构建网关。Zigbee协调器和ARM处理器之间是用串口进行有线通信的,通信方式是利用基于串口的通信协议;远程监控中心和ARM处理器之间是用以太网进行有线通信的,通信方式是利用基于TCP/IP的通信协议。网关还具有本地监控功能,即在本地处理处理Zigbee协调器的数据包,并发送控制命令到协调器。网关监控程序提供了可视化的图形界面,可以简单快捷的实现人机交互。 ZigBee无线通信网络 Zigbee无线通

8、信网络中的几点包含了两种类型的节点,分别是传感节点和控制节点。传感节点与相应的控制节点可以实现绑定,绑定成功的节点,可以实现一对一控制,即传感节点采集到的传感数据通过一定算法计算得到控制量,并将其发送至被绑定的控制节点,由控制节点对外界控制设备进行控制,比如光照传感器采集到了光照强度值,如果其绑定了LED台灯节点,则该光照强度可以控制LED台灯节点灯的亮度。除了网络节点之间的内部控制,节点还需要与网关进行数据交互。Zigbee节点是通过协调器与网关进行通信,Zigbee节点通过无线将数据发送给协调器,协调器接收到无线数据后,通过串口转发至网关,同样网3 关也可以通过串口将数据下发至Zigbee

9、节点。 3 系统硬件电路设计 3.1 ZigBee无线通信网络 由无线节点模块CC2530、光照传感模块、控光电路模块构成了Zigbee的终端节点。 3.1.1无线节点模块 各个Zigbee节点通过传感器实现数据的采集,通过PWM波对灯的亮度进行智能控制,Zigbee终端节点与Zigbee协调器通过自组织组成星型网络,实现采集数据汇总和下发。终端节点和协调器节点均采用TI公司生产的第二代Zigbee芯片CC2530,CC2530的硬件设计电路图如图4所示: 图4 CC2530硬件电路图 本系统使用无线龙公司生产的Zigbee实验板,实物图如如图5所示: 4 图5 Zigbee开发板实物图 3.

10、1.2光照信息监控硬件 光照信息的监控包含了两部分组成,其中带有光照传感器的节点为光照传感节点,带有LED台灯的控制节点为LED台灯节点。光照传感节点与LED台灯节点可以实现绑定,实现灯的亮度随着光线强度的变化而调节,环境光越强,LED台灯越暗;环境光越弱,LED台灯越亮。这样灯光始终处于最佳亮度,提高灯光设计的智能化。 该系统采用高速、可编程芯片TSL2561作为光强传感器,对光照强度进行采集。TSL2561是TAOS公司推出的第二代光强数字转换芯片,具有高速、低功耗、宽量程、可编程灵活配置等优点。TSL2561内部连接一个光敏二极管和一个红外响应光敏二极管。这个集成电路具有提供20位动态范

11、围内近似光响应的能力。两个集成的积分式A/D转换器,可将光敏电流转换成一个数字输出,并存入芯片内部通道0和通道1各自的寄存器中。数字输出表示测量每一个通道的光强,可以是微处理器的输入。TSL2561可直接通过I2C总线协议由微控制器访问,微控制器则通过对其内部的16个寄存器的读写来实现对TSL2561的控制。其内部结构如图6所示。 通道0VDD通道1ADDRSEL地址选择INT中断输出SDASCL命令字符寄存器ADC寄存器IIC接口GND 图6 TSL2561内部结构图 5 TSL2561拥有一个标准的IIC接口,与单片进行通信,节点核心芯片CC2530可以采用模拟IIC的方式对TSL2561

12、进行数据的写入与读取,用P2.1做为SCL时钟线,P2.2作为SDA数据线,ZigBee节点与TSL2561的硬件连接图如图7所示: INTTSL2561GNDGNDVCCR1P2.1P2.2R2SCLSDAVCCVCCVCCADDR SELCC2530 图7 TSL2561与ZigBee节点硬件连接图 光照传感器实物图与PCB图如图8、9所示: 图8 光照传感器实物图 图9 光照传感器PCB图 LED台灯节点带有一个LED台灯。 LED台灯使由多个LED并联构成,工作所需电流相对较大,如果直接使用单片机的IO进行控制是不足以驱动的,故6 需要设计一个放大电路驱动LED台灯。该系统采用两个三级

13、管构成一个两级放大电路作为驱动。其原理图如图10所示。为了美观,我们重新组装了LED台灯,用电池供电,引出了两根线,用来接收PWM信号。外观如图11所示。 图11 LED台灯实物图 接LED灯P1.71KS9014图10 控光电路原理图 3.1.3湿度信息监控硬件 湿度信息的监控由湿度采集节点和水泵控制节点承担,湿度节点与水泵节点可以进行绑定,湿度采集节点负责检测环境中的湿度情况,并与设定的湿度阈值进行比较,判断水泵是否需要喷水,将对水泵的控制信息发送至已绑定的水泵节点。 该系统使用的湿度传感器的型号为SHT10。SHT10 属于Sensirion温湿度传感器家族中的贴片封装系列。传感器将传感

14、元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。传感器采用专利的CMOSens技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14 位的A/D 转换器以及串行接口电路实现无缝连接。因此,该产品具有品质卓越、响应迅速、7 抗干扰能力强、性价比高等优点。 每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP 内存中,用于内部的信号校准。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。SHT10 提供表贴LCC 封装,可以使用标准回流焊接。 SHT10

15、与CC2530通过二线串行通信接口进行连接,通过使用CC2530的普通IO口来模拟通信时序,其中时钟线为P1.5,数据线为P1.4。其中CC2530与湿度传感器的硬件连接图如下: PCB天线液晶键盘CC2530湿度传感器电源及外围电路SHT10与CC2530硬件连接图 水泵的控制是通过继电器完成的,通过继电器的开合来控制水泵的工作,当继电器闭合式,水泵开始喷水,当继电器断开时,水泵停止喷水。继电器与CC2530连接的原理图如下: 继电器GNDGNDP1.4CC2530VCCVCC有图可知使用P1.4用来控制继电器,通过对P1.4写1或0即可控制继电器的开合了,通过继电器可以控制外部水泵,其示意

16、图如下: 8 PCB天线液晶键盘CC2530继电器水泵电源及外围电路3.1.4二氧化碳信息监控硬件 二氧化碳的监控同样包含了两个部分,分别是二氧化碳采集节点和卷帘控制节点,二氧化碳节点可以与相应的卷帘节点进行绑定,绑定成功后,二氧化碳传感节点可以根据采集到的二氧化碳浓度数据对应的卷帘节点进行控制。当二氧化碳浓度超过设定的阈值时,将卷帘打开,当二氧化碳浓度低于设定的阈值时,将卷帘关闭。 使用的二氧化碳传感器为MG811,该传感器采用固体电解质电池原理。 当传感器置于CO2气氛中时,将发生以下电极反应: 负极:2Li + + CO2 + 1/2O2 + 2e - = Li2CO3 正极:2Na+

17、+ 1/2O2 + 2e- = Na2O 总电极反应:Li2CO3 + 2Na + = Na2O + 2Li + + CO2 传感器敏感电极与参考电极间的电势差符合能斯特方程: EMF = Ec - (R x T) / (2F) ln (P(CO2) 上式中:P(CO2)CO2 分压Ec常量R气体常量 T绝对温度F法拉第常量 元件加热电压由外电路提供,当其表面温度足够高时,元件相当于一个电池,其两端会输出一电压信号,其值与能斯特方程符合得较好。元件测量时放大器的阻抗须在1001000G之间,其测试电流应控制在1pA 以下。 其中二氧化碳模块与CC2530连接的示意图如下: 9 PCB天线液晶键

18、盘CC2530CO2浓度传感器电源及外围电路卷帘的控制也是通过继电器完成的,继电器控制卷帘电机的工作通断。其连接图如下: PCB天线液晶键盘CC2530继电器卷帘电源及外围电路3.2网关 本系统采用三星S3C6410芯片网关主控芯片,ZigBee网络中的数据可以通过串口传给网关,然后网关将数据通过以太网再传给监控中心进行显示。而监控中心的控制命令可以通过以太网发送至网关,网关再通过串口将有效数据分发至Zigbee网络中的相应节点。网关硬件结构图如图12所示,主要包括中央处理器、存储系统、人机接口、网络模块、通信模块几个部分。实物图如图13所示。 电源模块JTAG调试接口通信单元以太网模块DM9

19、000AS3C6410CC2530 SDRAM存储单元NAND FlashLCD键盘人机界面单元10 图12 网关硬件结构图 图13网关实物图 3.2.1 网络接口模块 网关与远程监控中心通过以太网通信,网关的网络接口选择Linux系统内核中已有良好支持的网络接口芯片DM9000A,DM9000A是一款集成度高、功能强大、成本低廉的快速以太网控制器,在芯片内集成了10/100M物理层接口,原理图如图14所示。 XmODATA0-15XmOCSn1XnRESETS3C6410XmOADDR2SD0-15CSPWRSTCMDIORIOWINTDM9000ARJ45XmOOEn/nTORD_CFXm

20、OWEn/nTOWR_CFXEINT7图14 DM9000A电路原理图 3.2.2 通信接口模块 网关与ZigBee无线通信网络的协调器之间采用串口通信,由于S3C6410和CC2530的串口都是TTL电平,故两者之间可以直连,具体的连接电路如图15所示。 11 RXDS3C6410TXDTXD(P03)CC2530RXD(P02)图15 S3C6410和CC2530连接电路图 4 系统软件设计 硬件电路是整个无线传感器网络网关系统的支柱,而软件是整个网关系统的思想,控制着整个网关系统的运行。该系统软件开发分为三部分,分别为Zigbee无线通信网络软件设计,网关软件设计,以及远程监控中心软件设

21、计。系统软件结构图如图16所示: 网络化智能照明节能系统Zigbee无线通信网络网关远程控制中心ZigBee控制节点ZigBee传感节点ZigBee协调器外设控制无线数据传输传感器采集无线数据传输组建无线网络串口数据传输无线数据传输QT图形界面显示串口数据传输网络数据传输远程控制LED远程查询光强网络拓扑图显示图16 系统软件结构图 在具体介绍软件实现方法前,特别需要对数据通信帧格式进行一些说明。对于主要依赖数据通信的软件结构,要实现数据的监控,必须定义统一的数据通信格式,该系统的设计就定义了自己的通信协议,该协议应用于Zigbee节点与Zigbee协调器,协调器与网关,网关与远程监控中心的数

22、据传递。本系统协议帧的具体组成如表1所示: 表1 协议帧结构图 帧内容 字节数 & 1 命令 3 IEEE地址 8 网络地址 2 用户数据 16 校验位 * 1 1 一个命令帧包含32个字节,每个命令帧以&作为帧头,以*作为帧尾,表示一帧的起始和结束。紧跟帧头后面的3个字节为命令字,命令字包含了在该系统中使用的所命令,其具体命令如下: 12 “JON”:加入命令,当有新的节点加入到网络中,将会主动的向协调器发送该命令,报告其设备信息,这些信息包含了网络地址,物理地址,父节点网络地址,父节点物理地址,设备类型和传感器类型。 “RNS”:用于读取Zigbee网络的链路状态。在本系统中将读取节点与协

23、调之间的无线信号强度,通过该信号强度值,可以检测是否有节点已经离开网络。 “ERL”:用于读取光照传感节点的光照强度数据。光照传感节点接收到该命令后,通过读取光照传感器的光照强度值来获取环境光强,并发送同样的命令给协调器,该反馈命令将会在用户数据区保存了采集到的光照信息。从而完成光照的读取功能。 “ERH”:用于读取湿度传感节点的湿度数据。同光照节点类似,收到该命令的节点,会通过读取湿度传感器来获取环境湿度。然后将湿度数据写到数据帧的用户数据区,并将其反馈给协调器。 “ERC”:用于读取二氧化碳浓度信号。同样,收到该命令的二氧化碳传感节点,通过读取二氧化碳浓度传感器来获取环境中二氧化碳的浓度值

24、。让后将二氧化碳浓度数据反馈至协调器。 “ECL”:用于控制LED台灯亮度。对于控制命令并不会有对应的反馈命令,而是直接执行命令对应的动作,该命令对应的动作就是设置PWM波占空比,而PWM的占空比则控制了LED台灯的亮度值。 “ECP”:用来控制水泵的开关。在此使用继电器替代了水泵的动作,控制水泵喷水是继电器闭合,控制水泵关闭时继电器断开。 “ECC”:用来控制卷帘的开合。同水泵,使用继电器替代了卷帘的动作。 “ESL”:设置光强阈值。该阈值由光传感节点保存,用来控制与其绑定的LED台灯节点的亮度。该值为期待的环境光强值,当光照节点测试到光强高于该值将设置LED台灯变亮,反之设置LED台灯变暗

25、。 “ESH”:设置湿度阈值。该阈值由湿度传感节点保存,用来控制与其绑定的水泵节点的工作状态。当湿度节点测试到湿度值高于该值时将关闭水泵,反之将水泵打开。 “ESC”:设置二氧化碳阈值。该阈值由二氧化碳传感节点保存,用来控制与其绑定的卷帘节点的工作状态。当二氧化碳节点测试到二氧化碳浓度值高于该值时将代开卷帘,反之将卷帘关闭。 从命令帧中第四个字节开始为目标Zigbee节点的IEEE地址和网络地址,用13 于向节点发送无线数据提供目的地址。 用户数据区包含16个字节,该数据区由用户自己定义,可以包含传感器采集的传感信息,或设置对控制设备的控制量。 倒数第二位为校验位。为确保数据传输的可靠性,本系

26、统采用了和校验的方式,从命令字开始到用户数据区结束,对其进行求和操作,将和值保存到校验位当中。接收到该命令帧的节点,以此同样的算法得到校验位的值,对比接收到的校验位,如果不等则视为错误帧,予以舍弃。 4.1 ZigBee无线通信网络软件设计 本系统无线通信网络的设计采用了Zigbee技术,通过对Zigbee协议栈进行二次开发实现无线通信网络的组建工作。针对Zigbee的协议栈有很多,本系统采用的是TI提供的Z-Stack 2007协议栈。通过对协议栈的应用层进行设计,可以实现对光照信息的采用,和LED台灯亮度的控制。Z-Stack的开发环境采用的是IAR Embedded Workbench

27、for MCS-51 7.50A,用于Z-Stack的编译、调试和程序的下载。 4.1.1 协调器模块软件设计 ZigBee协调程序设计主要包括组建一个无线传感网络,转发网关和ZigBee节点间的数据,其工作流程图如图17所示。 (1) 组建无线网络 协调的功能是选择一个信道和一个网络ID(也称之为PAN ID,即Personal Area Network ID),随后启动整个网络。信道和网络ID的定义在z-stack工程目录下的Tools目录中的f8wConfig.cfg文件里,可以通过烧写程序固化到CC2530当中。 其定义代码如下: -DDEFAULT_CHANLIST=0x000008

28、00 / 11 - 0x0B -DZDAPP_CONFIG_PAN_ID=0xFFFF 为了考虑到系统的可扩展性,本系统通过网关设置协调器启动的信道和PANID,从而可以实现不同网络的组建工作而不是通过修改程序。 协调器主要涉及网络的配置和启动,作为Z-Stack中定义的一种设备类型,在启动过程需要遵循协议栈的一般启动过程。首先对硬件进行初始化,然后初始化操作系统,进而对协议栈各层任务进行初始化,最后进入事件循环。而涉及协调器自身功能的启动过程则伴随在各种初始化以及事件循环当中。 14 开始硬件初始化Zigbee协议栈初始化建立网络节点申请加入?Y建立连接N加入成功?Y监听无线信号N监听串口信

29、息N有无数据Y发送到网关有无数据Y发送到节点N图17 协调器软件设计流程图 协调器组建网络的过程如下:首先通过osalInitTasks函数初始化协议栈各层任务,在ZDO层的任务初始化函数ZDApp_Init中,定义了自动启动相关代码,通过取消HOLD_AUTO_START宏定义,来使能自动启动,然后调用ZDO初始化设备函数ZDOInitDevice来启动一个初始化过程,为组建网络做好前期准备。在ZDOInitDevice函数中,首先对设备类型进行确认,最后调用ZDApp_NetworkInit函数来对网络进行初始化,通过事件循环方式,在ZDO层设置了ZDO网络初始化事件,该事件的处理方式即调

30、用ZDO_StartDevice函数来启动设备。实际上,ZDO_StartDevice函数首先对不同的设备类型进行了判断,从而根据相应的设备类型调用不同的API函数进行处理。其中协调器的处理方式是调用NLME_NetworkFormationRequest函数来发送网络形成请求,该函数是网络层的API函数,因为Z-Stack是半开源的协议栈,对网络层函数只提供函数库,而没有公布源代码。但是作为请求原语有其对应的确认原语,在协议栈中有这样一个函数ZDO_NetworkFormationConfirmCB来处理网络形成确认,该函数中在ZDO层设置了一个网络启动事件,在事件循环中进而设置了一个ZDO

31、状态改变事件,该事件的处理结果会发送消息通知API15 层进行启动进行确认,至此协调器的整个启动过程完成。其中详细代码如下: ZDO任务初始化: void ZDApp_Init( byte task_id ) uint8 capabilities; / Save the task ID ZDAppTaskID = task_id; / Initialize the ZDO global device short address storage ZDAppNwkAddr.addrMode = Addr16Bit;/地址模式为16bit短地址 ZDAppNwkAddr.addr.shortAddr

32、 = INVALID_NODE_ADDR;/短地址=0xFFFE (void)NLME_GetExtAddr; / Load the saveExtAddr pointer,API函数-得到64bit IEEE地址 / Check for manual Hold Auto Start ZDAppCheckForHoldKey;/用户可以通过S5手动制止该设备自动启动 / Initialize ZDO items and setup the device - type of device to create. ZDO_Init; / Register the endpoint descripti

33、on with the AF / This task doesnt have a Simple description, but we still need / to register the endpoint. afRegister( (endPointDesc_t *)&ZDApp_epDesc );/为设备注册端点0描述符 #if defined( ZDO_USERDESC_RESPONSE ) ZDApp_InitUserDesc; #endif / ZDO_USERDESC_RESPONSE / set broadcast address mask to support broadc

34、ast filtering NLME_GetRequest(nwkCapabilityInfo, 0, &capabilities);/获得网络信息库的属性值-网络容量 NLME_SetBroadcastFilter( capabilities );/根据网络容量设置掩码,用于处理有效的广播地址 / Start the device? if ( devState != DEV_HOLD )/根据上面函数ZDAppCheckForHoldKey决定 ZDOInitDevice( 0 ); else / Blink LED to indicate HOLD_START HalLedBlink (

35、HAL_LED_4, 0, 50, 500 ); ZDApp_RegisterCBs; /* ZDO_Init */ 16 ZDO启动设备: uint8 ZDOInitDevice( uint16 startDelay ) uint8 networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE;/0x01,初始化该设备新的网络状态 uint16 extendedDelay = 0; devState = DEV_INIT; / Remove the Hold state /not connected to anything,无连接 / Initialize l

36、eave control logic ZDApp_LeaveCtrlInit; / Check leave control reset settings ZDApp_LeaveCtrlStartup( &devState, &startDelay ); / Leave may make the hold state come back if ( devState = DEV_HOLD ) return ( ZDO_INITDEV_LEAVE_NOT_STARTED ); / Dont join - (one time). #if defined ( NV_RESTORE )/project-O

37、ptions-C/C+ complier-defined symbols-xNV_RESTORE,此项预编译为无效 / Get Keypad directly to see if a reset nv is needed. / Hold down the SW_BYPASS_NV key (defined in OnBoard.h) / while booting to skip past NV Restore. if ( HalKeyRead = SW_BYPASS_NV ) networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE; else / Det

38、ermine if NV should be restored networkStateNV = ZDApp_ReadNetworkRestoreState; if ( networkStateNV = ZDO_INITDEV_RESTORED_NETWORK_STATE ) networkStateNV = ZDApp_RestoreNetworkState; else / Wipe out the network state in NV NLME_InitNV; NLME_SetDefaultNV; #endif 17 if ( networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE ) ZDAppDetermineDeviceType;/确定该设备的类型 / Only delay if joining network - not restoring network state extendedDelay = (uint16)(NWK_ST

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号