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

📄 analyseframe.h

📁 基于嵌入式web服务器的web应用层代码
💻 H
字号:
#ifndef _ANALYSEFRAME_H_
#define _ANALYSEFRAME_H_

/*********************************************************************
    Filename:       analyseframe.h
    Revised:        $Date: 2007-12-11 09:53:04 -0800 $
    Revision:       $Revision: 10194 $
    
    Description:    
            
    Notes:  

*********************************************************************/

 
/*********************************************************************
 * MACROS
 */ 
 
//#define DEBUG_MODE

#define FRAME_READY								0
#define FRAME_FINISHED						1
#define FRAME_ERROR								2
#define FRAME_DOUBLE							3


/*********************************************************************/
#define MAX_QUERY_STRING_LENGTH 	250
#define MAX_FRAME_LENGTH					50 
 
#define MAX_CMD_NUMBER						25 
#define MAX_DEVICE_HEAD_LENGTH		5

//网页下发命令
#define CMD_SET_DXC_TIMESLOT			0x01			//时隙交叉配置
#define CMD_READ_DXC_TIMESLOT			0x02			//时隙交叉查询
#define CMD_SET_V35_WORKMODE			0x03			//V35工作模式配置
#define CMD_READ_V35_WORKMODE			0x04			//V35工作模式查询
//#define CMD_SET_V35_FRAMETYPE			0x05			//V35成帧模式配置
//#define CMD_READ_V35_FRAMETYPE		0x06			//V35成帧模式查询
#define CMD_SET_V35_TIMESLOT			0x05			//V35带宽配置
#define CMD_READ_V35_TIMESLOT			0x06			//V35带宽查询
#define CMD_READ_V35_ATTRIBUTE		0x09			//查询某V35盘的所有属性
#define CMD_SET_CLOCK_PRIO				0x0A			//配置时钟源优先级
#define CMD_READ_CLOCK_PRIO				0x0B			//查询时钟源优先级
#define CMD_READ_WORK_CLOCK				0x0C			//查询当前工作的时钟源
#define CMD_READ_CLOCK_INFO				0x0D			//查询时钟相关所有信息
#define CMD_SET_FE_UP_BAND				0x10			//设置FE盘的上链口带宽
#define CMD_READ_FE_UP_BAND				0x11			//查询FE盘的上链口带宽
#define CMD_SET_FE_PORT_BAND			0x12			//设置各FE端口的带宽
#define CMD_READ_FE_PORT_BAND			0x13			//查询各FE端口的带宽
#define CMD_SET_VLAN_MODE					0x14			//VLAN方式选择
#define CMD_READ_VLAN_MODE				0x15			//VLAN方式查询
#define CMD_SET_VLAN_GROUP				0x16			//VLAN分组配置
#define CMD_READ_VLAN_GROUP				0x17			//VLAN分组查询
#define CMD_SET_VLAN_TAG					0x18			//VLAN的分组TAG值配置(只有在基于TAG方式下)
#define CMD_READ_VLAN_TAG					0x19			//VLAN的分组TAG值查询
#define CMD_READ_WORK_BOARD				0x20			//查询设备的实际插盘
#define CMD_SET_PHONE_NUMBER			0x21			//配置设备公务电话号码
#define CMD_READ_PHONE_NUMBER			0x22			//查询设备公务电话号码

#define CMD_SET_LOOP							0x30			//端口环回配置
#define CMD_READ_LOOP							0x31			//端口环回配置查询
#define CMD_SET_OPT_SWITCH				0x32			//光口强制倒换
#define CMD_READ_OPT_SWITCH				0x37			//读取光口强制倒换状态
#define CMD_SET_OPT_ENABLE				0x33			//光口激光器使能
#define CMD_READ_OPT_ENABLE				0x34			//光口激光器使能查询

#define CMD_SET_SYSTEM_TIME				0x4E			//设置系统时间
#define CMD_READ_MCU_VERSION			0x4F			//读取MCU软件版本号
#define CMD_READ_DEVICE_TYPE			0x7F			//读取设备类型

#define CMD_READ_ALARM						0x51			//查询设备告警
#define CMD_SET_ALARM_MASK				0x52			//设置告警屏蔽信息
#define CMD_READ_ALARM_MASK				0x53			//查询告警屏蔽信息
#define CMD_SET_ALARM_LEVEL				0x54			//设置告警级别
#define CMD_READ_EVENT						0x55			//查询设备事件


