/*******************************************************************************
版权所有：	
版本号：    1.00 
文件名：    set.h
生成日期：  2005.4.18 
作者：      
功能说明：定值
	
修改日志：  
日志1：           
修改者：    
修改日期：
修改内容：
修改原因：
****************************************************************************/
#ifndef __SET_H
#define __SET_H
/*------------------------------- 头文件 --------------------------------------
*/
#include "switch.h"
#include "record.h"

/*------------------------------- 宏定义 --------------------------------------
*/
#define  SAM_FREQUENCY          (SAMFREQ*50) 		// 采样频率,中断计数值=时间*采样频率/1000

#ifdef defined GD_AREA_ZHONGSHAN || defined GD_AREA_ZHONGSHAN_2020
	#define MAX_SET_NUMBER 			500		// 最大定值个数
#else
	#define MAX_SET_NUMBER 			2000		// 最大定值个数 注意开关定值+公共定值不能超过这个
#endif

#ifdef SEC_SETVALUE_7
	#define SEC_NUMBER 				7        			// 定值区个数
#elif  defined SEC_SETVALUE_4
	#define SEC_NUMBER 				4       			// 定值区个数
#else
	#define SEC_NUMBER 				5        			// 定值区个数
#endif

#define SETSIZE           		(MAX_SET_NUMBER*4)	// 每个定值区的大小（目前按照6个开关定值+1个公共定值计算）

#ifdef PUB_SET_SECTION
#define MAX_PUBSET_NUMBER		100						// 最大公共定值个数(公共定值新增备用定值，超过原60)
#define PUB_SETSIZE				(MAX_PUBSET_NUMBER*4)	// 每个定值区=320字节
#else
#define PUB_SETSIZE				0	// 为0的时候 代表公共定值只有1个 不在定值区概念里面管辖
#endif	

#define	PRO_RET_TIME   			(T_10ms)			//保护动作TIMER返回时间
#define	WRN_RET_TIME     		(T_1s)				//告警TIMER返回时间

#define MAX_AR_TIMES            3         			// 最大重合次数

#define  TBLQDDSMK              5                   //突变量连续起动点数
#define  QTQDTIME               SAMFREQ             //IA、IB、IC、I0或Ij启动时间,往前推一个周波

enum
{
    LCD_TYPE_6KEY = 0,     // 6键液晶
    LCD_TYPE_160160 = 160, // 160 7键
    LCD_TYPE_12232 = 122,  // 122*32液晶
    LCD_TYPE_12864 = 64,   // 128*64液晶
    LCD_TYPE_128128 = 128, // 128*128液晶
    LCD_TYPE_160_KEY9 = 9, // 160160液晶 9键 (南网最新标准)
};

enum
{
    LINE_TYPE_FD = 1, // 线路类型 分段
    LINE_TYPE_LL,     // 线路类型 联络
    LINE_TYPE_FZ,     // 线路类型 分支
    LINE_TYPE_BH,     // 线路类型 保护
    LINE_TYPE_JZ,     // 线路类型 集中
};

enum
{
    SETGROUP_TYPE_BH = 0,
    SETGROUP_TYPE_PUB,
    SETGROUP_TYPE_PARA,
    SETGROUP_TYPE_CSTSET,
    SETGROUP_TYPE_AZ, // 安自
#ifdef GD_AREA_ECZD_2020
    SETGROUP_TYPE_TQ,
    SETGROUP_TYPE_JL,
#endif
    SETGROUP_TYPE_BY, // 此枚举量此前暂未使用,22.3.22 lcd_menu中新增硬压板遥调点功能(#define FUNC_YT_HARD_YB)借用此量,后续有其他使用时注意影响
};

enum
{
    SET_HYB_BH = 1, // 定值显示与硬压板关联 定值
    SET_HYB_FA,
    SET_HYB_GOOSE,
#ifdef GD_AREA_ECZD_2020
    SET_HYB_TQ,
    SET_HYB_JL,
#endif
};

enum
{
    PAR_ID_TYPE_BH = 0, // 常规保护，断路器
    PAR_ID_TYPE_FA,     // 电压时间型，负荷开关
    // PAR_ID_TYPE_GOOSE,	//智能分布式
    PAR_ID_TYPE_PUB,

    PAR_ID_TYPE_NULL = 0XFF,
};

enum
{
	GROUP_SET_BY = 0,			// 备用组号，默认为0 ，维护工具判断组号为0 ，默认是展开的，和现在的处理模式不太匹配，定义一个为0的组号，不使用
    // 线路定值
    GROUP_SET_YB_GN = 1, // 功能软压板
    GROUP_SET_YB_YX,     // 运行软压板
    GROUP_SET_BHTT,      // 常规保护控制字
    GROUP_SET_BHDZ,      // 常规保护定值
    GROUP_SET_CHZKZ,     // 自动重合闸控制字
    GROUP_SET_CHZDZ,     // 自动重合闸定值
    GROUP_SET_FAYB,      // 就地馈线自动化软压板
    GROUP_SET_FATT,      // 就地馈线自动化控制字
    GROUP_SET_FADZ,      // 就地馈线自动化定值
    GROUP_SET_GOOSETT,   // 智能分布式控制字
    GROUP_SET_GOOSEDZ,   // 智能分布式定值
    GROUP_SET_TQHZ,      // 同期合闸定值
    GROUP_SET_JLTT,      // 自动解列控制字
    GROUP_SET_JLDZ,      // 自动解列定值
#ifdef XDL_ZT
    GROUP_SET_XDLJDTT, // 小电流接地控制字
    GROUP_SET_XDLJDDZ, // 小电流接地定值
#elif defined FUN_JDXX
    GROUP_SET_XDLJD, // 小电流接地
#endif
    GROUP_SET_LA, // 线路断线告警
#ifdef FUNC_DRIVE
    GROUP_SET_BTDCD, // 传动开关定值
#endif
#ifdef FUNC_DRIVE_JY
    GROUP_SET_DRIVE, // 传动功能
#endif
    GROUP_SET_FSX,    // 反时限保护
    GROUP_SET_DLYX,   // 电流越限
    GROUP_SET_RECORD, // 录波
    GROUP_SET_SWSET,  // 辅助定值
#ifdef CUSTOMIZE_BZT
    GROUP_SET_BZT, // 备自投
#endif

    // 公共定值
    GROUP_SET_EQPPARA,    // 设备参数
    GROUP_SET_SCT,        // 定值区
    GROUP_SET_PUBYB,      // 运行软压板
    GROUP_SET_PUBSET,     // 电压参数
    GROUP_SET_FDL,        // 非电量保护
    GROUP_SET_OTHERS_PUB, // 其它

    // 装置参数
    GROUP_PARA_PROTOCAL, // 规约参数
    GROUP_PARA_LINK,     // 104子站通信
    GROUP_PARA_SERIAL,   // 串行口通道
    GROUP_PARA_ETHERNET, // 以太网通道
    GROUP_PARA_TIME,     // 对时
    GROUP_PARA_BATTERY,  // 电池管理
    GROUP_PARA_RMT,      // 远动参数
    GROUP_PARA_OTHERS,   // 其它
#ifdef FUN_FUXI_ESAM
    GROUP_PARA_S1, // 南网加密配置
#endif
#ifdef METERING_ENERGY
    GROUP_PARA_HISFILE, // 历史文件
#endif

    // 内部定值
    GROUP_CSTSET_PROTECT, // 保护功能
    GROUP_CSTSET_CALC,    // 计算功能
    GROUP_CSTSET_COMM,    // 通讯功能
    GROUP_CSTSET_FA,      // 馈线自动化
    GROUP_CSTSET_RECORD,  // 录波功能
    GROUP_CSTSET_OTHERS,  // 辅助定值

    GROUP_NUM, // 索引个数
};

typedef struct BH_SET_GROUP
{
    u8 group;     // 显示组定义
    u8 defval;    // 默认值
    u8 set_yb;    // 关联压板
    u8 group_sub; // 显示组子类
    const char *group_name;
    const char *item_name;

} BH_SET_GROUP;

// 反时限类型
enum
{
    FE_NULL = 0,
    FE_VI,
    FE_VIT,
    FE_AUTO
};

// 反时限类型
enum
{
    RVS_STD = 0, // 标准反时限
    RVS_VERY,    // 非常反时限
    RVS_EXT,     // 极端反时限
    RVS_NUM
};

// 零序电流类型
enum
{
    TA0_100A = 0, // 零序TA量程100A
    TA0_20A,      // 零序TA量程20A
    TA0_5A,       // 零序TA量程5A
    TA0_1A,       // 零序TA量程1A
    TA0_NUM
};

// 相电流类型
enum
{
    TA_5A = 0, // TA5A
    TA_1A,     // TA1A
    TA_NUM
};

// 电压类型
enum
{
    TV_100V = 0,
    TV_220V,
    TV_NUM
};

// 规约类型
enum
{
    PROTOCOL_101 = 0,
    PROTOCOL_101_PH,
    PROTOCOL_104,
    PROTOCOL_101_M,
    PROTOCOL_101_PH_M,
    PROTOCOL_MODBUS,
#if !defined CPU_FUXI
    PROTOCOL_FAULT,
    PROTOCOL_HMI,
#endif
    PROTOCOL_MAINTAIN,
    PROTOCOL_GPS,
    PROTOCOL_AUTHOR_BL,
    PROTOCOL_IDLE, // 空闲，通过通讯子站级联时使用
#ifdef BATTERY_WITH_COMM
    PROTOCOL_POWER_MOD, // 兴通力电源模块通讯
#ifdef FUNC_SEL_BAT_MODULE
    PROTOCOL_PWRM,
#endif
#endif
    PROTOCOL_NULL,
#ifdef FUNC_ENCRY_IN_ONE_SERIAL
    PROTOCOL_WED_ENC, // 纬德规约
#endif
};

// 定值类型
enum ESETTYPE
{
    SETTYPE_KG = 0, // 控制字
    SETTYPE_LIST,   // 列表选择
    SETTYPE_F,      // 浮点数
    SETTYPE_UINT,   // 无符号整型
    SETTYPE_5INT,   // 有符号整型
    SETTYPE_LINT,   // 长整型
    SETTYPE_IP,     // IP地址
    SETTYPE_YMD,    // 年月日
    SETTYPE_HMS,    // 时分秒
    SETTYPE_4INT,   // 4字节整型
    SETTYPE_LABEL,  // 标签类，工具分类显示用，没有实际意义
    SETTYPE_6INT,   // 整型值
};

// 定值单位显示
enum ESETUNIT
{
    SET_NULL = 0,
    SET_U,     // 电压
    SET_A,     // 电流
    SET_S,     // 时间
    SET_D,     // 时间 天
    SET_PER,   //%
    SET_ANG,   // 度
    SET_W,     // 有功
    SET_VAR,   // 无功
    SET_H,     // 16进制
    SET_HOUR,  // 小时
    SET_kV,    // 电压      kV
    SET_MS,    // 时间  ms
    SET_MIN,   // 时间  分钟
    SET_HZ,    // Hz
    SET_PERUN, // ％Un
    SET_HZ_S,  // Hz/s
    SET_U_S,   // V/s
};

enum
{
    SET_OK = 0,
    SET_ERR
};

enum // 开关类型
{
    SW_TCZW = 0, // 弹操断路器
    SW_FZW28,
    SW_VSP5,
    SW_YCZW, // 永磁断路器
};

enum
{
    XDL_QD_U0 = 0, // 零序电压启动
    XDL_QD_I0,     // 零序电流启动
};

// 线路定值
enum
{
    SET_LABLE_YB_GN = 0, // 列表名 功能软压板
    SET_BH_YBTT,         // 常规保护投入
    SET_CHZ_YB,          // 自动重合闸投入
    SET_FA_YBTT,         // 就地馈线自动化投入
    SET_GOOSE_YBTT,      // 智能分布式投入
#ifdef JZS_FUNCTION
    SET_MODE_JZS_TT, // 集中模式压板
#endif
    SET_TQ_YB,    // 同期合闸投入
    SET_JL_YB,    // 自动解列投入
    SET_XDL_YB,   // 小电流接地保护投入
    SET_LA_YB,    // 线路断线告警投入
    SET_TRASW_YB, // 不停电传动投入

