📄 zbaps.h
字号:
#ifndef __ZBAPS_H__#define __ZBAPS_H__#include "ZBTYPES.h"#define POS_APS_FRAME_TYPE 0x0#define POS_APS_DELIVERY_MODE 0x2#define POS_APS_INDIRECT_ADDR_MODE 0x4#define POS_APS_SECURITY 0x5#define POS_APS_ACK_REQ 0x6#define MASK_APS_FRAME_TYPE 0x3#define MASK_APS_DELIVERY_MODE 0xC#define MASK_APS_INDIRECT_ADDR_MODE 0x10#define MASK_APS_SECURITY 0x20#define MASK_APS_ACK_REQ 0x40#define APS_FRAME_TYPE_DATA 0x0#define APS_FRAME_TYPE_CMD 0x1#define APS_FRAME_TYPE_ACK 0x2#define APS_DELIVERY_MODE_NORMAL 0x0#define APS_DELIVERY_MODE_INDIRECT 0x1#define APS_DELIVERY_MODE_BROADCAST 0x2#define APS_DELIVERY_MODE_GROUP 0x3#define APS_INDIRECT_ADDR_MODE_FROM_COORD 0x0#define APS_INDIRECT_ADDR_MODE_TO_COORD 0x1typedef struct _addr_map_t { laddr_t longAddr; saddr_t shortAddr;} addr_map_t;typedef struct _binding_dest_t { laddr_t dstAddr; uint8_t dstEp;} binding_dest_t;#define DEST_LIST_NUM 4typedef struct _binding_table_t { laddr_t srcAddr; uint16_t clusterId; uint8_t srcEp; binding_dest_t dstList[DEST_LIST_NUM]; } binding_table_t;#define EP_LIST_NUM 6/** * when groupId = 0 indicate this item is free. * if epList[i] = 0 indicate that epList[i] is not use. */typedef struct _group_table_t { uint16_t groupId; uint8_t epList[EP_LIST_NUM];} group_table_t;typedef struct _aps_pib_t { addr_map_t* pAddrMap; binding_table_t* pBindTable; group_table_t* pGroupTable;} aps_pib_t;enum{ ZBSOCKETS = 10, MAX_PAYLOAD_LEN = 48, MAX_HEAD_LEN = 8+8+10, WAIT_ACK_TIME = 500,};typedef struct{ bool free; uint8_t srcEp; uint8_t id; uint16_t clusterId; uint16_t profileId; uint8_t fcf; // default ack=0,security=0;}ZbSocket_table_t;//Zbsocket_table[MAX_ZbSockets]/*typedef nx_struct apsSendParam{ nxle_uint16_t dstAddr; nxle_uint8_t destEp; nxle_uint8_t isAck; //isAck=1,是ack包;isAck=0,不是ack包 nxle_uint8_t ackDsn; //在isAck=1时使用,表示确认包dsn nxle_uint16_t ackClusterId; //在isAck=1时使用 nxle_uint16_t ackProfileId; //在isAck=1时使用 nxle_uint8_t ackSrcEp; //在isAck=1时使用}apsSendParam; *//*application layer data endpoint distribute|0 ZDO|0x01-0xF0 USE|0xF1-0xFE NOT USE|0xFF BROADCAST|APS_DELIVERY_MODE_NORMAL:FCF(1)+DEST_ED(1)+CLUSTER_ID(2)+PROFILE_ID(2)+SOURCE_ID(1)+DSN(1)+PAYLOADAPS_DELIVERY_MODE_INDIRECT+APS_INDIRECT_ADDR_MODE_FROM_COORD:FCF(1)+DEST_ED(1)+CLUSTER_ID(2)+PROFILE_ID(2)+DSN(1)+PAYLOADAPS_DELIVERY_MODE_INDIRECT+APS_INDIRECT_ADDR_MODE_TO_COORD:FCF(1)+CLUSTER_ID(2)+PROFILE_ID(2)+SOURCE_ID(1)+DSN(1)+PAYLOADAPS_DELIVERY_MODE_BROADCAST:FCF(1)+CLUSTER_ID(2)+PROFILE_ID(2)+SOURCE_ID(1)+DSN(1)+PAYLOADAPS_DELIVERY_MODE_GROUP:FCF(1)+GROUP_ADDR(2)+CLUSTER_ID(2)+PROFILE_ID(2)+SOURCE_ID(1)+DSN(1)+PAYLOAD*/#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -