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

📄 zmac_type.h

📁 ZIGBEE 2006协议栈 BAT测试代码 RADIO PULSE MG2455
💻 H
📖 第 1 页 / 共 2 页
字号:

typedef struct {
	UINT16	PANId;
	UINT8	LogicalChannel;
	UINT8	BeaconOrder;
	UINT8	SuperframeOrder;
	UINT8	PANCoordinator;
	UINT8	BatteryLifeExt;
	UINT8	CoordRealignment;
	UINT8	SecurityEnable;
} MLME_START_REQ;

typedef struct {
	UINT8	SrcAddrMode;
	UINT16	SrcPanId;
	UINT16	SrcAddr[4];
	UINT8	DstAddrMode;
	UINT16	DstPanId;
	UINT16	DstAddr[4];
	UINT8	msduLength;
	UINT8	msduHandle;
	// bit[7:4]	: OOB. by RadioPulse
	// bit[3]		: Security
	// bit[2]		: Indirect Transmission
	// bit[1] 		: GTS Transfer
	// bit[0]		: Ack Request
	UINT8	TxOptions;
	UINT8	*pmsdu;
} MCPS_DATA_REQ;

typedef struct {
	UINT8	ScanType;
	UINT32	ScanChannels;
	UINT8	ScanDuration;
} MLME_SCAN_REQ;

typedef struct {
	UINT8	LogicalChannel;
	UINT8	CoordAddrMode;
	UINT16	CoordPanId;
	UINT16	CoordAddr[4];
	UINT8	Capability;
	UINT8	SecurityEnable;
} MLME_ASSO_REQ;

typedef struct {
	UINT8	SetDefaultPIB;
} MLME_RESET_REQ;

typedef struct {
	UINT8	PIBAttribute;
	UINT8	PIBAttributeValue[16];
} MLME_SET_REQ;

typedef struct {
	UINT8	PIBAttribute;
} MLME_GET_REQ;

typedef struct {
	UINT16	DevAddr[4];
	UINT8	DisaReason;
	UINT8	SecurityEnable;
	
	UINT8	DevAddrMode;	// Defined by ZigFest
	UINT16	DevPANId;		// Defined by ZigFest
} MLME_DISA_REQ;


//-------------------------------------------
// GTS Character
//-------------------------------------------
// bit[5] : 1=allocate, 0=deallocate
// bit[4] : 1=C2D, 0=D2C
// bit[3:0] : Slot length
//-------------------------------------------
typedef struct {
	UINT8	GTSCharacter;		
	UINT8	SecurityEnable;
} MLME_GTS_REQ;

typedef struct {
	UINT8	CoordAddrMode;
	UINT16	CoordPanId;
	UINT16	CoordAddr[4];
	UINT8	SecurityEnable;
} MLME_POLL_REQ;

typedef struct {
	UINT8	LogicalChannel;
	UINT8	TrackBeacon;
} MLME_SYNC_REQ;

typedef struct {
	UINT8	msduHandle;
} MCPS_PURGE_REQ;

typedef struct {
	UINT8	DeferPermit;
	UINT32	RxOnTime;
	UINT32	RxOnDuration;
} MLME_RX_ENA_REQ;

typedef struct {
	UINT16	DevAddr[4];
	UINT16	AssoShortAddr;
	UINT8	status;
	UINT8	SecurityEnable;
} MLME_ASSO_RSP;

typedef struct {
	UINT16	OrphanAddr[4];
	UINT16	ShortAddr;
	UINT8	AssoMember;
	UINT8	SecurityEnable;
} MLME_ORPH_RSP;

typedef struct {
	UINT8	status;
} MLME_START_CON;

typedef struct {
	UINT8	msduHandle;
	UINT8	status;
} MCPS_PURGE_CON;

typedef struct {
	UINT8	status;	
} MLME_RX_ENA_CON;

typedef struct {
	UINT8	msduHandle;
	UINT8	status;
} MCPS_DATA_CON;

typedef struct {
	UINT8	status;
	UINT8	ScanType;
	UINT32	UnscanChannel;
	UINT8	ResultSize;

	UINT8	*pEnergyList;
	S_ZIGBEE_NET	*pZNET;
} MLME_SCAN_CON;

typedef struct {
	UINT16	AssoShortAddr;
	UINT8	status;
} MLME_ASSO_CON;


typedef struct {
	UINT8	status;
} MLME_RESET_CON;

typedef struct {
	UINT8	status;
	UINT8	PIBAttribute;
} MLME_SET_CON;

typedef struct {
	UINT8	status;
	UINT8	PIBAttribute;
	UINT8	PIBAttributeValue[16];
	UINT8	PIBAttributeLength;
} MLME_GET_CON;

typedef struct {
	UINT8	status;		
} MLME_DISA_CON;

typedef struct {
	UINT8	GTSCharacter;
	UINT8	status;
} MLME_GTS_CON;

typedef struct {
	UINT8	status;	
} MLME_POLL_CON;

typedef struct {
	UINT8	SrcAddrMode;
	UINT16	SrcPanId;
	UINT16	SrcAddr[4];
	UINT8	DstAddrMode;
	UINT16	DstPanId;
	UINT16	DstAddr[4];
	UINT8	msduLength;
//	UINT8	*pmsdu;
	UINT8	msduLinkQuality;
	UINT8	SecurityUse;
	UINT8	ACLEntry;
	UINT8	*pmsdu;	
} MCPS_DATA_IND;