    SET_LABLE_YB_YX, // 列表名 运行软压板
    SET_BH_YB,       // 自动化功能总投退软压板
    SET_KZ_OUT_YB,   // 自动化功能总出口软压板
    SET_RECS_YB,     // 重合闸软压板
#ifdef YK_SOFT_YB
    SET_YK_YBTT, // 遥控软压板
#endif

    // 过流保护
    SET_LABLE_BHTT, // 列表名 常规保护控制字
    SET_GL1_TT,     // 过流Ⅰ段投入
    SET_GL2_TT,     // 过流Ⅱ段投入
    SET_GL3_TT,     // 过流Ⅲ段投入
    SET_GL1_DIR,    // 过流Ⅰ段投方向
    SET_GL2_DIR,    // 过流Ⅱ段投方向
    SET_GL3_DIR,    // 过流Ⅲ段投方向
    SET_BH_PTDX,    // PT断线检测投入
    SET_LX1_TT,     // 零序过流Ⅰ段投入
    SET_LX2_TT,     // 零序过流Ⅱ段投入
    SET_LX3_TT,     // 零序过流Ⅲ段投入
    SET_3U0_TT,     // 零序过电压保护
    SET_GLJS_TT,    // 后加速保护投入
    SET_CH_GL_TT,   // 过流保护启动重合闸
    SET_CH_JD_TT,   // 零序过流保护启动重合闸
    SET_BH_XBBS_TT, // 涌流识别投入
    SET_BH_DLBS_TT, // 非遮断保护投入

    SET_LABLE_BHDZ, // 列表名 常规保护整定值
    SET_GL1_I,      // 过流Ⅰ段定值
    SET_GL1_T,      // 过流Ⅰ段时间
    SET_GL2_I,      // 过流Ⅱ段定值
    SET_GL2_T,      // 过流Ⅱ段时间
    SET_GL3_I,      // 过流Ⅲ段定值
    SET_GL3_T,      // 过流Ⅲ段时间
    SET_LX1_I,      // 零序过流Ⅰ段定值
    SET_LX1_T,      // 零序过流Ⅰ段时间
    SET_LX2_I,      // 零序过流Ⅱ段定值
    SET_LX2_T,      // 零序过流Ⅱ段时间
    SET_LX3_I,      // 零序过流Ⅲ段定值
    SET_LX3_T,      // 零序过流Ⅲ段时间
    SET_U0_U,       // 零序过电压保护定值
    SET_U0_T,       // 零序过电压保护时间
    SET_JSOPEN_T,   // 加速段保护开放时间
    SET_GLJS_I,     // 后加速过流保护定值
    SET_GLJS_T,     // 后加速过流保护时间
    SET_LXJS_I,     // 后加速零序电流保护定值
    SET_LXJS_T,     // 后加速零序电流保护时间
    SET_BH_XBCOE,   // 二次谐波闭锁系数
    SET_BH_DLBS_I,  // 非遮断电流定值

    SET_LABLE_CHZ_KZZ, // 列表名 自动重合闸控制字
    SET_CH1_TT,        // 一次重合闸投入
    SET_CH2_TT,        // 二次重合闸投入
#ifdef DISP_SET_CH_T3
    SET_CH3_TT, // 三次重合闸投入
#endif
    SET_CH_TQ,      // 重合检同期
    SET_CH_WY,      // 重合检无压
    SET_CH_WY_TYPE, // 重合检无压方式 0母有线无 1母无线有 2两侧无压
    SET_CH_DLBS_TT, // 大电流闭锁重合投入
    SET_TTCH_TT,    // 偷跳启动重合闸

    SET_LABLE_CHZ_DZ, // 列表名 自动重合闸定值
    SET_CHZ_OPEN,     // 重合闸开放时间
#ifdef FUNC_CHZ_CHARGE_TIME
    SET_CHZCD,        // 重合闸充电时间
#else
    SET_CHZCD_1, // 单词重合充电时间
    SET_CHZCD_2, // 多次重合充电时间
#endif
    SET_CH_T1,        // 一次重合闸时间
    SET_CHBS_T,       // 二次重合闸闭锁时间
    SET_CH_T2,        // 二次重合闸时间
#ifdef DISP_SET_CH_T3
    SET_CH_T3, // 三次重合闸时间
#endif
    SET_CH_DLBS_I,  // 大电流闭锁重合闸定值

    // 就地馈线自动化
    SET_LABLE_FARYB, // 列表名 就地馈线自动化软压板
    SET_SL_TT,       // 分段、联络

    SET_LABLE_FATT, // 列表名 就地馈线自动化控制字
    SET_P_YY_TT,    // 电源侧得电延时合闸
    SET_L_YY_TT,    // 负荷侧得电延时合闸
    SET_P_WY_TT,    // A侧失电延时合闸
    SET_L_WY_TT,    // B侧失电延时合闸
    SET_GZCHECK_TT, // 合到故障分闸
    SET_BSTZ_TT,    // 短时失压闭锁分闸
    SET_FA_GL2_TT,  // 相间过流告警投入
    SET_FA_LX2_TT,  // 接地告警投入
    SET_U0TZ_TT,    // 合到零压保护
    SET_DLBS_TT,    // 非遮断电流保护
    SET_FA_PTDX,    // PT断线告警
    SET_HZBS_TT,    // 多次失压分闸闭锁
    SET_FA_XBBS_TT, // 涌流识别
    SET_YJCYBS_TT,  // 硬件残压闭锁

    SET_CYBS_TT,   // 残压闭锁
    SET_SCYY_BSHZ, // 双侧有压闭锁合闸
    SET_SF_BSHZ,   // 手分/遥分闭锁合闸
    SET_SH_BSFZ,   // 手合无压闭锁分闸
    SET_GZBSHZ_TT, // 合到故障分闸闭锁合闸
    SET_LOSTFZ_TT, // 失电延时分闸
#ifdef FA_OC_COUNT
    SET_FA_OC_COUNT_TT, // 过流脉冲计数投退
#endif

    SET_LABLE_FADZ, // 列表名 就地馈线自动化定值
    SET_FA_YY_U,    // 有压定值
    SET_FA_WY_U,    // 无压定值
    SET_FA_X_T,     // 得电合闸延时(X时限)
    SET_FA_Y_T,     // 故障检测时限(Y时限)
    SET_FA_XL_T,    // 失压合闸延时(XL时限)
    SET_FA_Z_T,     // 失电分闸延时(Z时限)
    SET_FA_BSTZ_T,  // 闭锁分闸复归时间
    SET_FA_GL_I,    // 相间故障电流I段定值
    SET_FA_GLI_T,   // 相间故障电流I段时间
    SET_FA_GL_II,   // 相间故障电流II段定值
    SET_FA_GLII_T,  // 相间故障电流II段时间
    SET_FA_LX_I,    // 接地故障电流定值
    SET_FA_LX_T,    // 接地故障时间定值
    SET_FA_FHDDY,   // 复合电压低电压定值
    SET_FA_FHFDY,   // 复合电压负序电压定值
    SET_FA_GL2_I,   // 相间过流告警电流定值
    SET_FA_GL2_T,   // 相间过流告警时间定值
    SET_FA_LX2_I,   // 接地告警电流定值
    SET_FA_LX2_T,   // 接地告警时间定值
    SET_FA_U0_U,    // 零序电压保护电压定值
    SET_FA_U0_T,    // 零序电压保护时间定值
    SET_FA_DLBS_I,  // 非遮断电流值
    SET_FA_XBCOE,   // 二次谐波闭锁系数

    SET_HZBS_TIMES, // 多次失压分闸闭锁次数
    SET_HZBS_T,     // 多次失压分闸闭锁时间
    SET_FA_WLDZ,    // 无流定值
    SET_FA_YY_T,    // 有压判定时间
    SET_FA_WY_T,    // 无压判定时间
    SET_FA_LL_CD_T, // 联络充电时间
#if defined GD_AREA_ZHONGSHAN_2020
    SET_FA_GZTZ_T, // 快速跳闸延时
#endif
#ifdef FA_OC_COUNT
    SET_FA_OC_COUNT_M, // 过流脉冲计数
    SET_FA_OC_COUNT_T, // 过流脉冲时间
#endif

    SET_LABLE_GOOSETT, // 列表名 智能分布式控制字
#if defined GD_AREA_ECZD_2020
    SET_GOOSE_FA_TYPE,      // 分布式FA方式
    SET_GOOSE_LL_TT,        // 联络自投投入
    SET_GOOSE_GZVSZT_TT,    // 过载闭锁自投投入
    SET_GOOSE_SDLOSTVOL_TT, // 首开关失压保护投入
    SET_GOOSE_CHZ_TT,       // 智能分布式启动重合闸
    SET_GOOSE_FTU_TYPE,     // 本接点开关类型 首、末开关

    SET_LABLE_GOOSEDZ, // 列表名 智能分布式定值
#if defined GD_AREA_ZHONGSHAN_2020
    SET_GOOSET_GL_I,     // 故障切除相电流I段
    SET_GOOSET_GL_T,     // 相电流I段跳闸延时
    SET_GOOSET_GL2_I,    // 故障切除相电流II段
    SET_GOOSET_GL2_T,    // 相电流II段跳闸延时
    SET_GOOSET_LX_I,     // 故障切除零序电流
    SET_GOOSET_LX_T,     // 零序电流跳闸延时
    SET_GOOSET_GZGL_T,   // 故障点下游开关隔离时间
    SET_GOOSET_SDLOST_T, // 首段失压跳闸时间
    SET_GOOSET_LL_T,     // 供电恢复时限
    SET_GOOSE_FTU_TYPE,  // 开关类型 首、末开关
    SET_GOOSE_KG_TYPE,   // 开关安装位置 ==0 主环
#elif defined GD_AREA_ECZD_2020
    SET_GOOSET_U_NO,     // 无压定值
    SET_GOOSET_U_HAVE,   // 有压定值
    SET_GOOSET_C_NO,     // 无流定值
    SET_GOOSET_GL_I,     // 分布式FA过流定值
    SET_GOOSET_GL_T,     // 分布式FA过流时间
    SET_GOOSET_LX_I,     // 分布式FA零序过流定值
    SET_GOOSET_LX_T,     // 分布式FA零序过流时间
    SET_GOOSET_LLC_T,    // 联络自投充电延时
    SET_GOOSET_LL_T,     // 联络自投合闸延时
    SET_GOOSET_SDLOST_T, // 首开关失压跳闸延时
    SET_GOOSET_GZGL_T,   // 故障隔离时限
    SET_GOOSET_GZ_I,     // 过载判断定值
    SET_GOOSET_SL_T,     // 失灵判断延时
#endif
#else
    SET_GOOSE_FA_TT,        // 分布式FA控制字
    SET_GOOSE_SDLOSTVOL_TT, // 分布式FA功能
    SET_GOOSE_LL_TT,        // 首开关失压分闸
    SET_GOOSE_FA_TYPE,      // 速动/缓动
    SET_GOOSE_FTU_TYPE,     // 本节点开关类型
    SET_GOOSET_DIR_TT,      // 组网方式
    SET_GOOSET_MXTFZ_TT,    // 母线故障跳末开关
    SET_GOOSE_XBBS_TT,      // 涌流识别
#ifdef GOOSE_NETTYPE_SET
    SET_GOOSE_NET_TYPE, // goose网络类型
#endif

    SET_LABLE_GOOSEDZ, // 列表名
#ifdef GD_AREA_ZHONGSHAN
    SET_GOOSET_GL_I,  // 故障切除相电流I段
    SET_GOOSET_GL_T,  // 相电流I段跳闸延时
    SET_GOOSET_GL2_I, // 故障切除相电流II段
    SET_GOOSET_GL2_T, // 相电流II段跳闸延时
    SET_GOOSET_LX_I,  // 故障切除零序电流
    SET_GOOSET_LX_T,  // 零序电流跳闸延时
#endif
    SET_GOOSET_SDLOST_T, // 首开关失压分闸延时
    SET_GOOSET_LL_T,     // 故障恢复时间
    SET_GOOSET_GZGL_T,   // 故障隔离时间
    SET_GOOSE_XBCOE,     // 涌流识别定值
#endif

    SET_LABLE_TQ, // 列表名 同期合闸定值
    SET_TQ_U,     // 同期允许电压差
    SET_TQ_ANG,   // 同期允许相角差
    SET_TQ_F,     // 同期允许频率差

    SET_LABLE_VOLJL,  // 列表名  自动解列控制字
    SET_VOLJL_TT,     // 电压越限解列投入
    SET_DYJL_HCBS_TT, // 电压滑差闭锁功能
    SET_PLJL_TT,      // 频率越限解列投入
    SET_DPJL_HCBS_TT, // 频率滑差闭锁功能

    SET_LABLE_PLJL,   // 列表名 自动解列定值
    SET_JL_CHAR_T,    // 解列充电时间
    SET_GDYJL_U,      // 电压过低解列定值
    SET_GDYJL_T,      // 电压过低解列时间
    SET_DYJL_U,       // 低电压解列定值
    SET_DYJL_T,       // 低电压解列时间
    SET_GYJL_U,       // 高电压解列定值
    SET_GYJL_T,       // 高电压解列时间
    SET_GGYJL_U,      // 过高电压解列定值
    SET_GGYJL_T,      // 过高电压解列时间
    SET_DYJL_HCBS_U,  // 电压滑差定值
    SET_GDPJL_HZ,     // 频率过低解列定值
    SET_GDPJL_T,      // 频率过低解列时间
    SET_DPJL_HZ,      // 低频解列定值
    SET_DPJL_T,       // 低频解列时间
    SET_GPJL_HZ,      // 高频解列定值
    SET_GPJL_T,       // 高频解列时间
    SET_GGPJL_HZ,     // 频率过高解列定值
    SET_GGPJL_T,      // 频率过高解列时间
    SET_DPJL_HCBS_HZ, // 频率滑差定值

#ifdef XDL_ZT           // 小电流接地
    SET_LABLE_XDLJD_TT, // 列表名 小电流接地控制字
    SET_XDL_TT,         // 小电流接地保护
    SET_XDL_STR_AR_TT,  // 小电流接地保护启动重合闸
    SET_XDL_HJS_TT,     // 小电流接地保护后加速
    SET_XDLQD_TT,       // 小电流启动类型

    SET_LABLE_XDLJD_DZ, // 列表名 小电流接地定值
    SET_XDL_T,          // 小电流接地故障时间
    SET_XDL_HJSKF_T,    // 后加速开放时间
    SET_XDL_I,          // 小电流暂态电流
#elif defined FUN_JDXX  // 接地选线
    SET_LABLE_JDXX,       // 列表名
    SET_JDXXGJ_TT,        // 小电流接地告警
    SET_JDXXTZ_TT,        // 小电流接地跳闸
    SET_JDXX_CPH_TT,      // 接地选相投退
    SET_JDXX_P0_TT,       // 接地功率方向投退
    SET_JDXX_ZERO,        // 零漂值
    SET_JDXX_QD,          // 启动值
    SET_JDXX_QDPOINTS,    // 启动点数
    SET_JDXX_SUREPOINTS,  // 确认点数
    SET_JDXX_FAULTPOINTS, // 一次接地，判断故障总的采样点数
    SET_JDXX_VOLTYPE,     // 参考电压
    SET_JDXX_VOLZERO,     // 参考电压零漂值
    SET_JDXX_U0,          // 接地U0定值
    SET_JDXX_TRIP_TIME,   // 小电流接地出口时间
    SET_JDXX_GJ_TIME,     // 小电流接地告警时间
    SET_JDTYPE,           // 系统接地方式
#endif

    SET_LABLE_LA,         // 列表名 线路断线告警
    SET_LA_BREAKLINE_A_T, // 线路断线告警延时
    SET_LA_BREAKLINE_M_T, // 线路断线判定方式
    SET_LA_BREAKLINE_Z_U, // 线路断线零压
    SET_LA_BREAKLINE_Z_C, // 线路断线零流
    SET_LA_BREAKLINE_D_U, // 线路断线低电压

#ifdef FUNC_DRIVE
    SET_LABLE_BTDCD, // 列表名  不停电传动
    SET_DRIVE_HZ_T,  // 延时合闸时间
    SET_FZ_END_T,    // 结束传动时间
    SET_DRIVE_FZ_T,  // 延时分闸时间
    SET_HZ_END_T,    // 合闸结束传动时间
#endif

#ifdef FUNC_DRIVE_JY
    SET_LABEL_DRIVE,   // 传动功能
    SET_UA1,           // 传动模拟电源侧电压
    SET_UA2,           // 传动模拟负荷侧电压
    SET_U0,            // 传动模拟零序电压
    SET_I,             // 不停电传动功能模拟IA
    SET_I0,            // 不停电传动功能模拟I0
    SET_DRIVE_UA1_T,   // 传动电源侧电压时间
    SET_DRIVE_UA2_T,   // 传动负荷侧电压时间
    SET_DRIVE_U0_T,    // 传动零压时间
    SET_DRIVE_I_T,     // 传动过流时间
    SET_DRIVE_I0_T,    // 传动零流时间
    SET_DRIVE_AGAIN_T, // 再次传动时间
#endif

    SET_LABLE_FSX, // 列表名
    SET_FSX_TT,    // 反时限投退
    SET_FSX_I,     // 反时限基准值
    SET_FSX_Tp,    // 反时限时间常数
    SET_FSX_TYPE,  // 反时限类型

    SET_LABLE_DLYX, // 列表名 电流越限
    SET_DLZZ_TT,    // 电流重载
    SET_DLZZ_I,
    SET_DLZZ_T,
    SET_DLGZ_TT, // 电流过载
    SET_DLGZ_I,
    SET_DLGZ_T,
    SET_DLYX_TT, // 负荷越限
    SET_DLYX_I,
    SET_DLYX_T,
    SET_LXYX_TT, // 零序电流越限
    SET_LXYX_I,
    SET_LXYX_T,

    SET_WAVE_RECORD_LABEL, // 列表名 录波
    SET_WAVE_GLGZ,         // 过流故障启动
    SET_WAVE_LXGL,         // 零序过流启动
    SET_WAVE_LXDY,         // 零序电压启动
    SET_WAVE_XLSY,         // 线路失压启动
    SET_WAVE_LYTB,         // 零压突变启动
    SET_U0_TB,             // 零压突变定值
    SET_WAVE_LLTB,         // 零流突变启动
    SET_I0_TB,             // 零流突变定值
    SET_WAVE_CHZ,          // 重合闸启动
    SET_WAVE_TV,           // 残压
    SET_WAVE_FA,           // FA动作
#if defined FUN_JDXX || defined XDL_ZT
    SET_WAVE_XDLJD, // 小电流接地启动
#endif

    SET_LABLE_OTHER,     // 列表名 辅助定值
    SET_CURRENT_INV_TT,  // 功率取反投退 涉及功率计算和小电流接地判断
    SET_DIR_INV_TT,      // 保护方向取反投退 过流方向计算时使用
    SET_TT_TWCN,         // 未储能告警
    SET_TT_KZHL,         // 控制回路检查
    SET_QYD_BS_TT,       // 气压低闭锁分合闸
    SET_PT1_LL_CHECK_TT, // PT1断线检查投退
    SET_PT2_LL_CHECK_TT, // PT2断线检查投退

#ifdef CUSTOMIZE_BZT // 备自投
    SET_LABLE_BZT,   // 列表名
    SET_BZT_TT,      // 备自投投退
    SET_BZT_FS,      // 备自投方式
    SET_BZTT_T,      // 备自投跳闸时间
    SET_BZTH_T,      // 备自投合闸时间
    SET_TCD,         // 备自投充电时间
    SET_POWERON_U,   // 备自投有压定值
    SET_POWEROFF_U,  // 备自投无压定值
    SET_BZT_WL,      // 备自投无流定值
    SET_BZT_MX_PT1,  // 母线电压1
    SET_BZT_MX_PT2,  // 母线电压2
    SET_BZT_DL1_PT,  // 1#进线电压
    SET_BZT_DL2_PT,  // 2#进线电压
    SET_BZT_DL1_I,   // 1#进线电流
    SET_BZT_DL2_I,   // 2#进线电流
#endif

    SET_NUM
};

// 公共定值
enum
{
    SET_LABLE_EQUSET = 0, // 列表名 设备参数
    SET_BHCT1_A,          // CT额定一次值
    SET_BHCT2_A,          // CT额定二次值
    SET_I0CT1_A,          // 零序CT额定一次值
    SET_I0CT2_A,          // 零序CT额定二次值
    SET_APT1_U,           // 电源侧PT额定一次值
    SET_APT2_U,           // 电源侧PT额定二次值
    SET_BPT1_U,           // 负荷侧PT额定一次值
    SET_BPT2_U,           // 负荷侧PT额定二次值
    SET_APT1_UZ,          // 电源侧零序PT额定一次值
    SET_APT2_UZ,          // 电源侧零序PT额定二次值
    SET_BPT1_UZ,          // 负荷侧零序PT额定一次值
    SET_BPT2_UZ,          // 负荷侧零序PT额定二次值
    SET_PPT_TYPE,         // A侧PT接线方式
    SET_LPT_TYPE,         // B侧PT接线方式

    SET_LABLE_SEC_SET,   // 列表名 定值区
    SET_SECTION,         // 定值区号
#ifdef FIXAREA_VERSION_T // 待召唤定值区号、待执行定值区号
    SET_SECTION_ONCALL,  // 待召唤定值区号
    SET_SECTION_ONDO,    // 待执行定值区号
#endif

    SET_LABLE_PUBTT, // 列表名 运行软压板
    SET_EDIT_PAR_YB, // 远程运维投入

    SET_LABLE_PUBPARA, // 列表名 电压参数
    SET_GDY_TT,        // 过电压投退
    SET_GDY_U,         // 过电压定值
    SET_GDY_T,         // 过电压时间
    SET_DDY_TT,        // 低电压投退
    SET_DDY_U,         // 低电压定值
    SET_DDY_T,         // 低电压时间
    SET_YY_TT,         // 线路有压投退
    SET_YY_U,          // 有压定值
    SET_YY_T,          // 有压时间
    SET_WY_TT,         // 线路无压投退
    SET_WY_U,          // 无压定值
    SET_WY_T,          // 无压时间
    SET_DC1GJ_TT,      // 直流电压1告警投退
    SET_DC1GJ_U,       // 直流电压1告警定值
    SET_DC1GJ_T,       // 直流电压1告警时间
    SET_DC2GJ_TT,      // 直流电压2欠压告警投退
    SET_DC2GJ_U,       // 直流电压2告警定值
    SET_DC2GJ_T,       // 直流电压2告警时间
#ifdef CUSTOMIZE_BZT   // 备自投
    SET_LOST_TT,       // 失压投退
    SET_LOST_U,        // 失压分闸定值
    SET_LOST_T,        // 失压时间
#endif

    SET_LABLE_FDL, // 列表名 非电量保护
    SET_FDL1_TT,   // 非电量1保护
    SET_FDL2_TT,   // 非电量2保护
    SET_FDL3_TT,   // 非电量3保护
    SET_FDL4_TT,   // 非电量4保护
    SET_FDL5_TT,   // 非电量5保护
    SET_FDL6_TT,   // 非电量6保护
    SET_FDL1_T,    // 非电量1时间
    SET_FDL2_T,    // 非电量2时间
    SET_FDL3_T,    // 非电量3时间
    SET_FDL4_T,    // 非电量4时间
    SET_FDL5_T,    // 非电量5时间
    SET_FDL6_T,    // 非电量6时间

