zstack中的地址的定义
typedef struct
{
union
{
uint16 shortAddr; //短地址
ZLongAddr_t extAddr; //扩展地址
} addr;
afAddrMode_t addrMode; //地址模式
uint8 endPoint; //端点
uint16 panId; // 用于多个PAN网络传递
} afAddrType_t;
扩展地址又叫做IEEE地址,MAC地址,64位,全球唯一,固化到硬件中。
短地址又叫网络地址,入网时有父设备指定,16位,一个网络内的设备短地址不能一样,理论上一个zigbee网络可以有2^16=65536个设备
代码的填充方式,举例
//广播
static afAddrType_t SerialApp_TxAddr;
SerialApp_TxAddr.addrMode =(afAddrMode_t) AddrBroadcast; //广播
SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT;
SerialApp_TxAddr.addr.shortAddr = 0xffff;
//组播
static afAddrType_t Group1_Addr;//定义分组的地址
Group1_Addr.addrMode = (afAddrMode_t) afAddrGroup;//组播 AddrGroup
Group1_Addr.endPoint = SERIALAPP_ENDPOINT;//自己的(消息地址的)端点号
Group1_Addr.affr.shortAddr = GroupID1;
地址模式
typedef enum
{
afAddrNotPresent = AddrNotPresent, //依照绑定表
afAddr16Bit = Addr16Bit, //16位地址
afAddr64Bit = Addr64Bit,
afAddrGroup = AddrGroup, //组播
afAddrBroadcast = AddrBroadcast //广播
} afAddrMode_t;
几个特殊的地址
0xFFFF 对所有设备广播,包括睡眠
0xFFFE 间接传输,通过绑定表寻找网络短地址
0xFFFD 对没睡觉的设备广播
0xFFFC 给协调器和路由器广播
0x0000 给协调器通信
0x0000-0xFFFB 跟设定的目标地址