📄 analyseframe.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 + -