    SET_TT_OTHER_PUB, // 列表名 其他
    SET_TT_GZJD,      // 经高阻接地方式
    SET_TBLTYPE,      // 小电流突变方式
    SET_FILTER,       // 信号滤波方式
    SET_WAVETYPE,     // 小波类型
    SET_WAVE_ORDER,   // 小波卷积阶数
    SET_HILBERT,      // H 变换
    SET_TQ_FH,        // 同期合闸判断返回时间
#ifdef VOLT_ADAPTIVE_FACTOR
    SET_ADAPTIVEFACTOR, // 自适应电压系数
#endif

    SET_PUB_NUM
};

// 装置参数
enum
{
    PARA_LABEL_PROTOCAL = 0, // 列表名 规约参数
    PARA_ADDR,               // 装置地址
    PARA_YXTYPE,             // 遥信类型
    PARA_YKTYPE,             // 遥控类型
    PARA_YCTYPE,             // 遥测类型
    PARA_YCTIME,             // 遥测发送间隔
    PARA_YCAUTO,             // 遥测自动上送
    PARA_YC_DEAD_TYPE,       // 遥测死区上传类型
    PARA_COSAUTO,            // COS自动上传
    PARA_EVPARA,             // COS自动上传
    PARA_YK_TIME,            // 遥控超时时间
    PARA_YT_TIME,            // 遥调超时时间
    PARA_101LINKADDR,        // 101链路地址
    PARA_101APPADDR,         // 101应用地址
    PARA_101COT,             // 101传送原因
    PARA_101INFOADDR_BYTES,  // 三字节
	PARA_104_INTERVAL,		 // 104应答间隔
	PARA_104_FILETRUE,		 // 104响应读文件确认
    PARA_104_Client,         // 104端口	是服务器还是客户端
    PARA_104_PORT,           // 104端口
    PARA_104_ACK_TIME,       // 104确认超时
    PARA_104_TEST_TIME,      // 104测试超时
    PARA_104_K,              // 104 K值
    PARA_104_W,              // 104 W值
    PARA_IP_104MASTER1,      // 104主站IP1
    PARA_IP_104MASTER2,      // 104主站IP2
    PARA_IP_104MASTER3,      // 104主站IP3
    PARA_IP_104MASTER4,      // 104主站IP4

    PARA_LABEL_LINK,  // 列表名
    PARA_IP_104LINK1, // 104级联IP1
    PARA_IP_104LINK2, // 104级联IP2
    PARA_IP_104LINK3, // 104级联IP3
    PARA_IP_104LINK4, // 104级联IP4
    PARA_IP_104LINK5, // 104级联IP5
    PARA_IP_104LINK6, // 104级联IP6
    PARA_IP_104LINK7, // 104级联IP7
    PARA_IP_104LINK8, // 104级联IP8

    PARA_LABEL_SERIAL,    // 列表名 串行口
    PARA_PROTOCOL_S1,     // 规约类型
    PARA_BAUD_S1,         // 波特率
    PARA_PARITY_S1,       // 校验方式
    PARA_PROTOCOL_S2,     // 规约类型
    PARA_BAUD_S2,         // 波特率
    PARA_PARITY_S2,       // 校验方式
    PARA_PROTOCOL_S3,     // 规约类型
    PARA_BAUD_S3,         // 波特率
    PARA_PARITY_S3,       // 校验方式
    PARA_PROTOCOL_S4,     // 规约类型
    PARA_BAUD_S4,         // 波特率
    PARA_PARITY_S4,       // 校验方式
    PARA_PROTOCOL_S5_GPS, // 规约类型
    PARA_BAUD_S5_GPS,     // 波特率
    PARA_PARITY_S5_GPS,   // 校验方式
    PARA_PROTOCOL_S6,     // 规约类型
    PARA_BAUD_S6,         // 波特率
    PARA_PARITY_S6,       // 校验方式
    PARA_PROTOCOL_S7,     // 规约类型
    PARA_BAUD_S7,         // 波特率
    PARA_PARITY_S7,       // 校验方式
#ifdef FUN_FUXI_ESAM
    PARA_PROTOCOL_S8_S1, // 规约类型
    PARA_BAUD_S8_S1,     // 波特率
    PARA_PARITY_S8_S1,   // 校验方式
#endif

    PARA_LABEL_ETHERNET, // 列表名 以太网通道
    PARA_NET1,
    PARA_IP_NET1,
    PARA_MA_NET1,
    PARA_ROUTE_NET1,     // 网段
    PARA_ROUTE_NETMASK1, // 掩码
    PARA_ROUTE_GATE1,    // 网关
    PARA_NET2,
    PARA_IP_NET2,
    PARA_MA_NET2,
    PARA_ROUTE_NET2,     // 网段
    PARA_ROUTE_NETMASK2, // 掩码
    PARA_ROUTE_GATE2,    // 网关
    PARA_NET3,
    PARA_IP_NET3,
    PARA_MA_NET3,
    PARA_ROUTE_NET3,     // 网段
    PARA_ROUTE_NETMASK3, // 掩码
    PARA_ROUTE_GATE3,    // 网关
    PARA_NET4,
    PARA_IP_NET4,
    PARA_MA_NET4,
    PARA_ROUTE_NET4,     // 网段
    PARA_ROUTE_NETMASK4, // 掩码
    PARA_ROUTE_GATE4,    // 网关
    PARA_GATE_NET,       // 网关

    PARA_LABEL_TIME,       // 列表名 对时
    PARA_TIMETYPE,         // 对时方式
    PARA_TIMETYPE_STANDER, // 标准化对时方式选择
    PARA_GPS_INTERVAL,     // GPS/北斗对时间隔
    PARA_CHANGETIME,       // 对时切换时长
    PARA_IP_SNTP,          // SNTP服务器IP
    PARA_SNTP_SYNC_TM,     // SNTP对时间隔

    PARA_LABEL_BATTERY, // 列表名 电池活化
    PARA_BATBEGIN_YMD,  // 电池活化启动时间
    PARA_BATBEGIN_HMS,  // 电池活化启动时刻
    PARA_BAT_INTERVAL,  // 电池活化间隔
    PARA_BAT_ALARM,     // 电池告警阀值

    PARA_LABLE_RMT,     // 列表名 远动参数
    PARA_DEAD_ZONE_ALL, // 遥测死区
    PARA_DEAD_I,        // 电流死区
    PARA_DEAD_U,        // 交流电压死区
    PARA_DEAD_ZL,       // 直流电压死区
    PARA_DEAD_P,        // 功率死区
    PARA_DEAD_F,        // 频率死区
    PARA_DEAD_COS,      // 功率因数死区
    PARA_YXFD,          // 遥信防抖时间
    PARA_FZPULSE,       // 分闸脉冲
    PARA_HZPULSE,       // 合闸脉冲
    PARA_U_ZERO,        // 电压零漂
    PARA_DC_ZERO,       // 直流电压零漂
    PARA_PHASE_I_ZERO,  // 相电流零漂
    PARA_ZERO_I_ZERO,   // 零序电流零漂
    PARA_P_ZERO,        // 功率零漂
    PARA_F_ZERO,        // 频率零漂
    PARA_COS_ZERO,      // 功率因数零漂

    PARA_LABEL_OTHERS, // 列表名 其它
    PARA_FHZPULSE,
    PARA_RST_TT,  // 自动复归投退
    PARA_RSTTIME, // 自动复归时间
#ifdef YX_RESET_TIME
    PARA_EVTRSTTIME, // 	遥信复归时间 故障遥信保持时间
#endif
    PARA_LHTTIME,    // 液晶背光时间
    PARA_LINK_STATE, // 级联状态通道
#if (defined GD_AREA_ZHONGSHAN || defined GD_AREA_ZHONGSHAN_2020)
    PARA_GOOSE_ID, // goose通信ID
    PARA_GOOSE_T1, // goose通信ID
    PARA_GOOSE_T2, // goose通信ID
#endif
#ifdef RCD_STRAN_M_EN
    PARA_LB_MASTER_TT, // 级联录波使能
#endif
#ifdef YPARA_LINK_S_EN
    PARA_YPAR_CHG_TT,
#endif
#ifdef FUN_FUXI_ESAM
    PARA_LABEL_S1,    // 列表名
    PARA_S1_MODE,     // 加密工作模式
    PARA_S1_PORT,     // 监听端口号
    PARA_S1_NAT,      // NAT
    PARA_S1_IP,       // 加密芯片IP
    PARA_S1_MASK,     // 掩码
    PARA_S1_GATE,     // 网关
    PARA_S1_FAR_IP,   // 远端IP
    PARA_S1_FAR_MASK, // 掩码
    PARA_S1_FAR_GATE, // 网关
#endif

#ifdef METERING_ENERGY
    // 历史记录文件定值
    PARA_LABEL_HISFILE,  // 列表名
    PARA_YC_JG_T,        // 遥测定点间隔
    PARA_LL_FILE_TT,     // 线损文件投退
    PARA_LL_SW_ID,       // 开关ID
    PARA_LL_MONTHD_DAY,  // 考核日冻结日
    PARA_LL_MONTHD_HOUR, // 考核日冻结小时
#endif

    PARA_NUM
};

// 内部定值
enum
{
    CSTSET_LABEL_PROTECT = 0, // 列表名 保护
#ifdef XDL_ZT
    CSTSET_XDL_U0_U1, // 小电流接地零压定值1
    CSTSET_XDL_U0_T1, // 小电流接地零压时间1
    CSTSET_XDL_U0_U2, // 小电流接地零压定值2
    CSTSET_XDL_U0_T2, // 小电流接地零压时间2
#endif
    CSTSET_FZLBXS, // 幅值加速滤波系数
    CSTSET_TBLQD,  // 突变量定值
    CSTSET_IWL,    // 无流定值
    CSTSET_TZZ,    // 整组复归时间
    CSTSET_TZSB,   // 跳闸失败时间
    CSTSET_HZSB,   // 合闸失败时间
    CSTSET_U0BS_TT,      // 零压闭锁零流
    CSTSET_DDYBS_TT,     // 低压闭锁过流
    CSTSET_U0BS_U,       // 零压闭锁零流定值
    CSTSET_DDYBS_U,      // 低压闭锁过流定值
#ifdef PRO_AL_LOCK_HZ
    CSSET_JL_LOCK_CHZ,          // 解列闭锁重合闸
    CSSET_START_CHZ_JUDGE_FREQ, // 解列后重合闸判频率
    CSSET_START_CHZ_JUDGE_VOLT, // 解列后重合闸判电压
#endif

    CSTSET_LABEL_CALC,     // 列表名 计算功能
    CSTSET_FREQ,           // 频率跟踪投退
    CSSET_HARMONIC_NUM,    // 谐波计算次数
    CSSET_HARMONIC_FACTOR, // 谐波校正系数
    CSSET_TEMP_FACTOR_AC,  // 交流温漂(ppm)
    CSSET_TEMP_FACTOR_DC,  // 直流温漂(ppm)
    CSTSET_RET_ZERO,       // 归零值投退
    CSTSET_U0ZC_TT,        // 零序电压自产

    CSTSET_LABEL_COMM,      // 列表名 通讯
    CSSET_101RESEND_T,      // 101子站重发
    CSSET_IEC101,           // 101通道时间
    CSSET_101_COT03,        // 101初始化原因03
    CSSET_104_CHECK_ACK,    // 104序号检查
    CSSET_101FCB,           // 101FCB检查
    CSSET_DI_CONTINUE,      // 点号连续上送
    CSSET_SM2_TT,           // 加密功能
    CSSET_RMTTEST_TT,       // 远动测试模式
    CSSET_SOE_RESUME_COMM,  // SOE通讯续传，通讯重连时上送未确认的SOE
    CSSET_SOE_RESUME_POWER, // SOE上电续传
    CSSET_EV_FAILURE,       // 故障事件上送
	CSSET_EV_FAIL_PRIMARY, 	// 故障事件上送一次值
    CSSET_EV_FAILURE_Z,     // 故障事件清零上送
    CSSET_EV_FAILT_AD_LEN,  // 故障事件遥信地址长度
    CSSET_PACKAGE_MUTUDATA, // 突变数据打包上送
    CSSET_PACKAGE_MUTUTIME, // 突变数据打包时间
#ifdef FIX_PARAM_FORMAT
    CSSET_SET_ULF8, //	固定参数上送格式 ulf-8	江苏要求
#endif
    CSSET_EQU_TYPE,         // 装置类型
    CSSET_YC_FILTER_FACTOR, // 遥测滤波系数，防止遥测没有稳定下来突发上送

