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

📄 frame_format.h

📁 Zigbee的nesc源码
💻 H
字号:
/*
 * @author IPP HURRAY http://www.hurray.isep.ipp.pt/art-wise
 * @author Andre Cunha
 */

//MAC frame Superstructure

#define MPDU_HEADER_LEN 5

typedef struct MPDU
{
	uint8_t length;
	//info on frame type/ack/etc
	uint8_t frame_control1;
	//info on addressing fields
	uint8_t frame_control2;
	//uint16_t frame_control;
	uint8_t seq_num;
	uint8_t data[120];
}MPDU;
/*
typedef struct MPDU_b
{
	uint8_t length;
	uint8_t frame_control1;
	uint8_t frame_control2;
	uint8_t seq_num;
	uint8_t data[121];
}MPDU_b;
*/
typedef struct MPDUBuffer
{
	uint8_t length;
	//uint16_t frame_control;
	uint8_t frame_control1;
	uint8_t frame_control2;
	uint8_t seq_num;
	uint8_t data[120];
	uint8_t retransmission;
	uint8_t indirect;
}MPDUBuffer;

/*****************************************************/
/*				BEACON FRAME SCTRUCTURES			 */
/*****************************************************/

//#define beacon_addr_short_length 7
//#define beacon_addr_long_length 12

/*
typedef struct beacon_addr_short
{
	uint16_t source_PAN_identifier;
	uint16_t destination_address;
	uint16_t source_address;
	uint16_t superframe_specification;
}beacon_addr_short;
*/
typedef struct beacon_addr_short
{
	uint16_t destination_PAN_identifier;
	uint16_t destination_address;
	uint16_t source_address;
	uint16_t superframe_specification;
}beacon_addr_short;
/*
typedef struct beacon_struct
{
	uint8_t length;
	uint16_t frame_control;
	uint8_t seq_num;
	uint16_t source_PAN_identifier;
	uint16_t destination_address;
	uint16_t source_address;
	uint16_t superframe_specification;
}beacon_struct;
*/
/*
typedef struct beacon_addr_long
{
	uint16_t source_PAN_identifier;
	uint32_t source_address0;
	uint32_t source_address1;
	uint16_t superframe_specification;
}beacon_addr_long;
*/
/*****************************************************/
/*				ACK FRAME Structures 				 */
/*****************************************************/

typedef struct ACK
{
	uint8_t length;
	uint8_t frame_control1;
	uint8_t frame_control2;
	//uint16_t frame_control;
	uint8_t seq_num;
}ACK;

/*****************************************************/
/*				COMMAND FRAME Structures 			 */
/*****************************************************/

typedef struct cmd_association_request
{
	uint8_t command_frame_identifier;
	uint8_t capability_information;
}cmd_association_request;

typedef struct cmd_association_response
{
	uint8_t command_frame_identifier;
	uint8_t short_address1;
	uint8_t short_address2;
	//uint16_t short_address;
	uint8_t association_status;
}cmd_association_response;

//disassociacion notification command structure pag. 126
typedef struct cmd_disassociation_notification
{
	uint16_t destination_PAN_identifier;
	uint32_t destination_address0;
	uint32_t destination_address1;
	uint16_t source_PAN_identifier;
	uint32_t source_address0;
	uint32_t source_address1;
	uint8_t command_frame_identifier;
	uint8_t disassociation_reason;
}cmd_disassociation_notification;

//pag 130
typedef struct cmd_beacon_request
{
	uint16_t destination_PAN_identifier;
	uint16_t destination_address;
	uint8_t command_frame_identifier;
}cmd_beacon_request;


//pag 132
typedef struct cmd_gts_request
{
	uint16_t source_PAN_identifier;
	uint16_t source_address;
	uint8_t command_frame_identifier;
	uint8_t gts_characteristics;
}cmd_gts_request;

/*******************************************************/
/*     			ADDRESSING FIELDS ONLY				   */
/*******************************************************/
#define DEST_SHORT_LEN 4
#define DEST_LONG_LEN 10
#define INTRA_PAN_SOURCE_SHORT_LEN 2
#define INTRA_PAN_SOURCE_LONG_LEN 8
#define SOURCE_SHORT_LEN 4
#define SOURCE_LONG_LEN 10


//DESTINATION
typedef struct dest_short
{
	uint16_t destination_PAN_identifier;
	uint16_t destination_address;
}dest_short;

typedef struct dest_long
{
	uint16_t destination_PAN_identifier;
	uint32_t destination_address0;
	uint32_t destination_address1;
}dest_long;

//SOURCE
typedef struct intra_pan_source_short
{
	uint16_t source_address;
}intra_pan_source_short;

typedef struct intra_pan_source_long
{
	uint32_t source_address0;
	uint32_t source_address1;
}intra_pan_source_long;


typedef struct source_short
{
	uint16_t source_PAN_identifier;
	uint16_t source_address;
}source_short;


typedef struct source_long
{
	uint16_t source_PAN_identifier;
	uint32_t source_address0;
	uint32_t source_address1;
}source_long;

⌨️ 快捷键说明

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