ZigBee重要结构及表解释ZigBee 2010-06-13 10:31:26 阅读103 评论0 字号:大中小订阅各表中的元素结构:1、组表的元素结构aps_Group_t;typedef struct{uint16 ID; // 组IDuint8 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; //接收请求IDuint16 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、电源功率表macRadioDefsTxPowerTable10、全局常量表元素结构(即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 IDbyte 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 valuesbyte assocCnt;linkInfo_t linkInfo;} associated_devices_t;重要的表网络表:1、关联表AssociatedDevList 最大条目数NWK_MAX_DEVICES2、相邻表neighborTable 最大条目数MAX_NEIGHBOR_ENTRIES3、路由表rtgTable 最大条目数MAX_RTG_ENTRIES4、路由发现表rtDiscTable 最大条目数MAX_RREQ_ENTRIES5、广播表bcastTable 最大条目数MAX_BCAST6、绑定表BindingTable 最大条目数NWK_MAX_BINDING_ENTRIES7、组表SampleApp_Group系统表:1、任务表tasksArr 最大任务数2、任务事件表tasksEvents 2字节*任务数3、电源功率表macRadioDefsTxPowerTable4、全局常量表zgItemTable static uint8 zgItemInit( uint16 id, uint16 len, void *buf, uint8 setDefault ) //初始化回调表:1、ZDO消息处理回调表zdpMsgProcs oid ZDP_IncomingData( afIncomingMSGPacket_t *pData ) //执行回调函数2、MT消息处理回调表mtzdoConvTable3、MAC事件回调表zmacCBEventTable4、MAC事件回调大小表zmacCBSizeTablevoid MAC_CbackEvent(macCbackEvent_t *pData) //回调事件处理链表:1、PAN网络描述符链表NwkDescList2、端点链表epList void afInit( void ) //初始化端点链表Status_t afRegister( endPointDesc_t *epDesc ) //端点注册记录表:1、定时器记录表halTimerSettings_t halTimerRecord。
2、定时器通道表halTimerChannel_t halTimerChannel。
HalTimerStart()开始硬件定时器HalTimerStop()停止硬件定时器。