    CSTSET_LABEL_FA,         // 列表名 馈线自动化
    CSTSET_SYBOARD_TT,       // 瞬压板投退
    CSTSET_GOOSE_CD_T,       // DFA充电时间
    CSTSET_GOOSE_GLFD_T,     // DFA隔离放电时间
    CSTSET_GOOSE_LLFD_T,     // DFA恢复放电时间
    CSTSET_GOOSE_FORBIT_T,   // DFA禁止转发时间
    CSTSET_GOOSE_SENDEXT_T,  // DFA发送展宽时间
    CSTSET_GOOSE_CHECK_T,    // goose判断时间
    CSTSET_GOOSE_FHKG_PUB,   // 负荷开关goose发布
    CSTSET_GOOSE_SEND_FAULT, // goose发布在故障确认后
    CSTSET_SHORT_LDJS_T,     // 单侧来电解锁时间
    CSTSET_BS_YKON_TT,       // FA闭锁合闸禁止遥合
#ifdef FA_PL_PJ
    CSSET_JUDGE_FREQ, // 有压判频率投退
#endif
    CSSET_U_PJ,         // 有压判据
    CSSET_FA_GLFX_PJ,   // FA过流告警判负序

    CSTSET_WAVE_RECORD_LABEL, // 列表名 录波功能
    CSTSET_WAVE_FILETYPE,     // 文件格式
    CSTSET_WAVE_VOL_TYPE,     // 电压选择
    CSTSET_WAVE_XNYX,         // 虚拟遥信记录
    CSTSET_WAVE_YXDES_TYPE,   // 遥信描述类型
    CSTSET_WAVE_DINT,         // 开入数据未防抖
    CSTSET_WAVE_SWNUM,        // 本开关间隔号

    CSTSET_LABEL_OTHERS,         // 列表名 辅助定值
    CSTSET_WCNALARM_T,           // 未储能告警时间
    CSTSET_SD_YX_T,              // 失电闭锁遥信时间
    CSTSET_CHARGEOK_TIME,        // 电池充满维持时间
    CSSET_HS_FILE_TT,            // 记录文件投退
    CSSET_HS_FILE_FORMAT,        // 记录文件格式
    CSSET_RST_REUSE_FUNC,        // 复归按键复用功能选择
    CSSET_RST_REUSE_FILTER_TIME, // 复归按键复用功能防抖时长
    CSSET_RMT_PARA_TT,           // 远动参数有效
    CSSET_LOG_PRINTF_TT,         // 现场运行模式
    CSSET_101_TRANSSURE_TT,      // 101文件传输确认帧
    CSSET_ZERO,                  // 测量差值
    CSSET_ZL,                    // 直流电压定值
    CSSET_SET_DC_NUM,            // 直流通道数
    CSSET_PT2_VOL,               // 负荷侧电压选择
    CSSET_DISP_ONE_TWO,          // 液晶遥测数据显示
#ifdef YC_QUANTITY
    CSSET_YC_NUM, // 设置每间隔遥参数量
#endif
#ifdef METERING_ENERGY
    CSSET_DD_CALC_MODE, // 电度计算方式
    CSSET_JLJX,         // 计量接线方式
    CSSET_WGFS,         // 无功电能算法
#endif
    CSSET_SET_YC_DEAD_ZONE_ALL, // 遥测总死区有效投退

    CSTSET_NUM
};

// 时间定值
enum
{
    TIME_YEAR,
    TIME_MONTH,
    TIME_DAY,
    TIME_HOUR,
    TIME_MINUTE,
    TIME_SECOND,
    TIME_NUM,
};

// 用户密码
enum
{
    CODE,
    CODE_NUM,
};

/*------------------------------ 类型结构 -------------------------------------
 */
// 串口参数结构体
typedef struct SERIAL_PARA
{
    DWORD dBaud;    // 485 波特
    WORD wParity;   // 串口校验方式无奇偶校验等
    WORD wProtocol; // 规约类型
    bool bInit;
    bool b101PH;
} SERIAL_PARA;

// 网络参数结构体
typedef struct NET_PARA
{
    DWORD wIp;
    DWORD wGate;
    DWORD wMask;
    WORD wProtocol; // 规约类型
    bool bInit;
    BYTE changed;        // 网络参数改变标志.IP是bit0, Gate是bit1, Mask是bit2
    BYTE ethid;          // 对应的物理网卡
    BYTE index;          // 虚拟号
    BYTE old_ethid;      // 上一次的网卡序号
    BYTE old_index;      // 虚拟号
    DWORD wRouteNet;     // 网段
    DWORD wRouteNetMask; // 网段掩码
    DWORD wRouteGate;    // 网关
} NET_PARA;

typedef struct OC_SET
{
    DWORD dI;    // 越限定值
    DWORD dI_fh; // 越限定值返回值
#if defined GD_AREA_ECZD_2020
    DWORD dU;     // 低电压定值
    DWORD dU_fh;  // 越限定值返回值
    DWORD dU2;    // 负序电压值
    DWORD dU2_fh; // 负序电压值
#endif
    DWORD dT;  // 动作时间
    bool bTz;  // 跳闸
    bool bGj;  // 告警
    bool bDir; // 方向投入
} OC_SET;

typedef struct GOC_SET // 智能FA定值
{
    DWORD dIgl;    // 过流定值
    DWORD dIgl_fh; // 过流定值返回值
    DWORD dTgl;    // 过流时间

    DWORD dIgl2;    // 过流定值
    DWORD dIgl2_fh; // 过流定值返回值
    DWORD dTgl2;    // 过流时间

    DWORD dIlx;      // 零序定值
    DWORD dIlx_fh;   // 零序定值返回值
    DWORD dTlx;      // 零序时间
    DWORD dTll;      // 联络合闸时间
    bool bTT_ll;     // 联络合闸投退
    bool bTT_sdlost; // 首段失压投退
    DWORD dTsdlost;  // 首端失压时间
    DWORD dTgzgl;    // 故障隔离时间

    bool bsw_sd;   // 首端开关
    bool bsw_fz;   // 末端开关
    bool bsw_ll;   // 联络开关
    bool bFA_slow; // 缓动 型FA
    bool bFA_gzbs; // 过载闭锁自投投入
    bool bFA_qdch; // 智能分布式启动重合闸
    bool bTT_gooseFA;
    bool bTT_DIR;
    bool bTT_mxTfz;    // 母线故障跳分支
    bool bKg_mainloop; // 主环开关
#if defined GD_AREA_ZHONGSHAN_2020
    OC_SET tOc[FAG_BHNUMBER]; // 手合故障跳闸 goose
#endif
} GOC_SET;

