
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.组播-多终端控制协调器 LED实验内容:1.2.3.实验多终端通讯实现组播通讯,协调器不响应其它组发过来的数据掌握 Led 开关提示:由于组播需要三个节点才能真正完成此实验,一个协调器,两个终端。如果只有两个节点就只能完成部分内容了。其实代码并不复杂,看看代码也就清楚组播是怎么回事了。 实现现象:三个节点,一个节点做协调器,另外两个节点做终端。按终端 S1 键时,协调器 Led2 状态改变同时终端自身的 Led2 状态也改变,提示发送成功。修改其中一个终端的组载后,按此终端 S1 键时,此时看协调器 Led2 状态是否会改变。,编译下实验详解:打开.CC2530第5章 zigbee协议栈应
2、用与组网4.组播-多终端控制协调器LEDZStack-2.5.1aProjectszstackSlesSleAppCC2530DBSleApp.eww工程。由于此实验中就是基于TI的SleApp修改的,由于SleApp本身就有组播的代码,只需修改小部分代码就可实现实验的功能了,现在告诉大家怎么修改。1.在全局变量区定义一个全局变量,用来保存当前Led的状态/* GLOBAL VARIABLES*/u8 LedSe = 0;/保存当前Led的状态2. 在SleApp_ProsEven函数找到如下代码:1.2.3.4.5.6.7.8.case ZDO_SE_CHANGE:/当网络状态改变,所有节点
3、都会发生Sif|leApp_NwkSe =(devSes_t)(MSGpkt-hdr.sus);( (S (S(SleApp_NwkS leApp_NwkS leApp_NwkSe = DEV_ZB_COORD) e = DEV_ROUTER)e = DEV_END_DEVICE)/协议器不用发送所以/路由器/终端设备|)/Starding theperiodic message in a regularerval./osal_start_timerEx( SleApp_TaskID,/S/SLEAPP_SEND_PERIODIC_MSG_EVT, LEAPP_SEND_PERIODIC_MS
4、G_TIMEOUT );9.注释osal_start_timerEx这行代码,此实验没有周期性事件。修改后如红色代码所示。3. 找到按键处理函数SleApp_HandleKeysvoid SleApp_HandleKeys( u8 shift, u8 keys )(void)shift;/entionally unreferenced parameter/判断S1按键是否被按下,由于TI用的5向按键,和的开发板IO有所不同市安联德科技专业专注无线通讯 勇于创新追求卓越品质1if ( keys & HAL_KEY_SW_6 )#if defined(ZDO_COORDINATOR)/协调器只接收
5、数据#else S/路由器和终端才发送数据/以组播方式发数据leApp_SendFlashMessage(0);#endifif (/*/keys & HAL_KEY_SW_1 )/判断S2按键是否被按下The Flashrd issent to Group 1.device in and out of group 1.This key toggles thisIf this device doesnt belong to group 1, this applicationwill not receive theFlashd sentto group 1.aps_Group_t *grp;/查
6、找SLEAPP_ENDPO端点是否加入了以S LEAPP_ENDPO,LEAPP_FLASH_GROUP为组ID的组 LEAPP_FLASH_GROUP );grp = aps_FindGroup( if ( grp )/ Remove from the aps_RemoveGroup( SelseSSgroupLEAPP_ENDPO, SLEAPP_FLASH_GROUP );/退出组/ Add to the aps_AddGroup(flash groupSLEAPP_ENDPO,&SleApp_Group );/加入组4.接收数据找到SleApp_MessageMSGCB函数void S
7、uleApp_MessageMSGCB(ingMSGPacket_t *pkt ) /接收数据8 data;switch ( pkt-clusterId )case Sbreak;LEAPP_PERIODIC_CLUSTERID:case SLEAPP_FLASH_CLUSTERID:data = (u8)pkt-cmd.Data0;/根据接收到的数据改变Led2的亮灭市安联德科技专业专注无线通讯 勇于创新追求卓越品质2if(data = 0)HalLedSe elseHalLedSe break;L_LED_2, HAL_LED_MODE_OFF);L_LED_2, HAL_LED_MODE
8、_ON);组播发送数据 找到SleApp_SendFlashMessage函数5.void SLedSleApp_SendFlashMessage( u16 flashTime )e = LedSe;/Led状态取反if ( AF_DataRequest( &SS 1,leApp_Flash_DstAddr, &SleApp_epDesc,LEAPP_FLASH_CLUSTERID,&LedS &Se, leApp_TransID,AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) = afSus_SUCS )if(LedSe = 0)/切换自身状态提示用户操作成功L_LE
9、D_2, HAL_LED_MODE_ON);HalLedSe elseHalLedSeL_LED_2, HAL_LED_MODE_OFF);else/ Error occurred in request to send.如果想用其它组号通讯时,修改SLEAPP_FLASH_GROUP宏定义,并将SleApp_Init()改成以下代码即可,或者打开代码中的注释:/ Setup for the flashds destination address - Group 1S S S/SleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;leApp_Flash_DstAddr.endPo= SLEAPP_ENDPO;leApp_Flash_DstAddr.addr.shortAddr = SLEAPP_FLASH_GROUP; /组
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025厂级安全培训考试试题含完整答案【一套】
- 2025年生产经营负责人安全培训考试试题打印
- 2025年班组安全培训考试试题【考点精练】
- 2025租赁土地种植蔬菜合同
- 2025年依据劳动合同规定合法解雇员工
- 2025宁夏租房合同范本下载
- 2025年垃圾前端收转装备项目建议书
- 2025科技公司合作合同范本
- 2025劳动合同与保密协议
- 2025贷款服务合同金融合同模板
- 短引线保护引出线保护以及T区保护
- 完美公司玛丽艳美的观念
- 浙摄影版(2020)信息技术三年级上册第一课认识计算机(课件)
- 第七讲-信息技术与大数据伦理问题-副本
- 校园安全常识测试题卷
- 建筑用玻璃ccc标准
- 第一课中国人民站起来了
- 眼科门诊病历
- 彝文《指路经》课件
- 《神经系统的传导通路》课件
- 基本农田划定技术规程(TDT1032-2011)
评论
0/150
提交评论