ZigBee重要结构及表解释
各表中的元素结构:
1、组表的元素结构 aps_Group_t;
typedef struct
{
uint16 ID; // 组ID
uint8 name[APS_GROUP_NAME_LEN]; // 组名称
} aps_Group_t;
2、组列表的元素结构
typedef struct apsGroupItem
{
struct apsGroupItem *next; //指向下一个组表条目
uint8 endpoint; //此终端接收发送给组的信息
aps_Group_t group; //组ID和组名
} apsGroupItem_t;
3、路由表的元素结构 rtgEntry_t;
typedef struct
{
uint16 dstAddress; //目标地址
uint16 nextHopAddress; //单跳地址
byte expiryTime; //有效时间
byte status; //状态
} rtgEntry_t;
4、绑定表的元素结构 BindingEntry_t;
typedef struct
{
uint8 srcEP; // 没有源地址自从源地址一直是本地设备
uint8 dstGroupMode; // 目标地址类型; 0 –正常地址, 1 – 组地址
uint16 dstIdx; //在两种模式中 (组或非组) 保存到 NV 和RAM
// dstGroupMode = 0 - Address Manager index
// dstGroupMode = 1 – 组地址
uint8 dstEP; //目标地址
uint8 numClusterIds; //簇个数
uint16 clusterIdList[MAX_BINDING_CLUSTER_IDS];
// Don't use MAX_BINDING_CLUSTERS_ID when
// using the clusterIdList field. Use
// gMAX_BINDING_CLUSTER_IDS
} BindingEntry_t;
5、相邻表的元素结构 neighborEntry_t;
typedef struct
{
uint16 neighborAddress; //相邻地址
uint16 panId; //所属的PAN网络ID
linkInfo_t linkInfo; //连接信息(包括发送/接收和安全帧计数)
} neighborEntry_t;
6、路由发现表的元素结构 rtDiscEntry_t;
typedef struct
{
byte rreqId; //接收请求ID
uint16 srcAddress; //源地址
uint16 previousNode; //上次模式
byte forwardCost; //发送成本
byte residualCost; //剩余成本
byte expiryTime; //有效时间
} rtDiscEntry_t;
7、广播表的元素结构 bcastEntry_t;
typedef struct
{
uint16 srcAddr; //源地址
uint8 bdt; // 广播传递时间
uint8 pat; // 被动应答超时
uint8 mbr; // 最大广播重试次数
uint8 handle;
// 计数非睡眠邻居和路由器子节点.
uint8 ackCnt; //应答次数
uint8 id; //广播ID
} bcastEntry_t;
8、回调表的元素结构 MTZDO_ConversionItem_t;
typedef struct
{
uint16 clusterID; //请求命令
uint32 subCBID; // 回调回应参数
uint16 mtID; // SPI 消息ID
pfnMtZdoRspProc pFn; //回调函数
} MTZDO_ConversionItem_t;
9、电源功率表
macRadioDefsTxPowerTable
10、全局常量表元素结构(即NV区中的项) zgItem_t;
typedef struct zgItem
{
uint16 id; //项目类?
uint16 len; //占用空间
void *buf; //要写入的数据
} zgItem_t;
11、任务表元素结构 *pTaskEventHandlerFn;
( unsigned char task_id, unsigned short event );
12、mac回调函数事件表 zmacCBEventTable;
13、数据结构大小查找表 zmacCBSizeTable;
必须以mac回调事件顺序相匹配;
14、ZDP处理请求消息表的元素结构 zdpMsgProcItem_t;
typedef struct
{
uint16 clusterID; //--簇ID(请求消息)
pfnZDPMsgProcessor pFn; //要执行的函数
} zdpMsgProcItem_t;
15、PAN网络描述列表的元素结构 networkDesc_t;
typedef struct
{
uint16 panId; //PAN ID
byte logicalChannel; //逻辑信道
byte beaconOrder; //信标指令
byte superFrameOrder; //超级帧指令
byte routerCapacity; //路由能力
byte deviceCapacity; //设备能力
byte version; //版本
byte stackProfile; //profilestack
//byte securityLevel;
uint16 chosenRouter; //所选择的路由器
uint8 chosenRouterLinkQuality; //所选择路由器的链路质量
byte chosenRouterDepth; //所选择路由器的深度
uint8 extendedPANID[Z_EXTADDR_LEN]; //PAN ID的扩展地址
void *nextDesc; //指向下一个的PAN
} networkDesc_t;
16、端点表元素结构 endPointDesc_t;
typedef struct
{
byte endPoint; //终端号
byte *task_id; // Pointer to location of the Application task ID.
//–指向本地应用任务,ID的一个指针
SimpleDescriptionFormat_t *simpleDesc; //指向简单描述符
afNetworkLatencyReq_t latencyReq; //这个字段必须为nolatencyreqs
} endPointDesc_t;
17、端点列表元素结构 epList_t;
typedef struct
{
endPointDesc_t *epDesc; //指向终端描述符
eEP_Flags flags;
pDescCB pfnDescCB; // Don't use if this function pointer is NULL.
void *nextDesc;
} epList_t;
18、关联设备表元素结构 associated_devices_t;
typedef struct
{
UINT16 shortAddr; // 关联设备短地址
uint16 addrIdx; // 地址管理器的索引标?
byte nodeRelation;
byte devStatus; // bitmap of various status values
byte assocCnt;
linkInfo_t linkInfo;
} associated_devices_t;
重要的表
网络表:
1、 关联表 AssociatedDevList 最大条目数NWK_MAX_DEVICES
2、 相邻表 neighborTable 最大条目数MAX_NEIGHBOR_ENTRIES
3、 路由表 rtgTable 最大条目数MAX_RTG_ENTRIES
4、 路由发现表rtDiscTable 最大条目数MAX_RREQ_ENTRIES
5、 广播表bcastTable 最大条目数MAX_BCAST
6、 绑定表BindingTable 最大条目数NWK_MAX_BINDING_ENTRIES
7、 组表 SampleApp_Group
系统表:
1、 任务表 tasksArr 最大任务数
2、 任务事件表tasksEvents 2字节*任务数
3、 电源功率表macRadioDefsTxPowerTable
4、 全局常量表zgItemTable static uint8 zgItemInit( uint16 id, uint16 len, void *buf, uint8 setDefault ) //初始化
回调表:
1、 ZDO消息处理回调表zdpMsgProcs oid ZDP_IncomingData( afIncomingMSGPacket_t *pData )
//执行回调函数
2、 MT消息处理回调表mtzdoConvTable
3、 MAC事件回调表zmacCBEventTable
4、 MAC事件回调大小表 zmacCBSizeTable
void MAC_CbackEvent(macCbackEvent_t *pData) //回调事件处理
链表:
1、 PAN网络描述符链表 NwkDescList
2、 端点链表 epList void afInit( void ) //初始化端点链表
Status_t afRegister( endPointDesc_t *epDesc ) //端点注册
记录表:
1、 定时器记录表 halTimerSettings_t halTimerRecord。
2、 定时器通道表halTimerChannel_t halTimerChannel。
HalTimerStart()开始硬件定时器
HalTimerStop()停止硬件定时器