typedef struct TSETSW
{
    /* 功能压板 */
    bool btt_gnyb_cg;     // 常规保护投入
    bool btt_gnyb_zdchz;  // 自动重合闸投入
    bool btt_gnyb_fa;     // 就地馈线自动化投入
    bool btt_gnyb_dfa;    // 智能分布式投入
    bool btt_gnyb_jzs;    // 集中模式压板
    bool btt_gnyb_tqhz;   // 同期合闸投入
    bool btt_gnyb_zdjl;   // 自动解列投入
    bool btt_gnyb_xdljd;  // 小电流接地保护投入
    bool btt_gnyb_xldxgj; // 线路断线告警投入
    bool btt_gnyb_btdcd;  // 不停电传动投入

    /* 运行压板 */
    bool btt_yxyb_gnztt; // 自动化功能总投退软压板
    bool btt_yxyb_gnzck; // 自动化功能总出口软压板
    bool btt_yxyb_chz;   // 重合闸软压板
#ifdef YK_SOFT_YB        // 遥控压板
    bool bTT_SOFT_YK_YB;
#endif

    OC_SET toc[BHOC_NUMBER]; // 过量保护
    GOC_SET tGocSet;         // goose 过流
    DWORD dT_SpeedUp_Open; // 后加速开放时间

    bool dT_ch_gl_tt; // 过流重合默认投入
    bool dT_ch_jd_tt; // 接地重合默认投入

    DWORD dT_chz[MAX_AR_TIMES]; // 重合时间
    DWORD dT_chz_bs;            // 重合闸闭锁时间
    DWORD dT_chz_ok;            // 重合闸确认时间 用于判断重合闸闭锁
    DWORD dT_chz_cd;            // 重合闸充电时间，一次重合闸15秒，二次重合闸180秒
    DWORD dT_chz_Topen;         // 重合闸开放时间
    DWORD d_chz_times;          // 重合闸次数
    DWORD dA_chz_deltaAng;      // 重合同期角差 角度差定值固定取30°
    DWORD dU_chz_deltaU;        // 重合同期压差 20%额定电压
    DWORD dU_chz_wy;            // 重合无压判断 40%额定电压
    DWORD dU_chz_yy;            // 重合无压判断 40%额定电压
    DWORD d_bh_xbcoe;           // 谐波系数

    bool bTT_chz_wy;       // 重合检无压
    DWORD bTT_chz_wy_type; // 重合检无压方式 0母有线无 1母无线有 2两侧无压
    bool bTT_chz_tq;       // 重合检同期
    bool bTT_CHZ;          // 重合闸投退
    bool bTT_TTCH_TT;      // 偷跳启动重合
    bool bTT_ddl_lock_rc;  // 大电流闭锁重合闸

    bool bTT_3U0Tz;     // 零序过电压保护跳闸
    bool bTT_3U0Gj;     // 零序过电压保护告警
    DWORD dBHOverU0;    // 零序过电压
    DWORD dBHOverU0_fh; // 零序过电压返回值
    DWORD dBHTOverU0;   // 零序过电压时间

    DWORD dIglfsx;    // 反时限过流基准值--10
    DWORD dTglfsx;    // 反时限过流时间
    DWORD dIglfsx098; // 反时限过流*0.96
    DWORD dIglfsx105; // 反时限过流*1.05*1.05
    DWORD dRVS_MIN_T; // 反时限最短时间
    DWORD dRVS_MAX_T; // 反时限最长时间
    bool bTT_FSX;     // 反时限投退
    WORD wFsxType;    // 反时限类型

    bool bTT_bh_ptdx; // 保护PT断线检查
    bool bTT_bh_xbbs; // 保护谐波闭锁

    DWORD dT_tq;        // 同期时间
    DWORD dU_tq_deltaU; // 同期压差
    DWORD dA_tq_delatA; // 同期角差
    DWORD dF_tq_deltaF; // 同期频差

    bool bTT_jl_dy;      // 电压解列
    DWORD dU_jl_gddy_rs; // 电压过低解列起始范围
    DWORD dU_jl_gddy_re; // 电压过低解列结束范围
    DWORD dT_jl_gddy;    // 电压过低解列时间
    DWORD dU_jl_ddy_rs;  // 低电压解列起始范围
    DWORD dU_jl_ddy_re;  // 低电压解列结束范围
    DWORD dT_jl_ddy;     // 低电压解列时间
    DWORD dU_jl_gdy_rs;  // 高电压解列起始范围
    DWORD dU_jl_gdy_re;  // 高电压解列结束范围
    DWORD dT_jl_gdy;     // 高电压解列时间
    DWORD dU_jl_ggdy_rs; // 电压过高解列起始范围
    DWORD dU_jl_ggdy_re; // 电压过高解列结束范围
    DWORD dT_jl_ggdy;    // 电压过高解列时间

    bool bTT_jl_hz;      // 频率解列
    DWORD dU_jl_gdhz_rs; // 频率过低解列起始范围
    DWORD dU_jl_gdhz_re; // 频率过低解列结束范围
    DWORD dT_jl_gdhz;    // 频率过低解列时间
    DWORD dU_jl_dhz_rs;  // 低频解列起始范围
    DWORD dU_jl_dhz_re;  // 低频解列结束范围
    DWORD dT_jl_dhz;     // 低频解列时间
    DWORD dU_jl_ghz_rs;  // 高频解列起始范围
    DWORD dU_jl_ghz_re;  // 高频解列结束范围
    DWORD dT_jl_ghz;     // 高频解列时间
    DWORD dU_jl_gghz_rs; // 频率过高解列起始范围
    DWORD dU_jl_gghz_re; // 频率过高解列结束范围
    DWORD dT_jl_gghz;    // 频率过高解列时间

    bool bTT_hcbs_hz;     // 滑差闭锁投退
    bool bTT_hcbs_dy;     // 电压滑差闭锁功能
    DWORD dhcbs_hz;       // 频率滑差定值
    DWORD dhcbs_u;        // 电压滑差定值
    DWORD dT_jl_charge;   // 解列充电时间

    bool bTT_FA;          // FA投退
    bool bTT_fa_LL;       // 分段联络模式
    bool bTT_fa_poweron;  // 电源侧上电合闸
    bool bTT_fa_lineon;   // 负荷侧上电合闸
    BYTE bTT_fa_poweroff; // 电源侧失压联络选择
    BYTE bTT_fa_lineoff;  // 负荷侧失压联络选择

    bool bTT_fa_gzbshz; // 合到故障闭锁合闸

    bool bTT_fa_Lostfz; // 失压分闸投退

    bool bTT_fa_Icheck;  // 合到故障电流判断
    bool bTT_fa_bsTz;    // 合闸成功闭锁分闸
    bool bTT_fa_gzTz;    // 合后故障跳闸
    bool bTT_fa_sfbs;    // 手分闭锁合闸
    bool bTT_fa_shbs;    // 手合闭锁分闸
    bool bTT_fa_scyy_bs; // 双侧有压闭锁

    bool bTT_fa_gl2; // 过流告警
    bool bTT_fa_lx2; // 零序告警

    bool bTT_fa_yjcybs; // 硬件残压闭锁
    bool bTT_fa_cybs;   // 残压闭锁
    bool bTT_fa_xbbs;   // FA谐波闭锁
    bool bTT_fa_ptdx;   // 保护PT断线检查

    bool bTT_fa_U0Tz; // 合后接地故障 零序过压跳闸
    bool bTT_fa_U0Gj; // 合后接地故障 零序过压告警

    DWORD dU_fa_YY;     // A侧有压定值
    DWORD dU_fa_YY_fh;  // A侧有压返回定值
    DWORD dU_fa_YY2;    // B侧有压定值
    DWORD dU_fa_YY2_fh; // B侧有压返回定值
    DWORD dT_fa_YY;     // 有压判定时间

    DWORD dU_fa_WY;     // A侧无压定值
    DWORD dU_fa_WY_fh;  // A侧无压返回定值
    DWORD dU_fa_WY2;    // B侧无压定值
    DWORD dU_fa_WY2_fh; // B侧无压返回定值
    DWORD dT_fa_WY;     // 无压判定时间

    DWORD dT_X;     // X时间
    DWORD dT_Y;     // Y时间
    DWORD dT_LL_CD; // 联络充电时间
    DWORD dT_XL;    // X时间
    DWORD dT_Z;     // 失压 时间

    DWORD dT_fa_bsTz;  // 闭锁分闸复归时间
    DWORD dT_fa_ocing; // 相间故障电流II段时间
    DWORD dT_fa_lxing; // 接地故障时间定值
    DWORD d_fa_xbcoe;  // 谐波系数

    DWORD dU_OverU0; // 合后零压,固定为额定值20%
    DWORD dU_OverU0_fh;
    DWORD dT_OverU0; // 合后零压时间,固定为 0.6s
    DWORD dU_UF;     // 瞬压定值固定取25%额定值
    DWORD dU_UF2;    // 瞬压定值固定取25%额定值

    bool bTT_hzbs; // 连续分闸闭锁
    DWORD hzbstimes;
    DWORD dT_hzbs;
    DWORD dT_wldz; // FA无流定值
#ifdef FA_OC_COUNT
    bool bTT_fa_oc_count;   // 过流脉冲计数投退字
    DWORD fa_oc_count_m;    // 过流脉冲次数
    DWORD fa_oc_conut_time; // 过流脉冲时间，复归时间
#endif

    bool bTT_goose_xbbs; // FA谐波闭锁
    DWORD d_goose_xbcoe; // 谐波系数

    bool bTT_WCN;         // 弹簧未储能告警投退
    bool bTT_KZHL;        // 控制回路
    bool bTT_Current_Inv; // 电流取反投退，涉及功率计算和小电流接地判断
    bool bTT_DIR_Inv;     // 电流取反投退，涉及功率计算和小电流接地判断
    bool bTT_Power_v2;    // 功率计算是否选择第二路电压
    bool bTT_QYD_BS;      // 气压低闭锁

#ifdef XDL_ZT
    bool bTT_xdlgj; // 小电流接地告警
    bool bTT_xdltz; // 小电流接地跳闸
    bool bTT_xdl_src; // 小电流接地保护启动重合闸
    bool bTT_xdl_hjs; // 小电流接地保护启动重合闸
    int bTT_xdlqd;  // 小电流启动类型
    DWORD dI_xdl;   // 小电流接地电流
    DWORD dI_xdl_300ma;
    DWORD dI_xdl_fh; // 小电流接地返回电流
    DWORD dI_xdl_zt; // 小电流接地暂态电流
#endif
    bool bTT_xdlsg;   // 小电流接地事故总
    float dT_xdl_T;   // 小电流跳闸时间
    float dT_xdl_GT;  // 小电流告警时间
    DWORD dT_xdl_hjs; // 小电流零压后加速时间
#if (defined RECORD_SW_U0TB)
    DWORD dU_xdl_u0TB;    // 小电流零压突变定值
    DWORD dU_xdl_u0TB_fh; // 小电流零压突变返回定值
#endif
    bool bTT_lxpolar; // 零序电流反极性投退

    bool bTT_PT1_ll_check; // pt1断线检查投退
    bool bTT_PT2_ll_check; // pt2断线检查投退

#ifdef PRO_AL_LOCK_HZ
    DWORD dU_reclose_gdy_fh; // 用于解列后重合闸时判电压高值
    DWORD dU_reclose_ddy_fh; // 用于解列后重合闸时判电压低值
#endif
    bool bTT_IBSCHZ; // 大电流闭锁重合
    DWORD dIBSCHZ;   // 大电流闭锁重合闸定值

#ifdef FUNC_DRIVE_JY
    bool bTT_drive;       // 传动功能投退
    float dU_drive_ua1;   // 传动电源侧电压
    float dU_drive_ua2;   // 传动负荷侧电压
    float dU_drive_u0;    // 传动零压
    float dU_drive_i;     // 传动过流
    float dU_drive_i0;    // 传动零流
    DWORD dT_drive;       // 传动持续时间
    DWORD dT_drive_ua1;   // 传动电源侧电压时间
    DWORD dT_drive_ua2;   // 传动负荷侧电压时间
    DWORD dT_drive_u0;    // 传动零压时间
    DWORD dT_drive_i;     // 传动过流时间
    DWORD dT_drive_i0;    // 传动零流时间
    DWORD dT_drive_again; // 分/合闸失败时延时后再次分/合闸
#endif
#ifdef FUNC_DRIVE
    DWORD dT_Drive_hz; // 传动延时合闸时间
    DWORD dT_Drive_fz; // 传动延时分闸时间
    DWORD dT_fz_end;   // 结束传动时间
    DWORD dT_hz_end;   // 合闸结束传动时间
#endif

    bool bTT_rcd_type[RECORD_TYPE_NUM]; // 录波投退项
    DWORD dU_u0TB;                      // 零压突变录波定值
    DWORD dU_u0TB_fh;                   // 零压突变录波返回定值
    DWORD dI_i0TB;                      // 零流突变录波定值
    DWORD dI_i0TB_fh;                   // 零流突变录波返回定值

#ifdef CUSTOMIZE_BZT // 备自投
    DWORD dBZT_TYPE; // 备自投方式
    bool bBZT_BH_TT; // 备自投保护投退
    bool bBZT_TT;    // 备自投投退
    bool bFD;        // 分段方式投退
    bool bJX;        // 进线方式投退
    bool bAUTO;      // 互投方式投退
    bool bDJX;       // 单进线投退

    bool bZF;      // 自复投退
    DWORD dT_BTTZ; // 备自投跳闸时间
    DWORD dT_BTHZ; // 备自投合闸时间
    DWORD dT_BTCD; // 备自投充电时间
    DWORD dJX1UPower;
    DWORD dJX1UPower_fh;
    DWORD dJX1UPowerLost;
    DWORD dJX1UPowerLost_fh;

    DWORD dJX2UPower;
    DWORD dJX2UPower_fh;
    DWORD dJX2UPowerLost;
    DWORD dJX2UPowerLost_fh;

    DWORD dMX1UPower;
    DWORD dMX1UPower_fh;
    DWORD dMX1UPowerLost;
    DWORD dMX1UPowerLost_fh;

    DWORD dMX2UPower;
    DWORD dMX2UPower_fh;
    DWORD dMX2UPowerLost;
    DWORD dMX2UPowerLost_fh;

    DWORD dwl;
    DWORD dwl_fh;

    u8 bzt_mx_pt1;
    u8 bzt_mx_pt2;
    u8 bzt_dl1_pt;
    u8 bzt_dl2_pt;
    u8 bzt_dl1_ct;
    u8 bzt_dl2_ct;
#endif

    DWORD lbla_time; // 线路断线告警延时
    DWORD lbla_mode; // 线路断线判定方式 0非全相，1加判零压， 2加判零流和对应相电压低
    DWORD lbla_zu;   // 线路断线零压
    DWORD lbla_zufh; // 线路断线零压返回值
    DWORD lbla_zc;   // 线路断线零流
    DWORD lbla_zcfh; // 线路断线零流返回值
    DWORD lbla_du;   // 线路断线低电压

} TSETSW;

typedef struct VOL_SET
{
    DWORD dUVol;    // 电压定值
    DWORD dUVol_fh; // 电压定值返回
    DWORD dTVol;
    bool bTT;
} VOL_SET;

