zigbee网络通讯单播粤嵌通信科技股份_第1页
zigbee网络通讯单播粤嵌通信科技股份_第2页
zigbee网络通讯单播粤嵌通信科技股份_第3页
zigbee网络通讯单播粤嵌通信科技股份_第4页
zigbee网络通讯单播粤嵌通信科技股份_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(单播、组播、广播广州粤嵌通作Lemon日2013-10-版Zigbee网络通讯实验(点播、组播、广播21个设备上发出的信息所有设备都能接收到。这也是ZigBee通信的基本方式。实现平台:ZigBee3图 ZigBee节点设实验现象:通过数据的相互传输来了解单播、组播、广播含义。掌握编程方法实验讲解apepp.ewwgee2点播(点对点通信SampleApp例程完通过简单的修改完成单播实验。为了简化大家了理解。数据发送和接收的内容按照“一小时实现无线数据传输”章节来描述。AF.htypedef{afAddrNotPresent=AddrNotPresent,afAddr16Bit =Addr16Bit,afAddr64Bit =Addr64Bit, =AddrGroup,afAddrBroadcast =AddrBroadcast}该类型是一个枚举类型addrMode=Addr16Bit时,对应点播方式addrMode=AddrGroup时,对应组播addrMode=AddrBroadcast时,对应广播方式;按照以往的步骤,打开SampleApp.c文件afAddrType_tafAddrType_t可发现已经afAddrType_tafAddrType_t分别是组播和广播前面的定义。我们按照格式来添加自己的点播如下(如 3所示afAddrType_tPoint_To_Point_DstAddr;//点对点gotodefinitionofafAddrType_tPoint_To_Point_DstAddr一些参数进行配置,找到下面的位置,参考SampleApp_Periodic_DstAddr和SampleApp_Flash_DstAddr下代码(如图4所示:// Point_To_Point_DstAddr.addrMode= Point_To_Point_DstAddr.addr.shortAddr=0x0000;//发给如图所示继续添加自己的点对点发送函数,代码如下(5所示voidSampleApp_SendPointToPointMessage(void{uint8if(AF_DataRequest(&SampleApp_TransID,AF_DISCV_ROUTE,{ {//Erroroccurredinrequestto}}Point_To_Point_DstAddr我们之前已经定义,我们SampleApp.h中加入SAMPLEAPP_POINT_TO_POINT_CLUSTERID的定义如下(图6所示:#defineSAMPLEAPP_POINT_TO_POINT_CLUSTERID4//传输编号接下来为了测试我们的程序,我们把“无线数据传输”中SampleApp.c文件中的SampleApp_SendPeriodicMessage();在接收方面,我们进行如下修改:接收ID我们在原来基础上改成我们刚定义的SAMPLEAPP_POINT_TO_POINT_CLUSTERID。如图8所示由于协调器不允许给自己点播,故周期性点播初始化时协调器不能初始化。如图 示最后,别忘了在SampleApp.c函数里加入voidSampleApp_SendPointToPointMessage(void);//点对点通讯发送//数定义否则编译将报错实验结果:将修改后的程序分别以协调器、路由器、终端的方式到3个节点设备中,连接串口。可以看到只有协调器在一个周期内收到信息。也就是说路由器和终端均与地址为0x00(协调器)的设备通信,不语其他设备通信。实现点对点传输。如图10所示:10组的就是节点的组号。下面我们在SampleApp例程完通过简单的修改完成组播实验。数据发送和接收的内容依然按照“无线数据传输”章节格式。修改流程与点播相似。SampleApp.c21afAddrType_tafAddrType_tGroup_DstAddr;//组播通信2、组播内容的结构体aps_Group_tMY_Group;分组内容加入组播参数的配置。代码如下(12所示// MY_GROUPSampleApp.h2(13所示#defineMY_GROUP //组播接下来添加自己的组播发送函数,代码如下(14所示voidSampleApp_SendPointToPointMessage(void{uint8if(AF_DataRequest(&Group_DstAddr,10,data,&SampleApp_TransID,AF_DISCV_ROUTE,{}{//Erroroccurredinrequestto }})Group_DstAddrSampleApph中加入MY_GROUP_CLUSTERID的定义如下(图15所示:)#define 接下来为了测试我们的程序,我们把“无线数据传输”中SampleApp.c文件中的SampleApp_SendPeriodicMessage();SampleApp_SendGroupMessage();;这样的话就能实现周期性组播发送数据了(图16所示在接收方面,我们进行如下修改:接收ID(17所示MY_GROUP_CLUSTERID最后,别忘了在SampleApp.c函数里加入voidSampleApp_SendGroupMessage(void);//组播通讯发送函数定义否则编译将报错实验结果:将修改后的程序分别以协调器、路由器、终端的方式到3个设备,把协调0x00020x00030x0002的两个设备相互发送信息。广

18我们在协议栈SampleApp中找到广播参数的配置。代码如下。SampleApp_Periodic_DstAddr.addrMode(afAddrMode_t)AddrBroadcast;SampleApp_Periodic_DstAddr.endPoint=SAMPLEAPP_ENDPOINT;SampleApp_Periodic_DstAddr.addr.shortAddr=0xFFFF;:voidSampleApp_SendPeriodicMessage(void{uint8if(AF_DataRequest(&SampleApp_epDesc,SAMPLEAPP_PERIODIC_CLUSTERI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论