//收到应答命令
#define CMD_ACK_OFFSET						0x80
#define CMD_ACK_SET_DXC_TIMESLOT			(CMD_ACK_OFFSET+CMD_SET_DXC_TIMESLOT)				//时隙交叉配置
#define CMD_ACK_READ_DXC_TIMESLOT			(CMD_ACK_OFFSET+CMD_READ_DXC_TIMESLOT)			//时隙交叉查询
#define CMD_ACK_SET_V35_WORKMODE			(CMD_ACK_OFFSET+CMD_SET_V35_WORKMODE)				//V35工作模式配置
#define CMD_ACK_READ_V35_WORKMODE			(CMD_ACK_OFFSET+CMD_READ_V35_WORKMODE)			//V35工作模式查询
//#define CMD_ACK_SET_V35_FRAMETYPE			(CMD_ACK_OFFSET+CMD_SET_V35_FRAMETYPE)			//V35成帧模式配置
//#define CMD_ACK_READ_V35_FRAMETYPE		(CMD_ACK_OFFSET+CMD_READ_V35_FRAMETYPE)			//V35成帧模式查询
#define CMD_ACK_SET_V35_TIMESLOT			(CMD_ACK_OFFSET+CMD_SET_V35_TIMESLOT)				//V35带宽配置
#define CMD_ACK_READ_V35_TIMESLOT			(CMD_ACK_OFFSET+CMD_READ_V35_TIMESLOT)			//V35带宽查询
#define CMD_ACK_READ_V35_ATTRIBUTE		(CMD_ACK_OFFSET+CMD_READ_V35_ATTRIBUTE)			//查询某V35盘的所有属性
#define CMD_ACK_SET_CLOCK_PRIO				(CMD_ACK_OFFSET+CMD_SET_CLOCK_PRIO)					//配置时钟源优先级
#define CMD_ACK_READ_CLOCK_PRIO				(CMD_ACK_OFFSET+CMD_READ_CLOCK_PRIO)				//查询时钟源优先级
#define CMD_ACK_READ_WORK_CLOCK				(CMD_ACK_OFFSET+CMD_READ_WORK_CLOCK)				//查询当前工作的时钟源
#define CMD_ACK_READ_CLOCK_INFO				(CMD_ACK_OFFSET+CMD_READ_CLOCK_INFO)				//查询时钟相关所有信息
#define CMD_ACK_SET_FE_UP_BAND				(CMD_ACK_OFFSET+CMD_SET_FE_UP_BAND)					//设置FE盘的上链口带宽
#define CMD_ACK_READ_FE_UP_BAND				(CMD_ACK_OFFSET+CMD_READ_FE_UP_BAND)				//查询FE盘的上链口带宽
#define CMD_ACK_SET_FE_PORT_BAND			(CMD_ACK_OFFSET+CMD_SET_FE_PORT_BAND)				//设置各FE端口的带宽
#define CMD_ACK_READ_FE_PORT_BAND			(CMD_ACK_OFFSET+CMD_READ_FE_PORT_BAND)			//查询各FE端口的带宽
#define CMD_ACK_SET_VLAN_MODE					(CMD_ACK_OFFSET+CMD_SET_VLAN_MODE)					//VLAN方式选择
#define CMD_ACK_READ_VLAN_MODE				(CMD_ACK_OFFSET+CMD_READ_VLAN_MODE)					//VLAN方式查询
#define CMD_ACK_SET_VLAN_GROUP				(CMD_ACK_OFFSET+CMD_SET_VLAN_GROUP)					//VLAN分组配置
#define CMD_ACK_READ_VLAN_GROUP				(CMD_ACK_OFFSET+CMD_READ_VLAN_GROUP)				//VLAN分组查询
#define CMD_ACK_SET_VLAN_TAG					(CMD_ACK_OFFSET+CMD_SET_VLAN_TAG)						//VLAN的分组TAG值配置(只有在基于TAG方式下)
#define CMD_ACK_READ_VLAN_TAG					(CMD_ACK_OFFSET+CMD_READ_VLAN_TAG)					//VLAN的分组TAG值查询
#define CMD_ACK_READ_WORK_BOARD				(CMD_ACK_OFFSET+CMD_READ_WORK_BOARD)				//查询设备的实际插盘
#define CMD_ACK_SET_PHONE_NUMBER			(CMD_ACK_OFFSET+CMD_SET_PHONE_NUMBER)				//配置设备公务电话号码
#define CMD_ACK_READ_PHONE_NUMBER			(CMD_ACK_OFFSET+CMD_READ_PHONE_NUMBER)			//查询设备公务电话号码