// 保护定值结构
typedef struct TSET
{
    /* 保护定值 */
    TSETSW tSwSet[SWITCH_NUM_MAX];

    /* 公共定值 */
    u8 section;          // 定值区
#ifdef FIXAREA_VERSION_T // 待召唤定值区号、待执行定值区号
    u8 section_zh;       // 待召唤定值区
    u8 section_zx;       // 待执行定值区
#endif

    u32 ct_one;                // CT额定一次值
    u32 ct_two;                // CT额定二次值
    u32 ct0_one;               // 零序CT额定一次值
    u32 ct0_two;               // 零序CT额定二次值
    u32 a_pt_one;              // 电源侧PT额定一次值
    u32 a_pt_two;              // 电源侧PT额定二次值
    u32 b_pt_one;              // 负荷侧PT额定一次值
    u32 b_pt_two;              // 负荷侧PT额定二次值
    u32 a_zpt_one;            // 电源侧零序PT额定一次值
    u32 a_zpt_two;           // 电源侧零序PT额定二次值
    u32 b_zpt_one;            // 负荷侧零序PT额定一次值
    u32 b_zpt_two;           // 负荷侧零序PT额定二次值
    u8 a_side_pt_type;           // A侧PT接线方式
    u8 b_side_pt_type;           // B侧PT接线方式
    bool bTT_EDIT_YB;            // 远程运维投入
    VOL_SET tVolSet[VOL_NUMBER]; // 电压定值 含 过电压、低电压、电源有压，电源无压 U0告警
#ifdef CUSTOMIZE_BZT             // 备自投
    VOL_SET tVolLostSet;
#endif
    bool bTT_FDLTz[PROTECT_FDL_NUM];   // 非电量保护
    bool bTT_FDLGj[PROTECT_FDL_NUM];   // 非电量保护
    DWORD dTFDL[PROTECT_FDL_NUM];      // 非电量保护
    bool bTT_GZJD;       // 经高阻接地投退
    WORD bTT_TBLTYPE;    // 小电流突变方式
    WORD bTT_FILTER;     // 小电流信号滤波方式
    BYTE bTT_WAVE[8];    // 小波类型
    WORD bTT_WAVE_ORDER; // 小波分解阶数
    bool bTT_HILEBERT;   // H 变换
    DWORD dT_tq_fh;      // 同期判断返回时间
#ifdef VOLT_ADAPTIVE_FACTOR
    bool bTT_AdaptiveFactor; // 投退自适应电压系数，为1时电压值按计算系数匹配10kv上送，不按转发点表配置系数
#endif

    /* 内部定值 */
#ifdef XDL_ZT
    bool bTT_xdl;          // 小电流接地投入，只要任一线路小电流接地投入就投入
    DWORD dU_xdl_u0[2];    // 小电流零压定值
    DWORD dU_xdl_u0_fh[2]; // 小电流零压返回定值
    DWORD dU_xdl_u0_zt[2]; // 小电流零压暂态定值
    DWORD dT_xdl_u0[2];    // 小电流零压时间
    DWORD dU_xdl_22V[2];   // 小电流零压暂态定值
#endif
    float fFZLBXS;                   // 幅值加速滤波系数
    DWORD dTBLValue[SWITCH_NUM_MAX]; // 突变量定值
    DWORD dIWL_SQR[SWITCH_NUM_MAX];  // 无流定值
    DWORD dT_ZZFG;                   // 整组复归时间
    DWORD dT_TZSB;                   // 跳闸失败时间
    DWORD dT_HZSB;                   // 合闸失败时间
    bool bTT_U0BS;                   // 零压闭锁零流
    bool bTT_DDYBS;                  // 低电压闭锁
    DWORD dU_U0BS;                   // 零压闭锁零流定值
    DWORD dU_DDYBS;                  // 低压闭锁过流定值

#ifdef PRO_AL_LOCK_HZ
    bool bTT_JLlockCHZ;          // 解列闭锁重合闸
    bool bTT_StartCHZ_judgeFreq; // 解列后启动重合闸判频率
    bool bTT_StartCHZ_judgeVolt; // 解列后启动重合闸判电压
#endif

    bool bTT_FREQ;          // 频率跟踪投退
    float f_temp_factor_ac; // 交流温漂(ppm)
    float f_temp_factor_dc; // 直流温漂
    bool bTT_RET_ZERO;      // 归零值投退
    bool bTT_U0ZC;          // 零序电压自产

    DWORD dT101Resend;       // 101重发时间
    DWORD dT101Check;        // 101通道检查时间
    bool bTT_101Cot03;       // 101规约初始化结束原因
    bool bTT_104ChkAck;      // 104检查确认序号
    bool bDIContinue;        // 点号不连续
    bool bTT_101FCB;         // 101FCB不判断
    bool bTT_SM2;            // 国网配电加密功能，使用软件加密
    bool bTT_ESAM;           // 国网ESAM加密功能,使用ESAM芯片
    bool bTT_RmtTest;        // 远动测试模式
    DWORD dGroupYxSize;      // 组召遥信分组大小，为0则无效
    DWORD dGroupYcSize;      // 组召遥测分组大小，为0则无效
    bool bTT_SoeResumeComm;  // SOE通讯续传，通讯重连时上送未确认的SOE
    bool bTT_SoeResumePower; // SOE上电续传
    bool bTT_EvFailure;      // 故障事件上送
    bool bTT_EvFailprimary;  // 故障事件上送一次值
    bool bTT_EvFailure_Z;    // 故障事件清零上送
    bool bTT_Ev_AD_LEN;      // 故障事件遥信地址长度
    bool bTT_Package_MutuData;  // 突变数据打包上送
    DWORD bTT_Package_MutuTime; // 突变数据打包时间
#ifdef FIX_PARAM_FORMAT
    bool bTT_Utf8;    // 固定参数上送格式 UTF-8
    bool bTT_Unicode; // 固定参数上送格式 UNICODE
#endif
    WORD wEquTypeDFTU;        // DTFU模式
    WORD wEquTypeManager;     // 通信管理机模式
    float f_yc_filter_factor; // 遥测上送滤波系数

    bool bTT_SY_Board;         // 瞬压板投退
    DWORD dT_cd;               // DFA充电时间
    DWORD dT_glfd;             // DFA隔离放电时间
    DWORD dT_llfd;             // DFA恢复放电时间
    DWORD dT_frobit;           // DFA禁止转发时间
    DWORD dT_sendext;          // DFA发送展宽时间 默认300毫秒
    DWORD dT_goosecheck;       // goose判断时间
    bool bTT_fhkg_pub;         // 负荷开关goose发布
    bool bTT_goose_send_after; // goose发布在故障确认后
    DWORD dT_ldjs;             // 单侧来电解锁时间
    DWORD bTT_bs_ykon;         // FA闭锁合闸禁止遥合
#ifdef FA_PL_PJ
    bool bTT_judgeFreq; // 有压判频率投退
#endif
    bool bTT_UYYmin; // 有压判据
    bool btt_faglfx; // FA过流告警判负序

    DWORD lb_vol_type;            // 录波 电压选择 0 第一组 1第二组 2全部
    bool lb_xyx;                  // 虚拟遥信记录
    bool lb_yx_type;              // 遥信描述类型
    bool lb_dint;                 // 开入数据未防抖
    DWORD lb_sw_num;              // 本开关间隔号

    DWORD dWCN_T;                 // 未储能告警时间
    DWORD dSDYX_T;                // 失电闭锁遥信时间
    float bat_chargeok_time;      // 电池充满维持时间
    bool bTT_HistoryFile;         // 记录文件投退
    bool bTT_MsgFile;             // 记录文件格式 msg格式
    bool bTT_XmlFile;             // 记录文件格式 xml格式
    WORD wHSFileFormat;           // 历史文件格式
    BYTE resReuseFuncSelect;      // 复归按键复用功能选择
    DWORD resReuseFuncFilterTime; // 复归按键复用功能防抖时间
    bool bTT_RmtPara;             // 远动参数有效
    bool bTT_LogPrintf;           // 现场运行模式
    bool bTT_101Transsure;        // 101文件传输确认帧
    DWORD dSmoothZero;            // 测量差值
    DWORD dwZL;                   // 直流电压定值
    DWORD dDc_num;                // 直流通道数量
    DWORD pt2vol;                 // 负荷侧电压选择
    bool bTT_ShowOne;             // 液晶遥测数据显示
#ifdef YC_QUANTITY
    DWORD dYC_num; // 每间隔遥参数量
#endif
#ifdef METERING_ENERGY
    u8 dd_calc_mode; // 电度计算方式
    WORD wJLJX;      // 计量接线方式
    WORD wWGFS;      // 无功方式
#endif
    bool bTT_YC_DeadZone_All; // 遥测总死区有效

    /* 装置参数 一些数据 */
    WORD wDDJG;  // 电度定点间隔
    WORD wDDRL;  // 电度存储容量
    WORD wZDJG;  // 整点间隔
    WORD wZDRL;  // 整点存储容量
    WORD wJZRL;  // 极值存储容量
    WORD wCAPJG; // 电容器管理间隔
    WORD wCAPRL; // 电容器管理存储容量
    WORD wUDCRL; // 电池电压存储容量

    bool bTT_CheckPhase; // 相序检查
    bool bTT_CTYC;       // CT异常检查
    // 内部参数
    DWORD dKU[PUB_AC_NUM]; // 相电压比例系数1V对应的码值*256

    float pt_rate; // PT变比
    DWORD dT_XCY;  // 残压时间定值

    // 常量定值
    DWORD dU02V_SQR;
    DWORD dVOL10V_SQR;
    DWORD dVOL16V_SQR;
    DWORD dVOL50V_SQR;
    DWORD dVOL90V_SQR;
    DWORD dVOL70V_SQR;
} TSET;

/**********************************************************
运行参数由两部份组成，装置参数，测控参数
通信参数及测控参数校验错误，将点亮告警灯，但不闭锁保护
***********************************************************/
typedef struct RUN_PARA
{
    WORD byAddr;      // 装置地址
    bool bDPI;        // 遥信类型，双点信息上送
    bool bSDPI;       // 遥信类型，单双点
    int YKtype;       // 遥控类型，双点信息上送
    bool bYcBDH;      // 遥测类型，上送标度化值
    bool bYcFloat;    // 遥测上送 浮点数
    float fYcTime;    // 遥测发送间隔
    bool bAutoSendYc; // 遥测自动上送
    bool bDeadType;   // 遥测死区类型
    bool bAutoCos;    // cos 自动上传
    bool bEvPara;     // cos 自动上传
    DWORD dYKTime;    // 遥控超时时间
    DWORD dSM2Time;   // 加密遥控超时时间
    DWORD dYTTime;    // 遥调超时时间

    bool b101Addr2Byte;    // 101链路地址
    bool b101App2Byte;     // 101应用地址
    bool b101Cot2Byte;     // 101传送原因
    bool bytes101InfoAddr; // 101信息体地址三字节

	DWORD   d104Intervalms;	// 104应答间隔
	bool 	b104FileSure;	// 104响应读文件确认

    WORD w104Port; // 104规约端口号，默认2404
    WORD w104AckTime;  // 104确认超时
    WORD w104TestTime; // 104测试超时
    WORD w104K;        // 104 K值,为0则K值无效。
    WORD w104W;        // 104 W值,为0则W值无效。
    bool b104Client;

    DWORD ip104Master1; // 104主站IP1
    DWORD ip104Master2; // 104主站IP2
    DWORD ip104Master3; // 104主站IP3
    DWORD ip104Master4; // 104主站IP4
    DWORD ip104Master[4];

    volatile DWORD ip104Link[CFG_LINK_104_NUM]; // 104级联IP
    DWORD dLinkCallTime;

    SERIAL_PARA tUartPara[CFG_UART_NUM_MAX]; // 串口参数
    NET_PARA tNetPara[CFG_ETH_MAX_LOGIC];    // 逻辑网络参数

    bool bGPS; // 对时方式

    // TODO 待与GPS对时对接 EWen
    WORD set_time_mode;    // 对时方式 0: 全方式 1：仅卫星 2：仅主站 3：仅时间同步装置
    bool bGPS_sync_enable; //
    WORD GPS_sync_time;    // 卫星对时间隔
    WORD GPS_switch_delay; // 卫星对时切换延时

    DWORD dTBatBegin;    // 电池活化启动时间
    DWORD dTBatInterval; // 电池活化间隔
    float bat_alarm;     // 电池告警阀值

    bool bAutoRst;      // 自动复归
    DWORD dTRstT;       // 自动复归时间
    DWORD dLightTime;   // lcd 背光时间，0代表永不熄灭 1分钟，3分钟，5分钟，10分钟，30分钟，60分钟，
    DWORD dMainTime;    // 返回主界面
    DWORD dLinkStateCh; // 级联通道监视

#ifdef YX_RESET_TIME
    DWORD dTEventRst; // 故障遥信保持时间
#endif
    float fT_LBXH_RST; // 录波信号返回时间
    WORD wYXFD;        // 遥信防抖时间
    WORD wFZMC;        // 分闸脉冲时间
    WORD wHZMC;        // 合闸脉冲时间

#ifdef CPU_FUXI
    float wDC_ZERO; // 直流零飘值
#endif

    WORD wFAFZT; // FA 逻辑用分合闸脉冲
    WORD wFAHZT; // 合闸脉冲时间

    SYSTEM_DATA sysData; // 系统掉电保存数据
    WORD wPassword;      // 密码
    BYTE wPasswordstr[10];
    BYTE wPasswordstr2[10];
    bool sock_104_flag; // 104 socket初始化标志
#if defined GD_AREA_ZHONGSHAN || defined GD_AREA_ZHONGSHAN_2020
    WORD gse_id; // goose通信ID
    DWORD gse_T1;
    DWORD gse_T2;
#endif
    bool b_lb_master;  // 级联录波主站使能
    bool b_ypar_slave; // 参数变化通知使能
#ifdef FUN_FUXI_ESAM
    WORD s1_mode;
    WORD s1_port;      // 加密芯片端口号
    DWORD s1_nat;      // 加密芯片IP
    DWORD s1_ip;       // 加密芯片IP
    DWORD s1_mask;     // 掩码
    DWORD s1_gate;     // 网关
    DWORD s1_far_ip;   // 远端IP
    DWORD s1_far_mask; // 掩码
    DWORD s1_far_gate; // 网关
#endif

#ifdef METERING_ENERGY
    bool bTT_LLFile;
    WORD wSWID;
    WORD wMonday;
    WORD wMonhour;
#endif

    DWORD dZero_U; // 电压零漂
    DWORD dZero_I; // 电流零漂

} RUN_PARA;

