- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于绑定的无线开关系统
目录
任务要求
任务实施
任务要求
采用两个ZigBee模块,一个作为协调器(ZigBee模块1),另一个作为终端节点(ZigBee模块2),其中ZigBee模块2为终端设备,用于申请加入绑定,控制ZigBee模块1设备上的LED亮或灭; ZigBee模块1为控制设备,用于协调器或路由器,负责允许其它设备申请与其绑定。
任务实施
1.打开SimpleApp工程
双击…\ZStack-CC2530-2.5.1a\Projects\zstack\Samples\ SimpleApp\CC2530DB目录下的SimpleApp.eww文件,打开SimpleApp工程。
任务实施
2. 初始化
SimpleApp工程有HOLD_AUTO_START和REFLECTOR两个编译选项,其中前者HOLD_AUTO_START是使SimpleApp工程以非自动方式启动,后者REFLECTOR是该工程使用绑定功能。
(1)在ZDO层初始化。在ZDO目录下的ZDApp.c文件中,ZDApp_Init( uint8 task_id )函数内有如下代码:
任务实施
(2)应用层初始化。在App目录下的sapi.c文件中,SAPI_Init( byte task_id )函数内有代码:osal_set_event(task_id, ZB_ENTRY_EVENT),其作用是将事件ZB_ENTRY_EVENT交给应用层事件处理函数UINT16 SAPI_ProcessEvent( byte task_id, UINT16 events )来处理,关键代码如下:
任务实施
3.控制节点(ZigBee模块1)允许建立绑定
(1)分析控制节点中的簇(cluster)
在App目录下SimpleController.c中,定义了一个输入簇TOGGLE_LIGHT_CMD_ID,这个簇与开关节点的同名输出簇配合使用,目的是用于建立绑定关系。一个簇实际上是一些相关命令和属性的集合,这些命令和属性一起被定义为一个应用接口。
任务实施
(2)控制节点配置
对于控制节点来说,需要通过按键来将其设置为协调器。
1)SimpleController.c中的按键处理函数。按键事件触发后,则调用zb_HandleKey()函数,关键代码如下,红色框为修改部分,触发SW6(P1.2)和SW7(P0.1)按键动作。
任务实施
触发SW6键:
任务实施
代码分析:
在第1次启动控制设备(节点)时,如果触发SW6键,使设备为协调器,在NV中写入ZCD_NV_LOGICAL_TYPE项值为ZG_DEVICETYPE_COORDINATOR。在NV中写入ZCD_NV_ STARTUP_OPTION项值为ZCD_STARTOPT_AUTO_START,以后启动时就不需要以HOLD_AUTO_START方式启动。然后重新启动系统,则重新进行ZDO层和应用初始化,可以看到LED2不再闪烁,ZigBee网络已建立起来。
当ZigBee网络建立起来,会触发ZDO_STATE_CHANGE事件,该事件的处理函数UINT16 SAPI_ProcessEvent( byte task_id, UINT16 events )在App目录下的sapi.c文件中,会调用SAPI_StartConfirm( ZB_SUCCESS )函数,从而会调用App目录下的SimpleController.c文件中的zb_StartConfirm( uint8 status )函数,并且运行myAppState = APP_START语句。因此,当第1次启动控制设备后,第2次触发SW6键时,调用zb_AllowBind( myAllowBindTimeout)函数。
任务实施
2)zb_AllowBind( myAllowBindTimeout)允许绑定请求函数。
切记:在制控设备第1次启动时,需要触发两次SW6,才调用该函数;如果是非第1次启动时,只要触发一次SW6就可以调用该函数。
任务实施
zb_AllowBind()函数分析:
参数timeout是目标设备进入绑定模式持续第时间(s)。如果设置为0xFF,则该设备在任何时候都可以允许绑定模式;如果设置为0x00,则取消目标设备进入允许绑定模式。如果设备的时间大于64s,就默认为64s。
afSetMatch( uint8 ep, uint8 action )函数不是对外发送数据,只是等待设备发来数据进行配对,允许或禁止设备响应ZDO的描述符匹配请求。参数ep表示端点endpoint,参数action表示允许(TRUE)或者禁止(FALSE)匹配,返回值为TRUE或者FALSE。
如果设定的时间不是0xFF,则表明要在规定的时间(timeout)内进
您可能关注的文档
- 市政工程施工 土质路基施工 3第三讲 第三章_天然地基上的浅基础9.4.ppt
- 市政桥梁工程施工 斜拉桥施工 斜拉桥施工第二讲.ppt
- 试验室组建与管理 试验室组织机构 1-3试验室组织机构.pptx
- 室内装饰构造与施工工艺 铝合金门窗装饰工程.ppt
- 室内装饰设计 1.设计成果文件要求与规范、展示方式、提交项目成果文件,检查、评价、总结工作过程 商业空间新人杯22.pptx
- 手工木工 课程概述 手工木工 教学方法.ppt
- 手工木工 课程概述 手工木工 考核方式.ppt
- 手工木工 课程概述 手工木工 课程设计.ppt
- 兽药管理 兽药质量监督的定义和内容 兽药质量监督定义和内容.pptx
- 兽药营销 兽药营销概述 1兽药营销课程资源库ppt兽药营销概述.pptx
- 物理因子治疗技术 4.干扰电疗法 干扰电疗法.pptx
- 物流包装技术 拉伸包装 苹果的拉伸包装工艺之一.ppt
- 物流包装技术 理解脆值概念 脆值理论(新版)--理解脆值概念.ppt
- 物流成本分析技术 成本优化 其他成本分析流通加工成本核算与分析成本优化.pptx
- 物流成本分析技术 我国物流成本现状 物流成本现状.pptx
- 物流成本分析技术 物流责任成本 物流成本控制物流责任成本.pptx
- 物流成本分析技术 总成本和单位成本 运输成本分析公路运输成本总成本和单位成本.pptx
- 物流储配作业管理 1.2 配送认知与分类 1.2配送认知与分类.pptx
- 物流地理 我国铁路运输货运量情况 我国铁路货运量情况.pptx
- 物流服务营销 物流服务营销 第三节 物流服务营销.ppt
文档评论(0)