#define CMD_ACK_SET_LOOP							(CMD_ACK_OFFSET+CMD_SET_LOOP)								//端口环回配置
#define CMD_ACK_READ_LOOP							(CMD_ACK_OFFSET+CMD_READ_LOOP)							//端口环回配置查询
#define CMD_ACK_SET_OPT_SWITCH				(CMD_ACK_OFFSET+CMD_SET_OPT_SWITCH)					//光口强制倒换
#define CMD_ACK_READ_OPT_SWITCH				(CMD_ACK_OFFSET+CMD_READ_OPT_SWITCH)				//读取光口强制倒换状态
#define CMD_ACK_SET_OPT_ENABLE				(CMD_ACK_OFFSET+CMD_SET_OPT_ENABLE)					//光口激光器使能
#define CMD_ACK_READ_OPT_ENABLE				(CMD_ACK_OFFSET+CMD_READ_OPT_ENABLE)				//光口激光器使能查询

#define CMD_ACK_SET_SYSTEM_TIME				(CMD_ACK_OFFSET+CMD_SET_SYSTEM_TIME)				//设置系统时间
#define CMD_ACK_READ_MCU_VERSION			(CMD_ACK_OFFSET+CMD_READ_MCU_VERSION)				//读取MCU软件版本号
#define CMD_ACK_READ_DEVICE_TYPE			(CMD_ACK_OFFSET+CMD_READ_DEVICE_TYPE)				//读取设备类型

#define CMD_ACK_READ_ALARM						(CMD_ACK_OFFSET+CMD_READ_ALARM)							//查询设备告警
#define CMD_ACK_SET_ALARM_MASK				(CMD_ACK_OFFSET+CMD_SET_ALARM_MASK)					//设置告警屏蔽信息
#define CMD_ACK_READ_ALARM_MASK				(CMD_ACK_OFFSET+CMD_READ_ALARM_MASK)				//查询告警屏蔽信息
#define CMD_ACK_SET_ALARM_LEVEL				(CMD_ACK_OFFSET+CMD_SET_ALARM_LEVEL)				//设置告警级别
#define CMD_ACK_READ_EVENT						(CMD_ACK_OFFSET+CMD_READ_EVENT)							//查询设备事件





/*********************************************************************/
#define MAIN_BOARD								20
#define NO_BOARD									0
#define E1_BOARD									1
#define V35_BOARD									2
#define FE_BOARD									3
#define OPT_BOARD									5
#define PWR_BOARD									6

/*********************************************************************/
#define ALM_ID_E1_LOS							0x01

#define ALM_ID_V35_LOS						0x11
#define ALM_ID_V35_AIS						0x12
#define ALM_ID_V35_LOF						0x13
#define ALM_ID_V35_CV							0x14

#define ALM_ID_OPT_LOS						0x21
#define ALM_ID_OPT_LOF						0x22
#define ALM_ID_OPT_E3							0x23
#define ALM_ID_OPT_E6							0x24

#define ALM_ID_PWR_ERR						0x70


//告警消失ID号
#define DIS_ALM_ID_E1_LOS					(ALM_ID_E1_LOS+0x80)

#define DIS_ALM_ID_V35_LOS				(ALM_ID_V35_LOS+0x80)
#define DIS_ALM_ID_V35_AIS				(ALM_ID_V35_AIS+0x80)
#define DIS_ALM_ID_V35_LOF				(ALM_ID_V35_LOF+0x80)
#define DIS_ALM_ID_V35_CV					(ALM_ID_V35_CV+0x80)

#define DIS_ALM_ID_OPT_LOS				(ALM_ID_OPT_LOS+0x80)
#define DIS_ALM_ID_OPT_LOF				(ALM_ID_OPT_LOF+0x80)
#define DIS_ALM_ID_OPT_E3					(ALM_ID_OPT_E3+0x80)
#define DIS_ALM_ID_OPT_E6					(ALM_ID_OPT_E6+0x80)

#define DIS_ALM_ID_PWR_ERR				0xF1


/*********************************************************************/
#define EVENT_ID_B1								1					//B1越限
#define EVENT_ID_B2								2					//B2越限
#define EVENT_ID_B3								3					//B3越限
#define EVENT_ID_B5								4					//B5越限
#define EVENT_ID_ES								5					//ES越限
#define EVENT_ID_SES							6					//SES越限
#define EVENT_ID_UAS							7					//UAS越限
#define EVENT_ID_REI							8					//REI越限
#define EVENT_ID_PJC_P						9					//PJC+越限
#define EVENT_ID_PJC_M						10				//PJC-越限
#define EVENT_ID_OPT_SW						11				//光口倒换
#define EVENT_ID_CLK_SW						12				//时钟源切换