// 有效定值区
typedef struct TSECTIONINFO
{
    short sCurSec;               // 当前运行定值区
    BYTE szSections[SEC_NUMBER]; // 0x55=定值有效,0=定值无效
} TSECTIONINFO;

// 定值列表描述结构体
typedef struct SET_LIST
{
    char *str; // 索引名称
    DWORD dat; // 索引代表的值
} SET_LIST;

// #ifdef YPARA_LINK
enum
{
    LINK_NET = 0, /*网路级联*/
    LINK_S1,      /*串口级联*/
};

// 定值列表描述结构体
typedef struct SET_PARAID
{
    u32 parId;
    u8 group_type;
    u16 setno;

    u16 b_rd_only;
    /*级联信息*/
    u8 link_ch;
    u32 link_cp;
} SET_PARAID;

// 定值列表描述结构体
// typedef union set_para_v
//{
//	float f_val;
// char  str[32];
//}set_para_v;

typedef struct SET_PARA_VAL
{
    u8 datatype; /*数据类型*/
    u8 len;
    u8 str[64];
} SET_PARA_VAL;
// #endif

#ifdef YPARA_LINK
extern SET_PARA_VAL tPara_val[MAX_SET_NUMBER];
#endif // 定值列表描述结构体

extern SET_PARAID tParaID[];
extern int ParaIDNum;
// 整定值参数表结构
typedef struct TSETTABLE
{
    WORD wType;                 // 定值类型
    WORD wUnit;                 // 定值单位
    float fMin;                 // 最小值
    float fMax;                 // 最大值
    float fDef;                 // 缺省值
    const SET_LIST *list;       // 索引列表首地址
    int listnum;                // 索引列表内容个数
    u32 group;                  // 定值分组
    float fStep;                // 步长
    char szName[PARA_NAME_LEN]; // 定值名称
} TSETTABLE;

struct set_disp_index
{
    int num; // 按开关重新分配后的定值总数
    int swnum;
    u16 no[MAX_SET_NUMBER];        // 重新编号的定值顺序
    u16 Y_offset[MAX_SET_NUMBER];  // 重新编号的定值现实位置
    u16 screennum[MAX_SET_NUMBER]; // 每屏定值数
    u16 bgn[MAX_SET_NUMBER];       // 每屏定值数
};

typedef struct
{
    BYTE valType;       // 定值类型
    WORD arrIndex;      // 定值在数组里的索引号
    WORD forwardAddr;   // 转发地址
} CSTVAL_FORWARD_TABLE; // 遥参转发表

// 远方修改定值数据类型定义

#define NULL_R 0    // 无
#define BOOL_R 1    // 布尔		Boolean	1	1	1:true,0:false
#define TINY_R 43   // 小整形	Tiny	43	1	-128…127
#define UTINY_R 32  // 无符号	小整形	UTiny	32	1	0…255
#define SHORT_R 33  // 短整形	Short	33	2	-32768…32767
#define USHORT_R 45 // 无符号	短整形	UShort	45	2	0…65535
#define INT_R 2     // 整形		Int	2	4	-2^31…2^31-1
#define UINT_R 35   // 无符号整形	Uint	35	4	0…2^32-1
#define LONG_R 36   // 长整形	Long	36	8	-2^63…2^63-1
#define ULONG_R 37  // 无符号长整形	Ulong	37	8	0…2^64-1
#define FLOAT_R 38  // 单精度浮点	Float	38	4	-3.4028235E+38…3.4028235E+38
#define DOUBLE_R 39 // 双精度浮点	Double	39	8	-1.79769313486231570E+308
#define STR_R 4     // OcterString	4	可变	OcterString
#define STR_E 8     // EightString	8	8位位串

// 根据多间隔预留遥调缓存个数 
#define RMT_SET_NUMBER (SWITCH_NUM_MAX * 200 + 64)

// 通用定值
enum
{
#if !defined CPU_FUXI
    FIXED_SET_EQU = 0, // 终端类型
    FIXED_SET_SYS,     // 终端操作系统
    FIXED_SET_MAU,     // 终端制造商
    FIXED_SET_HVR,     // 终端硬件版本
    FIXED_SET_SVR,     // 终端软件版本
    FIXED_SET_CRC,     // 终端软件版本校验码
    FIXED_SET_COM,     // 终端通信规约类型
    FIXED_SET_TPE,     // 终端出厂型号
    FIXED_SET_ID,      // 终端ID号
    FIXED_SET_MAC1,    // 终端网卡1MAC地址
    FIXED_SET_MAC2,    // 终端网卡2MAC地址
    FIXED_SET_PTRATE,  // PT变比
    FIXED_SET_CTRATE,  // CT变比
#else
    FIXED_SET_ID = 0,       // 终端ID
    FIXED_SET_MAU,          // 终端厂商
    FIXED_SET_TPE,          // 终端型号
    FIXED_SET_HVR,          // 终端硬件版本
    FIXED_SET_SVR,          // 终端软件版本
    FIXED_SET_COM,          // 规约参数
    FIXED_SET_EQU_ADDR,     // 终端逻辑地址
    FIXED_SET_YC_DEAD_ZONE, // 遥测死区
    FIXED_SET_DI_AS_TIME,   // 开入量采集防抖时间
    FIXED_SET_BAAC,         // 蓄电池自动活化周期
    FIXED_SET_IP_M1,        // 主站侧IP1地址
    FIXED_SET_IP_M2,        // 主站侧IP2地址
    FIXED_SET_IP_M3,        // 主站侧IP3地址
    FIXED_SET_IP_M4,        // 主站侧IP4地址
    FIXED_SET_CRC,          // 软件校验
    FIXED_SET_MAN,          // 终端名称
    FIXED_SET_CPT,          // 编译时间
#endif
    FIXED_SET_MAX,
};

// 整定值参数表结构
typedef struct TRMTSETTABLE
{
    WORD di;     // 对应点号
    WORD unit;   // 定值单位
    WORD group;  // 定值组属性
    WORD offset; // 开关定值偏移索引
    float rate;  // 系数
    WORD index;  // 对应索引
} TRMTSETTABLE;

enum
{
    RMT_GRP_PUSET = 0, // 公共定值
    RMT_GRP_SWSET,     // 开关定值
    RMT_GRP_EQSET,     // 装置参数
    RMT_GRP_CSSET,     // 内部定值
    RMT_GRP_NUMBER,
};

typedef struct TFIXEDSETTABLE // 固定定值表
{
    WORD index;
    WORD di;    // 对应点号
    WORD unit;  // 定值单位
    char *vstr; // 值
    char *name;
} TFIXEDSETTABLE;

/*------------------------------ 变量声明 -------------------------------------
 */
extern const TRMTSETTABLE tRmtsettable[]; // 定值
extern const int RMT_SET_TABLE_NUMBER;
extern const TFIXEDSETTABLE tfixedsettable[]; // 固有参数
extern const int FIXEDSET_TABLE_NUMBER;
extern WORD m_runsection;                 // 当前定值区号
extern int g_goose_net_type;
extern TSECTIONINFO tSecInfo;             // 定值信息(包括定值区号及有效定值区)
extern const TSETTABLE tEquipParaTable[]; // 装置参数
extern const int EQUIP_PARA_NUMBER;       // 装置参数个数
extern const TSETTABLE tSwSetTable[];     // 保护定值
extern const int SW_SET_NUMBER;           // 保护定值总个数
extern const int SET_NUMBER;              // 全部开关保护定值总个数
extern const TSETTABLE tPubSetTable[];    // 公共定值
extern const int PUB_SET_NUMBER;          // 公共定值总个数
extern const TSETTABLE tCstSetTable[];    // 内部定值
extern const int CSTSET_NUMBER;           // 内部定值个数
extern RUN_PARA tRunPara;
extern TSET tRunSet[]; // 运行定值缓冲区
extern TSET *pRunSet;
extern const TSETTABLE tPasswordTable[];
extern const int TIME_SET_NUMBER;
extern const TSETTABLE tTimeTable[];
extern const TSETTABLE tPasswordTable[];
extern TSECTIONINFO tSecInfo; // 定值信息(包括定值区号及有效定值区)
extern const char *SetUints[];
extern bool bRunSetModify;
extern const int CODE_SET_NUMBER;
extern const TSETTABLE tCodeTable[];
extern u16 g_crc_set_desc;
extern u16 g_crc_set_data;
extern struct set_disp_index g_set_disp; // 挑选后的保护定值
extern BH_SET_GROUP SetGroups[];         // 单位符号定义，对应定值
extern const SET_LIST BaudList[];        // 波特率列表

/*------------------------------ 函数声明 -------------------------------------
 */
bool ReadEppData(DWORD wAddr, void *pdat, WORD num);
bool SaveEppData(DWORD wAddr, void *pdat, WORD num);
bool CheckRunSet(void);
bool MakeRunSet(bool bFirst);
void MakeRunPara(bool bFirstInit, bool bUboot); // 增加UBoot环境变量相关操作.bUboot=true,表示从环境变量中读出来.bUboot=false,表示写到环境变量中.
bool ReadPara(void *pbuf, DWORD wAddr, WORD num, const TSETTABLE *pTable);
bool SavePara(void *pbuf, DWORD wAddr, WORD num, const TSETTABLE *pTable);
void GetDefPara(float *pbuf, WORD num, const TSETTABLE *pTable);
bool ReadSysData(SYSTEM_DATA *st);
bool WriteSysData(SYSTEM_DATA *st);
WORD ReadPassword(void);
bool SavePassword(BYTE *str);
bool SavePassword2(BYTE *str);
bool SaveSet(WORD setno, void *pf);
bool ReadSet(WORD setno, void *pbuf);
void GetDefSet(float *pbuf);
int set_get_network_id_from_socket(SOCKET s);
int set_get_list_index(const SET_LIST *p_list);
int set_create_desc_file(void);
int set_create_data_file(void);
int set_save_data_file(s32 index);
void create_set_file(void);
int get_ethcnt(int no, int eth_id);
int set_get_fixed_arg(int index, char *buf, int len);
int set_get_fixed_args_sz(int index, char *buf, int len);
void GetDefDebugNetPara(void);
int print_EquipParaTable(void);
void mmd_get_set_dip_index(const TSETTABLE *pTable, int num);
void ReadUqua(void);
void SaveUqua(bool clr);
void GetDefSetGroup(u8 *dat);
void fresh_set_soe(WORD soe_no, bool bY, bool bFirst, int sw);
void create_set_data_txt(void); // 生成txt格式的定值文件，保存在tmp文件下
void get_yx_ac(u8 index, u32 type);
WORD GetCstValForwardAddr(const BYTE type, const int index);
extern DWORD GetSetSQR(float ff, float fk);
extern void check_shmdata_change(void);
extern uint16_t setio_get_fixarea(void);
extern uint16_t setio_get_fixarearange(uint8_t _uc_choose);

#endif //__SET_H
//========================== 本文件结束 =============================
