zigbee协议栈组播通讯 From zigbee菜鸟笔记(十 三)

本章原理

ZigBee 的通信方式主要有 3 种:点播,广播与组播。点播,顾名思义就是点对点通信,也就是两个
设备之间的通信,不容许有第三个设备收到信息。广播,就是一个设备发出的信息让所有设备都能收到。
组播,就是把网络中的节点分组,每一个组员发出的信息,只有相同组号的组员才能收到
TIP
终端需要设置f8wConfig -DRFD_RCVC_ALWAYS_ON=TRUE

初始化组播代码

 SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;
  SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;             //端点描述
  SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP;   //组播地址  1

组播发送函数

if ( AF_DataRequest( &SampleApp_Flash_DstAddr/*这个是组播端点描述,必须改**/
, &SampleApp_epDesc,
                       SAMPLEAPP_FLASH_CLUSTERID,   //这个不重要可自己定义
                       3,
                       buffer,
                       &SampleApp_TransID,
                       AF_DISCV_ROUTE,
                       AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
  {
  }
  else
  {
    // Error occurred in request to send.
  }

接收到信息

 case SAMPLEAPP_FLASH_CLUSTERID:
      
      if(0x0001 == pkt->groupId)
      {
      }

你可能感兴趣的:(菜鸟自学zigbee,单片机)