/*********************************************************************/
#define CLOCK_ID_OPT1							1					//光口1
#define CLOCK_ID_OPT2							2					//光口2
#define CLOCK_ID_PORT_OPT1				3					//支路光口1
#define CLOCK_ID_PORT_OPT2				4					//支路光口2
#define CLOCK_ID_BOARD1_PORT1			5					//盘号1对应支路1
#define CLOCK_ID_BOARD1_PORT2			6					//盘号1对应支路2
#define CLOCK_ID_BOARD1_PORT3			7					//盘号1对应支路3
#define CLOCK_ID_BOARD1_PORT4			8					//盘号1对应支路4
#define CLOCK_ID_BOARD2_PORT1			9					//盘号2对应支路1
#define CLOCK_ID_BOARD2_PORT2			10				//盘号2对应支路2
#define CLOCK_ID_BOARD2_PORT3			11				//盘号2对应支路3
#define CLOCK_ID_BOARD2_PORT4			12				//盘号2对应支路4
#define CLOCK_ID_BOARD3_PORT1			13				//盘号3对应支路1
#define CLOCK_ID_BOARD3_PORT2			14				//盘号3对应支路2
#define CLOCK_ID_BOARD3_PORT3			15				//盘号3对应支路3
#define CLOCK_ID_BOARD3_PORT4			16				//盘号3对应支路4
#define CLOCK_ID_BOARD4_PORT1			17				//盘号4对应支路1
#define CLOCK_ID_BOARD4_PORT2			18				//盘号4对应支路2
#define CLOCK_ID_BOARD4_PORT3			19				//盘号4对应支路3
#define CLOCK_ID_BOARD4_PORT4			20				//盘号4对应支路4
#define CLOCK_ID_FREE							21				//本振
#define CLOCK_ID_EXT_CLOCK				22				//外时钟



 
/*********************************************************************
 * TYPEDEFS
 */

typedef struct
{	
	unsigned char head[4];
	unsigned char dst_addr[3];
	unsigned char src_addr[3];
	unsigned char net_id;
	unsigned char cmd_index;
	unsigned char cmd_code_send;
	unsigned char cmd_code_recv;
	unsigned short int info_length;
	unsigned char frame_info[MAX_FRAME_LENGTH];
	unsigned char check_sum;
}cmd_frame_t;
 
typedef struct
{
	const char *cmd_name;
	unsigned char cmd_set;
	unsigned char cmd_read;
	//const char *cmd_table;
}cmd_type_t; 
 
typedef struct
{
	unsigned char device_id;
	unsigned char board_num;
	unsigned char port_num;
	unsigned char success_flag;
	
	unsigned char src_board;								//时隙交叉查询
	unsigned char src_port;
	unsigned char src_timeslot;
	
	unsigned char mode_type;								//V35工作模式查询
	unsigned char work_mode;
	
	unsigned char down_timeslot;						//V35带宽查询
	
	unsigned char board_main_clk[4];				//查询某V35盘的所有属性
	unsigned char board_work_mode[4];
	unsigned char board_work_rxp[4];
	unsigned char board_work_txp[4];
	unsigned char board_work_clk[4];
	unsigned char board_down_timeslot[4];
	
	unsigned char clock_prio[10];						//查询时钟源优先级
	
	unsigned char work_clk;									//查询当前工作的时钟源
	unsigned char work_clk_state;
	
																					//查询时钟相关所有信息
	
	unsigned char up_band;									//查询FE盘的上链口带宽
	
	unsigned char port_band;								//查询各FE端口的带宽
	
	unsigned char vlan_mode;								//VLAN方式查询
	
	unsigned char vlan_port[4];							//VLAN分组查询
	
	unsigned char vlan_tag[2];							//VLAN的分组TAG值查询
	
	unsigned char board_type[4];						//查询设备的实际插盘
	
	unsigned char telephone_number;					//查询设备公务电话号码
	
	unsigned char loop_flag;								//端口环回查询
	
	unsigned char switch_flag;							//读取光口强制倒换状态
	
	unsigned char opt_enable[2];						//光口激光器使能查询
	
	unsigned char version[4];								//读取MCU软件版本号
	
	unsigned char device_type[4];						//读取设备类型
	
	unsigned char alarm_board[20];					//查询设备告警	//查询告警屏蔽信息
	unsigned char alarm_port[20];
	unsigned char alarm_id[20];
	unsigned char event_id[20];							//查询设备事件
	
	
}info_frame_t;
 
typedef struct
{
	const char *name;
	unsigned char value;
}clk_type_t;


 
/*********************************************************************
 * EXTERNAL VARIABLES
 */ 
extern char query_string_data[MAX_QUERY_STRING_LENGTH]; 
extern info_frame_t info_frame; 
extern cmd_frame_t cmd_frame;
 
 
 


/*********************************************************************
 * EXTERNAL FUNCTIONS
 */

extern void operate_query_string(char *string);
extern void analysis_web_cmd(char *string);
extern unsigned char check_frame_info(char *string_info);
extern unsigned char check_frame_info2(char *string_info);

extern void make_normal_frame(void);
extern void receive_normal_frame(void);
extern void save_cmd(void);
extern void frame_process(void);







#endif

⌨️ 快捷键说明

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