typedef struct {
	UINT16	DevAddr[4];
	//-- CapaInfo
	//	bit[7]	: 1=Allocate Addr. Always 1 in ZigBee 2006
	//	bit[6]	: 1=MAC Security enabled
	//	bit[5:4]	: rsv
	//	bit[3]	: 1=RxOnWhenIdle
	//	bit[2]	: 1=Mains-powered
	//	bit[1]	: 1=(Joining Device is ZR) && (JoinAsRouter=1)
	//	bit[0]	: 1=Alternative Coordinator	
	UINT8	CapaInfo;	
	UINT8	SecurityUse;
	UINT8	ACLEntry;
} MLME_ASSO_IND;

typedef struct {
	UINT16	PANId;
	UINT8	SrcAddrMode;
	UINT16	SrcAddr[4];
	UINT8	DstAddrMode;
	UINT16	DstAddr[4];
	UINT8	status;

	UINT8	ID;			// out of spec
} MLME_COMM_STA_IND;

typedef struct {
	UINT16	DevAddr[4];
	UINT8	DisaReason;
	UINT8	SecurityUse;
	UINT8	ACLEntry;
} MLME_DISA_IND;

typedef struct {
	UINT8	BSN;
	S_PANDescriptor	*pPANDes;	// stored in FLASH
	UINT8	PendAddrSpec;
	UINT8	*pAddrList;
	UINT8	sduLength;
	UINT8	*psdu;
} MLME_BEA_NOTI_IND;

typedef struct {
	UINT16	DevAddr;
	UINT8	GTSCharacter;
	UINT8	SecurityUse;
	UINT8	ACLEntry;
} MLME_GTS_IND;

typedef struct {
	UINT16	OrphanAddr[4];
	UINT8	SecurityUse;
	UINT8	ACLEntry;
} MLME_ORPH_IND;

typedef struct {
	UINT8	LossReason;
} MLME_SYNC_LOSS_IND;


typedef union {
	//////////////////////////////////////////	
	MCPS_PURGE_REQ		PURGE_REQ;
	MCPS_DATA_REQ		DATA_REQ;
	MLME_START_REQ		START_REQ;
	MLME_SCAN_REQ		SCAN_REQ;
	MLME_ASSO_REQ		ASSO_REQ;
	MLME_RESET_REQ		RESET_REQ;
	MLME_SET_REQ		SET_REQ;
	MLME_GET_REQ		GET_REQ;
	MLME_DISA_REQ		DISA_REQ;
	MLME_GTS_REQ		GTS_REQ;
	MLME_POLL_REQ		POLL_REQ;
	MLME_SYNC_REQ		SYNC_REQ;
	MLME_RX_ENA_REQ	RX_ENA_REQ;
	//////////////////////////////////////////
	MLME_ASSO_RSP		ASSO_RSP;
	MLME_ORPH_RSP		ORPH_RSP;
	//////////////////////////////////////////
	MCPS_PURGE_CON	PURGE_CON;	
	MCPS_DATA_CON		DATA_CON;
	MLME_START_CON		START_CON;
	MLME_SCAN_CON		SCAN_CON;
	MLME_ASSO_CON		ASSO_CON;
	MLME_RESET_CON		RESET_CON;
	MLME_SET_CON		SET_CON;
	MLME_GET_CON		GET_CON;
	MLME_DISA_CON		DISA_CON;
	MLME_GTS_CON		GTS_CON;
	MLME_POLL_CON		POLL_CON;
	MLME_RX_ENA_CON	RX_ENA_CON;
	//////////////////////////////////////////
	MCPS_DATA_IND		DATA_IND;
	MLME_ASSO_IND		ASSO_IND;
	MLME_DISA_IND		DISA_IND;
	MLME_GTS_IND		GTS_IND;
	MLME_ORPH_IND		ORPH_IND;
	MLME_COMM_STA_IND	COMM_STA_IND;	
	MLME_BEA_NOTI_IND	BEA_NOTI_IND;	
	MLME_SYNC_LOSS_IND	SYNC_LOSS_IND;
	////////////////////////////////////////////	
} MLDME_PACKET;


typedef struct {
	UINT8	Hlen;
	UINT8	Tlen;
	UINT8	*pPay;
} S_TxMPDU;

typedef struct {
	UINT8	Hlen;				// Head Len
	UINT8	Tlen;				// Total Len
	UINT8	FootL;				// Footer L
	UINT8	FootH;				// Footer H
	UINT8	*pPay;			
} S_RxMPDU;

typedef struct {
	UINT8	AddrMode;
	UINT8	Index;
	UINT16	Addr[4];
	UINT8	Handle;
	UINT8	TxPacket[dMAC_MAX_INDIRECT_BUFF_DEPTH];
	UINT16	ExpireTimer;
	UINT8	HLen;				// For Security
} S_PendAddrList_V2;

typedef struct
{
	UINT8	TLen;			// Total Length
	UINT8	HLen;			// Header Length
	UINT8	MLen;			// MSDU Length

	// Header
	UINT8	FC_L;
	UINT8	FC_H;
	UINT8	DSN;
	UINT8	RxOOB;
	
	UINT8	DstMode;		// 0=No, 2=Short, 3=Extended
	UINT16	DstPanID;	
	UINT16	DstShortAddr;
	UINT8	DstExtAddr[8];

	UINT8	SrcMode;
	UINT16	SrcPanID;	
	UINT16	SrcShortAddr;
	UINT8	SrcExtAddr[8];
	
	// Payload
	UINT8	MSDU[127];

	// Footer
	UINT8	FCS[2];
	UINT8	RSSI_LQI;
	INT8		RSSI_dBm;
	
} MAC_PKT;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -