1.AF地址类型结构体位于AF.h
地址模式:
typedef enum
{
afAddrNotPresent = AddrNotPresent,
afAddr16Bit = Addr16Bit,
afAddr64Bit = Addr64Bit,
afAddrGroup = AddrGroup,
afAddrBroadcast = AddrBroadcast
} afAddrMode_t;
typedef struct
{
union
{
uint16 shortAddr;
ZLongAddr_t extAddr;
} addr;
afAddrMode_t addrMode;
byte endPoint;
uint16 panId; // used for the INTER_PAN feature
} afAddrType_t;
2.用户层SampleApp.c中常用函数
cluter ID定义:
// This list should be filled with Application specific Cluster IDs.
const cId_t SampleApp_ClusterList[SAMPLEAPP_MAX_CLUSTERS] =
{
SAMPLEAPP_PERIODIC_CLUSTERID,
SAMPLEAPP_FLASH_CLUSTERID,
SAMPLEAPP_CONNECTREQ_CLUSTER, //请求cluster Id
SAMPLEAPP_CONNECTREP_CLUSTER //应答cluster Id
};
用户初始化函数:
void SampleApp_Init( uint8 task_id )
用户初始化函数中的重要代码:
SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast; //设置广播通信目的地址模式 广播给网络中的每个节点
SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; //设置端点信息
SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF; //设置广播信息的目的地址的短地址
0xFFFF 是广播地址。 协议栈广播地址主要有 3 种类型:
具体的定义如下:
0xFFFF——数据包将被传送到网络上的所有设备,包括睡眠中的设备。对于睡眠中的设备,数据包将被保留在其父亲节点直到查询到它,或者消息超时。
0xFFFD——数据包将被传送到网络上的所有在空闲时
打开接收的设备(RXONWHENIDLE),也就是说,除了睡眠中的所有设备。
0xFFFC——数据包发送给所有的路由器,包括协调器。
————————————————
版权声明:本文为CSDN博主「Bruceoxl」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013162035/article/details/80979977
SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup; //设置组播通信目的地址模式 组播给网络中的组成员
SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; //设置端点信息
SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP; //设置组播信息的目的地址的短地址
SampleApp_P2P_DstAddr.addrMode = (afAddrMode_t)Addr16Bit; //设置点播通信目的地址模式
SampleApp_P2P_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; //设置端点信息
SampleApp_P2P_DstAddr.addr