📄 zzdo_type.h
字号:
//------------------------------------------------------------------------------
// This file is part of the ZigBee DK package
// Copyright (c) 2007 RadioPulse Inc.
//------------------------------------------------------------------------------
// ZZDO_TYPE.h : This code is generated by ZProfileBuilder.
// Generated Time (2007::10::03 19-29-14)
//
//------------------------------------------------------------------------------
#ifndef __KEIL_DATA_TYPE__
#define __KEIL_DATA_TYPE__
typedef unsigned long UINT32;
typedef unsigned short UINT16;
typedef unsigned char UINT8;
typedef unsigned char UINT1;
typedef long INT32;
typedef short INT16;
typedef char INT8;
#endif
typedef struct
{
//-- Avail_Type
// bit[7:5] : rsv
// bit[4] : User Descriptor available
// bit[3] : Complex Descriptor available
// bit[2:0] : Logical Type. 0=ZC, 1=ZR, 2=ZED
UINT8 Avail_Type;
//-- Freq_ApsFla g
// bit[7] : Freq Band. reserved
// bit[6] : Freq Band. 1=Support 2.4GHz
// bit[5] : Freq Band. 1=Support 900MHz
// bit[4] : Freq Band. reserved.
// bit[3] : Freq Band. 1=Support 800MHz
// bit[2:0] : APS Flags. Always 0 in ZigBee2006.
UINT8 Freq_ApsFlag;
//-- MacCapa
// bit[7] : Allocate Addr. 1=Can be a PAN Coordinator
// bit[6] : Security
// bit[5:4] : rsv
// bit[3] : RxOnIdle
// bit[2] : Power Source. 1=Mains Power
// bit[1] : Device Type. 1=FFD, 0=RFD
// bit[0] : Alternative PAN Coordinator
UINT8 MacCapa;
UINT16 Manufacture;
UINT8 MaxBufSize; // Max asdu Size(before fragmentation or re-assembly). 0x00~0x7F
UINT16 MaxTranSize; // 0x0000 ~ 0x7FFF
//-- ServerMask
// bit[15:6] : reserved
// bit[5] : 1=Support Backup Discovery Cache
// bit[4] : 1=Support Primary Discovery Cache
// bit[3] : 1=Support Backup Binding Table Cache
// bit[2] : 1=Support Primary Binding Table Cache
// bit[1] : 1=Support Backup Trust Center
// bit[0] : 1=Support Primary Trust Center
UINT16 ServerMask;
} ZS_NodeDesc;
typedef struct
{
//-- AvailPwrSrc_PwrMode
// bit[7] : Available Power Source. rsv
// bit[6] : Available Power Source. 1=Support Disposable battery.
// bit[5] : Available Power Source. 1=Support Rechargeable battery.
// bit[4] : Available Power Source. 1=Support Mains Power.
// bit[3:0] : Current Power Mode. 0 or 1 or 2.
// 0=Sync with RxOnWhenIdle
// 1=Receiver comes on periodically as defined by the node power descriptor
// 2=Receiver comes on when stimulated
UINT8 AvailPwrSrc_CurrPwrMode;
//-- CurrPwrLevel_CurrPwrSrc
// bit[7:4] : Current Power Level. 0=Critical, 1=33, 2=66, 3=100
// bit[3] : Current Power Source. rsv
// bit[2] : Current Power Source. 1=Support Disposable battery.
// bit[1] : Current Power Source. 1=Support Rechargeable battery.
// bit[0] : Current Power Source. 1=Support Mains Power.
UINT8 CurrPwrLevel_CurrPwrSrc;
} ZS_PowerDesc;
#define zPM_SYNC_RxOnIdle 0x00 // sync with RxOnIdle of node descriptor
#define zPM_PERIODIC 0x01 // periodically as defined by the node power descriptor
#define zPM_USER_STIMULATE 0x02 // RX is enabled when stimulated.(ex:user pressing a button)
typedef struct
{
UINT8 EP;
UINT16 AppProID;
UINT16 AppDevID;
UINT8 DevVersion; // bit[7:4]=rsv, bit[3:0]=DevVersion
UINT8 NumInClus;
#if CONF_ZDO_MaxSize_SimpDescInClus
UINT16 InClusList[CONF_ZDO_MaxSize_SimpDescInClus];
#endif
UINT8 NumOutClus;
#if CONF_ZDO_MaxSize_SimpDescOutClus
UINT16 OutClusList[CONF_ZDO_MaxSize_SimpDescOutClus];
#endif
UINT8 EnaSD; // out of spec. by RadioPulse
} ZS_SimpDesc; // Simple Descriptor
typedef struct
{
UINT32 ChanList;
UINT8 EPID[8];
UINT8 ProVer; // Protocol Version
UINT8 StackProf;
UINT8 BO;
UINT8 SO;
UINT8 BattExt;
} ZS_NWK_Mode_Param;
typedef struct
{
UINT8 EnaJD;
UINT8 IEEEAddr[8];
UINT8 CapaInfo;
//UINT8 MasterKey[16]; // if security is enabled
UINT8 JoinStatus; // 0=SUCCESS, Others=Fail
} ZS_JoinDirect;
typedef struct
{
UINT8 ZR;
UINT8 ZED;
UINT8 Depth;
//
} ZS_MaxAsso;
typedef struct
{
// Mandotary
ZS_NodeDesc NodeDesc;
ZS_PowerDesc PowerDesc;
ZS_SimpDesc SimpDesc[CONF_ZDO_MaxSize_SimpDesc];
ZS_NWK_Mode_Param NwkMode;
UINT8 NwkScanAttempt; // default=5, 1 ~ 255
UINT8 NwkTimeBtwnScan; // default=1, 1 ~ 255 (second)
// Optional
#if (CONF_ZDO_MaxSize_JoinDirect != 0)
ZS_JoinDirect JoinDirect[CONF_ZDO_MaxSize_JoinDirect];
#endif
UINT8 PermitJoinDuration;
ZS_MaxAsso MaxAsso; // established in the Stack Profile
//UINT16 NwkLeaveRemoveChild[2];
UINT8 NwkBroadDeliverTime; // established in the Stack Profile. Max = 63
UINT16 NwkTransPersistTime; // established in the Stack Profile
} ZS_CONF;
//---------------------------------------------------------------------
// ZDP Enumeration
//---------------------------------------------------------------------
#define zdpSTA_SUCCESS 0x00
#define zdpSTA_INV_REQTYPE 0x80
#define zdpSTA_DEV_NOT_FOU 0x81
#define zdpSTA_INV_EP 0x82
#define zdpSTA_NOT_ACTIVE 0x83
#define zdpSTA_NOT_SUPPORT 0x84
#define zdpSTA_TIMEOUT 0x85
#define zdpSTA_NO_MATCH 0x86
// 0x87
#define zdpSTA_NO_ENTRY 0x88
#define zdpSTA_NO_DESCRIPT 0x89
#define zdpSTA_INSUFF_SPACE 0x8A
#define zdpSTA_NOT_PERMIT 0x8B
#define zdpSTA_TABLE_FULL 0x8C
//----------------------------------------------------------------------
// ZDP Structure/Union
//----------------------------------------------------------------------
#define REQTYPE_SINGLE 0
#define REQTYPE_EXTEND 1
typedef union
{
UINT8 Ext[8];
UINT16 Short;
} ZS_ADD;
typedef struct
{
UINT8 IEEEAddr[8];
UINT8 ReqType; // 0=Single, 1=Extended
UINT8 StartIdx; // if ReqType=1, present
} ZDPS_NWK_ADDR_req;
typedef struct
{
UINT8 Sta;
UINT8 IEEEAddr[8];
UINT16 NwkAddr;
UINT8 NumAssoDev; // If ReqType=Single, not present
UINT8 StartIdx; // If ReqType=Single, not present
UINT16 NwkAddrAssoDevList[CONF_ZDO_MaxSize_AssoDevList];
} ZDPS_NWK_ADDR_rsp;
typedef struct
{
UINT16 NwkAddr;
UINT8 ReqType; // 0=Single, 1=Extended
UINT8 StartIdx; // if ReqType=1, present
} ZDPS_IEEE_ADDR_req;
typedef struct
{
UINT8 Sta;
UINT8 IEEEAddr[8];
UINT16 NwkAddr;
UINT8 NumAssoDev;
UINT8 StartIdx;
UINT16 NwkAddrAssoDevList[CONF_ZDO_MaxSize_AssoDevList];
} ZDPS_IEEE_ADDR_rsp;
typedef struct
{
UINT16 TargetAddr;
UINT8 SrcIEEE[8];
UINT8 SrcEP;
UINT16 ProfileID;
UINT8 NumInClus;
UINT16 InClusList[CONF_ZDO_MaxSize_EndBindClusList];
UINT8 NumOutClus;
UINT16 OutClusList[CONF_ZDO_MaxSize_EndBindClusList];
} ZDPS_END_DEVICE_BIND_req;
typedef struct
{
UINT8 Sta;
} ZDPS_END_DEVICE_BIND_rsp;
typedef struct
{
ZS_ADD SrcAdd_U;
UINT8 SrcEP;
UINT16 ClusID;
UINT8 DstMode;
ZS_ADD DstAdd_U;
UINT8 DstEP;
} ZDPS_BIND_req;
typedef struct
{
UINT8 Sta;
} ZDPS_BIND_rsp;
typedef struct
{
UINT16 NwkAddr;
UINT8 IEEEAddr[8];
UINT8 Capa;
} ZDPS_END_DEVICE_annce;
typedef struct
{
UINT16 NwkAddr;
} ZDPS_ACTIVE_EP_req;
typedef struct
{
UINT8 Sta;
UINT16 NwkAddr;
UINT8 ActiveEpCnt;
UINT8 ActiveEpList[CONF_ZDO_MaxSize_ActEPList];
} ZDPS_ACTIVE_EP_rsp;
typedef struct
{
UINT16 NwkAddr;
UINT8 EP;
} ZDPS_SIMP_DESC_req;
typedef struct
{
UINT8 Sta;
UINT16 NwkAddr;
UINT8 Length;
UINT8 DescBuf[CONF_ZDO_MaxSize_SimpDescBuf];
} ZDPS_SIMP_DESC_rsp;
typedef struct
{
UINT16 NwkAddr;
} ZDPS_NODE_DESC_req;
typedef struct
{
UINT8 Sta;
UINT16 NwkAddr;
UINT8 DescBuf[CONF_ZDO_MaxSize_NodeDescBuf];
} ZDPS_NODE_DESC_rsp;
typedef struct
{
UINT16 NwkAddr;
} ZDPS_POWER_DESC_req;
typedef struct
{
UINT8 Sta;
UINT16 NwkAddr;
UINT8 DescBuf[CONF_ZDO_MaxSize_PowerDescBuf];
} ZDPS_POWER_DESC_rsp;
typedef struct
{
UINT16 NwkAddr;
UINT16 ProfileID;
UINT8 NumInClus;
UINT16 InClusList[CONF_ZDO_MaxSize_MatchDescClus];
UINT8 NumOutClus;
UINT16 OutClusList[CONF_ZDO_MaxSize_MatchDescClus];
} ZDPS_MATCH_DESC_req;
typedef struct
{
UINT8 Sta;
UINT16 NwkAddr;
UINT8 MatchLen;
UINT8 MatchList[CONF_ZDO_MaxSize_MatchList];
} ZDPS_MATCH_DESC_rsp;
typedef struct
{
UINT16 ServerMask;
} ZDPS_SYS_SERV_DISC_req;
typedef struct
{
UINT8 Sta;
UINT16 ServerMask;
} ZDPS_SYS_SERV_DISC_rsp;
typedef union
{
ZDPS_END_DEVICE_annce END_DEV_ANNCE;
ZDPS_NWK_ADDR_req NWK_ADDR_REQ;
ZDPS_NWK_ADDR_rsp NWK_ADDR_RSP;
ZDPS_IEEE_ADDR_req IEEE_ADDR_REQ;
ZDPS_IEEE_ADDR_rsp IEEE_ADDR_RSP;
ZDPS_NODE_DESC_req NODE_DESC_REQ;
ZDPS_NODE_DESC_rsp NODE_DESC_RSP;
ZDPS_POWER_DESC_req POWER_DESC_REQ;
ZDPS_POWER_DESC_rsp POWER_DESC_RSP;
ZDPS_SIMP_DESC_req SIMP_DESC_REQ;
ZDPS_SIMP_DESC_rsp SIMP_DESC_RSP;
ZDPS_ACTIVE_EP_req ACTIVE_EP_REQ;
ZDPS_ACTIVE_EP_rsp ACTIVE_EP_RSP;
ZDPS_MATCH_DESC_req MATCH_DESC_REQ;
ZDPS_MATCH_DESC_rsp MATCH_DESC_RSP;
ZDPS_SYS_SERV_DISC_req SYS_SERV_DISC_REQ;
ZDPS_SYS_SERV_DISC_rsp SYS_SERV_DISC_RSP;
ZDPS_BIND_req BIND_REQ;
ZDPS_BIND_rsp BIND_RSP;
ZDPS_END_DEVICE_BIND_req END_DEV_BIND_REQ;
ZDPS_END_DEVICE_BIND_rsp END_DEV_BIND_RSP;
} ZDPS_MSG;
typedef struct
{
UINT8 Seq;
ZDPS_MSG Msg;
} ZDPS_PAY;
//---------------------------------------------------------------------
// ZCL Structure/Union
//---------------------------------------------------------------------
#define ZCL_FT_EntireCmd 0
#define ZCL_FT_SpecificCmd 1
#define ZCL_DIR_Server2Client 0
#define ZCL_DIR_Cleint2Server 1
#define ZCL_DefaultRsp_Disable 1
#define ZCL_DefaultRsp_Enable 0
typedef struct
{
// 0 : Command acts across the entire profile
// 1 : Command acts to a specific cluster
UINT8 FrameType : 2;
UINT8 Manufact : 1;
UINT8 Direction : 1; // 1=Server To Client, 0=Client To Server
UINT8 DisableRsp : 1; // 1=No Response Command.
UINT8 rsv : 3;
} ZCLS_FC_Sub;
typedef union
{
UINT8 All;
ZCLS_FC_Sub b;
} ZCLS_FC;
typedef struct
{
ZCLS_FC FC;
UINT16 ManuCode;
UINT8 SeqNum;
UINT8 CmdID;
} ZCLS_HEAD;
typedef struct
{
ZCLS_FC FC;
UINT16 ManuCode;
UINT8 SeqNum;
UINT8 CmdID;
UINT8 Payload[CONF_ZDO_MaxSize_ZCLPayload];
UINT8 PayLen; // out of spec. by RadioPulse
} ZCLS_PAY_M; // ZCL Manufacturer : Including ManuCode
typedef struct
{
ZCLS_FC FC;
UINT8 SeqNum;
UINT8 CmdID;
UINT8 Payload[CONF_ZDO_MaxSize_ZCLPayload+2];
UINT8 PayLen; // out of spec. by RadioPulse
} ZCLS_PAY_G; // ZCL General : Not including ManuCode
//----------------------------------------------------------------------
// ASDU Structure/Union
//----------------------------------------------------------------------
typedef union
{
ZDPS_PAY ZDP;
UINT8 Buff[CONF_ZDO_NodeDesc_MaxBufferSize];
ZCLS_PAY_G ZCL;
ZCLS_PAY_M ZCL_MANU;
} S_ASDU;
//==========================================================================
//==========================================================================
//==========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -