⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zzdo_type.h

📁 ZIGBEE 2006协议栈 BAT测试代码 RADIO PULSE MG2455
💻 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 + -