/**
*  @file		    hd3Enum.h
*  @brief		hd3 enum
*  @author:    hd3 tream
*  @date		   03/02/2015
*  @version     initialize version
*  Copyright:   Shanghai Baosight Software Co., Ltd.
*/
#ifndef HD3_INCLUDE_GUARD_HD3ENUM_H
#define HD3_INCLUDE_GUARD_HD3ENUM_H

/*
* most enumerations in ihyperdb.h are transplanted here
* MIN in enum is the minimum legal value
* MAX in enum is the maximum legal value
*/

#define HD3_A  // add
#define HD3_D  // delete
#define HD3_M  // modify

// 接口参数输入输出标识
#define hd3_in
#define hd3_out
#define hd3_inout

// 长度限制
enum {
	HD3_PAGE_SIZE = 4096,
	HD3_LEN_IP = 16,
	HD3_LEN_MAC = 32,
	HD3_LEN_ADDRESS = 256,
	HD3_LEN_TAG_NAME = 128,
	HD3_LEN_TAG_DESC = 1024,
	HD3_LEN_USER_NAME = 32,
	HD3_LEN_USER_DESC = 64,
	HD3_LEN_PASSWORD = 64,
	HD3_LEN_TRUST_NAME = 64,
	HD3_LEN_AUTH_NAME = 32,
	HD3_LEN_AUTH_DESC = 64,
	HD3_LEN_GROUP_NAME = 32,
	HD3_LEN_GROUP_DESC = 64,
	HD3_LEN_ENG_UNITS = 32,
	HD3_LEN_INSTRUMENT_ADDRESS = 256,
	HD3_LEN_INTERFACE_NAME = 64,
	HD3_LEN_DIGITAL_SET_NAME = 32,
	HD3_LEN_DIGITAL_SET_STATE_NAME = 32,
	HD3_LEN_EXT_STRING = 512, 
	// 报警相关
	HD3_LEN_ALARM_TEST = 128,
	HD3_LEN_ALARM_ACTION = 128,
	HD3_LEN_ALARM_GROUP_NAME = 128,
	HD3_LEN_ALARM_GROUP_DESC = 128,
	HD3_LEN_ALARM_COMMENT = 256,
	// 查询项
	HD3_LEN_QUERY_ITEM_VALUE = 128,
	// 采集器相关
	HD3_LEN_COLLECTOR_NAME = 64,
	HD3_LEN_COLLECTOR_DESC = 128,
	HD3_LEN_COLLECTOR_EXT_PARAM = 512,
	// 设备相关
	HD3_LEN_DEVICE_NAME = 64,
	HD3_LEN_DEVICE_DESC = 128,
	HD3_LEN_DEVICE_ADDRESS = 32,
	HD3_LEN_DEVICE_EXT_PARAM = 512,
	// 扫描组相关
	HD3_LEN_SCANGROUP_NAME = 64,
	HD3_LEN_SCANGROUP_DESC = 128,
	HD3_LEN_SCANGROUP_EXT_PARAM = 512,
	// 过滤表达式
	HD3_LEN_FILTER_EXPR = 128,
	// 计算表达式
	HD3_LEN_CALC_EXPR = 256,
	// iHyperDB数据源名称
	HD3_LEN_HD_SRV_NAME = 64,
	// 源值长度
	HD3_LEN_VAR_TYPE_VALUE = 1000,
	// OEM
	HD3_LEN_LICENSE_OEM_VCODE = 4,
	// server node
	HD3_LEN_NODE_NAME = 32,
	HD3_LEN_NODE_DESC = 64,
	//hd version
	HD3_LEN_HD_VERSION = 128
};

// 个数以及值限制
enum {
	HD3_DIGITALSET_STATE_MAX_NUM = 256,
	HD3_DIGITALSET_STATE_VAL_MIN = -128,
	HD3_DIGITALSET_STATE_VAL_MAX = 127,
	HD3_API_TAG_NUM_MAX = 65535,
	HD3_API_CLIENT_MAX_SOCKET_NUM = 100,  // 单台机器上API最多SOCKET个数
	HD3_API_BATCH_ADD_MAX_TAG_NUM = 1000  // 批量接口每次添加的最大点数
};

//云同步点特有属性
enum HD3_CLOUD_PROP_ENUM {
	HD3_CLOUD_PROP_MIN = 0,
	HD3_CLOUD_PROP_TAG_NAME = HD3_CLOUD_PROP_MIN,
	HD3_CLOUD_PROP_SERVERID,
	HD3_CLOUD_PROP_SYNC,   //注册方式
	HD3_CLOUD_PROP_PERIOD,   //同步周期
	HD3_CLOUD_PROP_COMP_DEV,
	HD3_CLOUD_PROP_CREATION_DATE,
	HD3_CLOUD_PROP_CHANGE_VERSION,
	HD3_CLOUD_PROP_MAX = HD3_CLOUD_PROP_CHANGE_VERSION
};

//云同步点特有属性
enum HD3_BIG_DATA_PROP_ENUM {
	HD3_BIG_DATA_PROP_MIN = 0,
	HD3_BIG_DATA_PROP_TAG_NAME = HD3_CLOUD_PROP_MIN,
	HD3_BIG_DATA_PROP_SERVERID,
	HD3_BIG_DATA_PROP_SYNC,   //注册方式
	HD3_BIG_DATA_PROP_PERIOD,   //同步周期
	HD3_BIG_DATA_PROP_COMP_DEV,
	HD3_BIG_DATA_PROP_CREATION_DATE,
	HD3_BIG_DATA_PROP_CHANGE_VERSION,
	HD3_BIG_DATA_PROP_CLOUD_EN_NAME,
	HD3_BIG_DATA_PROP_REFERENCE_EN_NAME,
	HD3_BIG_DATA_PROP_REFERENCE_CH_NAME,
	HD3_BIG_DATA_PROP_REFERENCE_SOURCE_IDENTIFIER,
	HD3_BIG_DATA_PROP_UNIT_NUMBER,
	HD3_BIG_DATA_PROP_MAX = HD3_BIG_DATA_PROP_UNIT_NUMBER
};

// Tag属性列
enum HD3_COMM_PROP_ENUM {  // 基本的Tag属性
	HD3_COMM_PROP_MIN = 0,
	HD3_COMM_PROP_TAG_NAME = HD3_COMM_PROP_MIN,
	HD3_COMM_PROP_ARCHIVING,
	HD3_COMM_PROP_CHANGE_DATE,
	HD3_COMM_PROP_CHANGER,
	HD3_COMM_PROP_COMP_DEV,
	HD3_COMM_PROP_COMP_MAX_TIME,
	HD3_COMM_PROP_COMP_TYPE,
	HD3_COMM_PROP_CREATION_DATE,
	HD3_COMM_PROP_CREATOR,
	HD3_COMM_PROP_REC_ACCESS,
	HD3_COMM_PROP_REC_NORMAL_GROUP,
	HD3_COMM_PROP_REC_OWNER_GROUP,
	HD3_COMM_PROP_DESCRIPTOR,
	HD3_COMM_PROP_DIGITAL_SET,
	HD3_COMM_PROP_ENG_UNITS,
	HD3_COMM_PROP_EXC_MAX_TIME,
	HD3_COMM_PROP_EXC_DEV,
	HD3_COMM_PROP_TAGID,
	HD3_COMM_PROP_TAG_TYPE,
	HD3_COMM_PROP_TAG_ACCESS,
	HD3_COMM_PROP_TAG_NORMAL_GROUP,
	HD3_COMM_PROP_TAG_OWNER_GROUP,
	HD3_COMM_PROP_SCAN,
	HD3_COMM_PROP_SPAN,
	HD3_COMM_PROP_MIN_VALUE,
	HD3_COMM_PROP_TAG_CLASS,
	HD3_COMM_PROP_TAG_AVALIABLE,
	HD3_COMM_PROP_PARAM1,
	HD3_COMM_PROP_PARAM2,
	HD3_COMM_PROP_PARAM3,
	HD3_COMM_PROP_PARAM4,
	HD3_COMM_PROP_PARAM5,
	HD3_COMM_PROP_OPC_STATE,
	HD3_COMM_PROP_IMV_STRING,
	HD3_COMM_PROP_EXT_STRING1,
	HD3_COMM_PROP_EXT_STRING2,
	HD3_COMM_PROP_MAX = HD3_COMM_PROP_EXT_STRING2
};

enum HD3_PT_EXT_PROP_ENUM {  // 普通点特有的属性
	HD3_PT_EXT_PROP_MIN = 0,
	HD3_PT_EXT_PROP_INSTRUMENT_ADDRESS = HD3_PT_EXT_PROP_MIN,
	HD3_PT_EXT_PROP_INSTRUMENT_ADDRESS_TYPE,
	HD3_PT_EXT_PROP_COLLECTOR_NAME,
	HD3_PT_EXT_PROP_COLLECTOR_ID,
	HD3_PT_EXT_PROP_DEVICE_NAME,
	HD3_PT_EXT_PROP_DEVICE_ID,
	HD3_PT_EXT_PROP_SCAN_GROUP_NAME,
	HD3_PT_EXT_PROP_SCAN_GROUP_ID,
	HD3_PT_EXT_PROP_DATA_ORDER,
	HD3_PT_EXT_PROP_MAX = HD3_PT_EXT_PROP_DATA_ORDER
};

enum HD3_AM_EXT_PROP_ENUM {  // 报警点特有的属性
	HD3_AM_EXT_PROP_MIN = 0,
	HD3_AM_EXT_PROP_TEST1 = HD3_AM_EXT_PROP_MIN,
	HD3_AM_EXT_PROP_TEST2,
	HD3_AM_EXT_PROP_TEST3,
	HD3_AM_EXT_PROP_TEST4,
	HD3_AM_EXT_PROP_ACTION1,
	HD3_AM_EXT_PROP_ACTION2,
	HD3_AM_EXT_PROP_ACTION3,
	HD3_AM_EXT_PROP_ACTION4,
	HD3_AM_EXT_PROP_SOURCE_TAG,
	HD3_AM_EXT_PROP_ALARM_GROUP_ID,
	HD3_AM_EXT_PROP_AUTOACK,
	HD3_AM_EXT_PROP_TIME_DEADBAND,
	HD3_AM_EXT_PROP_VALUE_DEADBAND,
	HD3_AM_EXT_PROP_MAX = HD3_AM_EXT_PROP_VALUE_DEADBAND
};

enum HD3_ST_EXT_PROP_ENUM {  // 统计点特有的属性
	HD3_ST_EXT_PROP_MIN = 0,
	HD3_ST_EXT_PROP_SOURCE_TAG_NAME = HD3_ST_EXT_PROP_MIN,
	HD3_ST_EXT_PROP_STATS_TYPE,
	HD3_ST_EXT_PROP_SAMPLE_START_DATE,
	HD3_ST_EXT_PROP_SAMPLE_MODE,
	HD3_ST_EXT_PROP_SAMPLE_INTERVAL,
	HD3_ST_EXT_PROP_SAMPLE_BEGIN_OFFSET,
	HD3_ST_EXT_PROP_SAMPLE_END_OFFSET,
	HD3_ST_EXT_PROP_SAMPLE_MONTH_BEGIN_DAY,
	HD3_ST_EXT_PROP_SAMPLE_MONTH_END_DAY,
	HD3_ST_EXT_PROP_BEGIN_TIMESTAMP,
	HD3_ST_EXT_PROP_TIMESTAMP_OFFSET,
	HD3_ST_EXT_PROP_SCAN_PERIOD,
	HD3_ST_EXT_PROP_PCT_GOOD,
	HD3_ST_EXT_PROP_FILTER_EXPR,
	HD3_ST_EXT_PROP_DROP_BAD_MODE,
	HD3_ST_EXT_PROP_COUNT_PARAM1,
	HD3_ST_EXT_PROP_COUNT_PARAM2,
	HD3_ST_EXT_PROP_SAMPLE_TYPE,
	HD3_ST_EXT_PROP_INTERP_OFFSET,
	HD3_ST_EXT_PROP_INTERP_PERIOD,
	HD3_ST_EXT_PROP_CONVER_TYPE,
	HD3_ST_EXT_PROP_CONVERSION,
	HD3_ST_EXT_PROP_FILTER_FAIL_MODE,
	HD3_ST_EXT_PROP_CALC_PERIOD,
	HD3_ST_EXT_PROP_RESET,
	HD3_ST_EXT_PROP_USE_BAD_VALUE,
	HD3_ST_EXT_PROP_MAX = HD3_ST_EXT_PROP_USE_BAD_VALUE
};

enum HD3_CA_EXT_PROP_ENUM {  // 计算点特有的属性
	HD3_CA_EXT_PROP_MIN = 0,
	HD3_CA_EXT_PROP_CALC_MODE = HD3_CA_EXT_PROP_MIN,
	HD3_CA_EXT_PROP_CALC_PERIOD,
	HD3_CA_EXT_PROP_CALC_EXPR,
	HD3_CA_EXT_PROP_CALC_HISTORY,
	HD3_CA_EXT_PROP_CALC_START_DATE,
	HD3_CA_EXT_PROP_CALC_END_DATE,
	HD3_CA_EXT_PROP_HAVE_END_TIME,
	HD3_CA_EXT_PROP_SOURCE_TAG,
	HD3_CA_EXT_PROP_MAX = HD3_CA_EXT_PROP_SOURCE_TAG
};

enum HD3_SPC_EXT_PROP_ENUM {  // SPC报警点特有的属性
	HD3_SPC_EXT_PROP_MIN = 0,
	HD3_SPC_EXT_PROP_SOURCE_TAG_NAME = HD3_SPC_EXT_PROP_MIN,
	HD3_SPC_EXT_PROP_ALARM_GROUP_ID,
	HD3_SPC_EXT_PROP_CTRL_CHART_TYPE,
	HD3_SPC_EXT_PROP_TRIGGER_MODE,
	HD3_SPC_EXT_PROP_SAMPLE_SIZE,
	HD3_SPC_EXT_PROP_SAMPLE_INTERVAL,
	HD3_SPC_EXT_PROP_AUTO_ACK,
	HD3_SPC_EXT_PROP_RULE,
	HD3_SPC_EXT_PROP_MAX = HD3_SPC_EXT_PROP_RULE
};

// 字符编码格式
enum HD3_CHARSET {
	HD3_SYS,  // 系统默认字符集
	HD3_ANSI,  // ANSI 字符集,包含GB2312,GBK,GB18030
	HD3_UNICODE  // Unicode字符集
};

// 网络连接状态
enum HD3_NET_STATUS {
	HD3_NET_GOOD = 0,  // net(connect) good
	HD3_NET_BAD
};

// 许可证状态
enum HD3_LICENSE {
	HD3_LICENSE_INVALID = 0,  // 许可证无效，一般是2小时试用版过期
	HD3_LICENSE_VALID,  // 有效许可证
	HD3_LICENSE_VALID_TEMP  // 临时许可证，2小时试用版
};

// 数据质量
enum HD3_QUALITY {
	HD3_QUALITY_GOOD = 0xC0,  // 一个典型的Good值, 192
	HD3_QUALITY_BAD = 0xFF3F,  // 质量为Bad
	//统计记录用这个值来表示统计区域没有一条Good的原始记录，质量为bad
	HD3_QUALITY_BAD_STATS_NO_GOOD_REC = 0xFF3E,
	// 表达式过滤
	HD3_QUALITY_EXPR_FILTER = 65527,
	// 设备状态点质量
	HD3_QUALITY_DEVICE_MIN = 65528,
	HD3_QUALITY_DEVICE_DISCONN = 65528,
	HD3_QUALITY_DEVICE_CONN = 65529,
	HD3_QUALITY_DEVICE_MAX = 65529,
	// 采集器状态点质量
	HD3_QUALITY_CT_MIN = 65530,
	HD3_QUALITY_CT_TIMEOUT = 65530,
	HD3_QUALITY_CT_SHUTDOWN = 65531,
	HD3_QUALITY_CT_ACTIVE = 65532,
	HD3_QUALITY_CT_BOOTING = 65533,
	HD3_QUALITY_CT_MAX = 65533,
	// 无法连接设备
	HD3_QUALITY_IO_TIMEOUT = 65534,
	// 停机记录
	HD3_QUALITY_IO_HALT = 65535
};

// Tag点类型
enum HD3_TAG_TYPE {
	HD3_TAG_TYPE_MIN = 0,
	HD3_TAG_TYPE_INT8 = HD3_TAG_TYPE_MIN,
	HD3_TAG_TYPE_INT16,
	HD3_TAG_TYPE_INT32,
	HD3_TAG_TYPE_FLOAT32,
	HD3_TAG_TYPE_FLOAT64,
	HD3_TAG_TYPE_DIGITAL,
	HD3_TAG_TYPE_STRING,
	HD3_TAG_TYPE_BLOB,
	HD3_TAG_TYPE_MAX = HD3_TAG_TYPE_BLOB
};

// Tag点类别
enum HD3_TAG_CLASS {
	HD3_TAG_CLASS_MIN = 0,
	HD3_TAG_CLASS_BASIC = HD3_TAG_CLASS_MIN,
	HD3_TAG_CLASS_ALARM,
	HD3_TAG_CLASS_STATS,
	HD3_TAG_CLASS_CALC,
	HD3_TAG_CLASS_SPC,
	HD3_TAG_CLASS_SYS,
	HD3_TAG_CLASS_MAX = HD3_TAG_CLASS_SYS
};

// Tag是否可用
enum HD3_TAG_AVALIABLE {
	HD3_TAG_AVALIABLE_MIN = 0,
	HD3_TAG_AVALIABLE_NO = HD3_TAG_AVALIABLE_MIN,
	HD3_TAG_AVALIABLE_YES,
	HD3_TAG_AVALIABLE_MAX = HD3_TAG_AVALIABLE_YES
};

// 扫描类型
enum HD3_SCAN_TYPE {
	HD3_SCAN_TYPE_MIN = 0,
	HD3_SCAN_TYPE_POOL = HD3_SCAN_TYPE_MIN,  // 轮询模式
	HD3_SCAN_TYPE_ADVISE,  // 通知模式
	HD3_SCAN_TYPE_MAX = HD3_SCAN_TYPE_ADVISE
};

// 压缩类型
enum HD3_COMP_TYPE {
	HD3_COMP_TYPE_MIN = 0,
	HD3_COMP_TYPE_NO = HD3_COMP_TYPE_MIN,
	HD3_COMP_TYPE_SDT,
	HD3_COMP_TYPE_MAX = HD3_COMP_TYPE_SDT
};

// 报警变更类型
enum HD3_AM_CHANGE {
	HD3_AM_CHANGE_MIN = 0,
	HD3_AM_CHANGE_NEW = HD3_AM_CHANGE_MIN,
	HD3_AM_CHANGE_ACK,
	HD3_AM_CHANGE_RESTORE,
	HD3_AM_CHANGE_COMMENT,
	HD3_AM_CHANGE_MAX = HD3_AM_CHANGE_COMMENT
};

// 报警确认方式
enum HD3_AM_ACK_TYPE {
	HD3_AM_ACK_TYPE_MIN = 0,
	HD3_AM_ACK_TYPE_MANUAL = HD3_AM_ACK_TYPE_MIN,
	HD3_AM_ACK_TYPE_AUTO,
	HD3_AM_ACK_TYPE_MAX = HD3_AM_ACK_TYPE_AUTO
};

// 监视点类型
enum HD3_MONITOR_TYPE {
	HD3_MONITOR_TYPE_MIN = 0,
	HD3_MONITOR_TYPE_ALARM = HD3_MONITOR_TYPE_MIN,
	HD3_MONITOR_TYPE_MAX = HD3_MONITOR_TYPE_ALARM
};

// 报警查询索引
enum HD3_AM_REC_QUERY {
	HD3_AM_REC_QUERY_MIN = 0,
	HD3_AM_REC_QUERY_PRIORITY = HD3_AM_REC_QUERY_MIN,  // 优先级
	HD3_AM_REC_QUERY_ACK,  // 确认状态
	HD3_AM_REC_QUERY_ALARM_TYPE,  // 报警类型
	HD3_AM_REC_QUERY_NORMAL,  // 是否查询正常的报警记录
	HD3_AM_REC_QUERY_MAX = HD3_AM_REC_QUERY_NORMAL
};

// 报警确认类型
enum HD3_AM__REC_ACK_TYPE {
	HD3_AM__REC_ACK_TYPE_MIN = 1,
	HD3_AM__REC_ACK_TYPE_MANUAL = HD3_AM__REC_ACK_TYPE_MIN,
	HD3_AM__REC_ACK_TYPE_AUTO,
	HD3_AM__REC_ACK_TYPE_MAX = HD3_AM__REC_ACK_TYPE_AUTO
};

// 报警确认状态
enum HD3_AM_REC_ACK_STATE {
	HD3_AM_REC_ACK_STATE_MIN = 0,
	HD3_AM_REC_ACK_STATE_NO = HD3_AM_REC_ACK_STATE_MIN,
	HD3_AM_REC_ACK_STATE_YES,
	HD3_AM_REC_ACK_STATE_MAX = HD3_AM_REC_ACK_STATE_YES
};

// 报警恢复状态
enum HD3_AM_REC_RESTORE_STATE {
	HD3_AM_REC_RESTORE_STATE_MIN = 0,
	HD3_AM_REC_RESTORE_STATE_NO = HD3_AM_REC_RESTORE_STATE_MIN,
	HD3_AM_REC_RESTORE_STATE_YES,
	HD3_AM_REC_RESTORE_STATE_MAX = HD3_AM_REC_RESTORE_STATE_YES
};

// 报警记录的优先级
enum HD3_AM_REC_PRIORITY {
	HD3_AM_REC_PRIORITY_MIN = 1,
	HD3_AM_REC_PRIORITY_FIRST = HD3_AM_REC_PRIORITY_MIN,
	HD3_AM_REC_PRIORITY_SECOND,
	HD3_AM_REC_PRIORITY_THIRD,
	HD3_AM_REC_PRIORITY_FORTH,
	HD3_AM_REC_PRIORITY_MAX = HD3_AM_REC_PRIORITY_FORTH
};

// 报警类型
enum HD3_AM_REC_TYPE {
	HD3_AM_REC_TYPE_MIN = 1,
	HD3_AM_REC_TYPE_LOLO = HD3_AM_REC_TYPE_MIN,
	HD3_AM_REC_TYPE_LOW,
	HD3_AM_REC_TYPE_HIHI,
	HD3_AM_REC_TYPE_HIGH,
	HD3_AM_REC_TYPE_CHANGE,
	HD3_AM_REC_TYPE_MAX = HD3_AM_REC_TYPE_CHANGE
};

// 报警属性索引
enum HD3_AM_REC_INDEX {
	HD3_AM_REC_INDEX_MIN = 0,
	HD3_AM_REC_INDEX_ALARM_TAG_ID = HD3_AM_REC_INDEX_MIN,
	HD3_AM_REC_INDEX_START_TIME,
	HD3_AM_REC_INDEX_END_TIME,
	HD3_AM_REC_INDEX_ACK_TIME,
	HD3_AM_REC_INDEX_COMMENT_TIME,
	HD3_AM_REC_INDEX_ACKED,
	HD3_AM_REC_INDEX_RESTORED,
	HD3_AM_REC_INDEX_PRIORITY,
	HD3_AM_REC_INDEX_ACK_TYPE,
	HD3_AM_REC_INDEX_ALARM_TYPE,
	HD3_AM_REC_INDEX_SRC_VALUE,
	HD3_AM_REC_INDEX_TEST,
	HD3_AM_REC_INDEX_COMMENT,
	HD3_AM_REC_INDEX_ACKER,
	HD3_AM_REC_INDEX_COMMENTOR,
	HD3_AM_REC_INDEX_MAX = HD3_AM_REC_INDEX_COMMENTOR
};

// 数据查询，查询项
enum HD3_PT_REC_QUERY {
	HD3_PT_REC_QUERY_MIN = 0,
	HD3_PT_REC_QUERY_QUALITY = HD3_PT_REC_QUERY_MIN,
	HD3_PT_REC_QUERY_VALUE,
	HD3_PT_REC_QUERY_MAX = HD3_PT_REC_QUERY_VALUE
};

// 键值关系
enum HD3_RELATION {
	HD3_RELATION_MIN = 0,
	HD3_RELATION_EQUAL = HD3_RELATION_MIN,
	HD3_RELATION_NON_EQUAL,
	HD3_RELATION_GREAT,
	HD3_RELATION_LESS,
	HD3_RELATION_GREAT_EQUAL,
	HD3_RELATION_LESS_EQUAL,
	HD3_RELATION_LIKE,
	HD3_RELATION_MAX = HD3_RELATION_LIKE
};

// Driver types
enum HD3_DRIVER_TYPE {
	HD3_DRIVER_TYPE_MIN = 1,
	HD3_DRIVER_TYPE_OPC = HD3_DRIVER_TYPE_MIN,
	HD3_DRIVER_TYPE_TCPMODBUS,
	HD3_DRIVER_TYPE_MAX = HD3_DRIVER_TYPE_TCPMODBUS
};

// 统计类型
enum HD3_STATS_TYPE {
	HD3_STATS_TYPE_LIMIT_MIN = 0,
	HD3_STATS_TYPE_MAX = HD3_STATS_TYPE_LIMIT_MIN,  //最大值
	HD3_STATS_TYPE_MIN,  // 最小值
	HD3_STATS_TYPE_SUM,  // 求和
	HD3_STATS_TYPE_LAST,  // 最新值
	HD3_STATS_TYPE_PCT_GOOD,  // 可信度
	HD3_STATS_TYPE_ARITH_MEAN,  // 算术平均值
	HD3_STATS_TYPE_TIME_WEIGHTED_MEAN,  // 时间加权平均值
	HD3_STATS_TYPE_INTEGRAL,  // 积分
	HD3_STATS_TYPE_COUNT_CHG_VALUE,  // 值变化
	HD3_STATS_TYPE_COUNT_CHG_FROM_LESS_TO_GREAT,  // 区间变化,从<=到>=
	HD3_STATS_TYPE_COUNT_CHG_FROM_GREAT_TO_LESS,  // 区间变化，从>=到<=
	HD3_STATS_TYPE_DIFF,  // 差值统计
	HD3_STATS_TYPE_COUNT_IN_RANGE,  // 值在区间
	HD3_STATS_TYPE_COUNT_NOT_IN_RANGE,  // 值不在区间
	HD3_STATS_TYPE_RANGE,  // 极差
	HD3_STATS_TYPE_STANDARD_DEVIATION,  // 标准差
	HD3_STATS_TYPE_TIME_GT,  // 大于某个值的时间
	HD3_STATS_TYPE_TIME_GE,  // 大于等于某个值的时间
	HD3_STATS_TYPE_TIME_EQ,  // 等于某个值的时间
	HD3_STATS_TYPE_TIME_NE,  // 不等于某个值的时间
	HD3_STATS_TYPE_TIME_LT,  // 小于某个值的时间
	HD3_STATS_TYPE_TIME_LE,  // 小于等于某个值的时间
	HD3_STATS_TYPE_TIME_IN_RANGE,  // 在某个值区间的时间
	HD3_STATS_TYPE_TIME_NOT_IN_RANGE,  // 不在某个值区间的时间
	HD3_STATS_TYPE_LIMIT_MAX = HD3_STATS_TYPE_TIME_NOT_IN_RANGE  // 统计类型值的最大值, 做校验用
};

// 统计点采样模式/统计方式
enum HD3_STATS_SAMPLE_MODE {
	HD3_STATS_SAMPLE_MODE_MIN = 0,
	HD3_STATS_SAMPLE_MODE_INTERVAL = HD3_STATS_SAMPLE_MODE_MIN,  // 统计等间隔采样
	HD3_STATS_SAMPLE_MODE_EVERY_DAY,  // 统计每天同时段采样
	HD3_STATS_SAMPLE_MODE_EVERY_MONTH,  // 统计每月同时段采样
	HD3_STATS_SAMPLE_MODE_TIME_MOVING,  // 时间移动采样
	HD3_STATS_SAMPLE_MODE_FOREVER,  // 时间移动采样
	HD3_STATS_SAMPLE_MODE_MAX = HD3_STATS_SAMPLE_MODE_FOREVER
};

//统计转换类型
enum HD3_STATS_CONVERSION_TYPE {
	HD3_STATS_CONVERSION_TYPE_MIN = 0,
	HD3_STATS_CONVERSION_TYPE_AMPLIFICATION = HD3_STATS_CONVERSION_TYPE_MIN,  // 统计值放大
	HD3_STATS_CONVERSION_TYPE_MINIFICATION,  // 统计值缩小
	HD3_STATS_CONVERSION_TYPE_MAX = HD3_STATS_CONVERSION_TYPE_MINIFICATION  // 最大值，做校验
};

//统计点采样方式
enum HD3_STATS_SAMPLE_TYPE {
	HD3_STATS_SAMPLE_TYPE_MIN = 0,
	HD3_STATS_SAMPLE_TYPE_RAW = HD3_STATS_SAMPLE_TYPE_MIN,  // 采样点都是原始值
	HD3_STATS_SAMPLE_TYPE_LINER_INTERP,  // 采样点都是线性插值
	HD3_STATS_SAMPLE_TYPE_PREV_INTERP,  // 采样点都是前向插值
	HD3_STATS_SAMPLE_TYPE_MAX = HD3_STATS_SAMPLE_TYPE_PREV_INTERP  // 最大采样类型值
};

//统计点弃坏点模式
enum HD3_STATS_DROP_BAD_MODE {
	HD3_STATS_DROP_BAD_MODE_MIN = 0,
	HD3_STATS_DROP_BAD_MODE_REC = HD3_STATS_DROP_BAD_MODE_MIN,  // 弃坏点模式——弃bad记录
	HD3_STATS_DROP_BAD_MODE_AREA,  // 弃坏点模式——弃bad记录相邻的区域
	HD3_STATS_DROP_BAD_MODE_MAX = HD3_STATS_DROP_BAD_MODE_AREA
};

// 求均值模式
enum HD3_STATS_WEIGHT_MODE {
	HD3_STATS_WEIGHT_MODE_MIN = 1,
	HD3_STATS_WEIGHT_MODE_TIMED = HD3_STATS_WEIGHT_MODE_MIN,  // 以时间为权值
	HD3_STATS_WEIGHT_MODE_RECORD,  // 无权值
	HD3_STATS_WEIGHT_MODE_MAX = HD3_STATS_WEIGHT_MODE_RECORD
};
	
// count计算模式，值变化模式和区间变化模式
enum HD3_STATS_COUNT_MODE {
	HD3_STATS_COUNT_MODE_MIN = 1,
	HD3_STATS_COUNT_MODE_CHANGE_VALUE = HD3_STATS_COUNT_MODE_MIN,
	HD3_STATS_COUNT_MODE_GREATER_CHANGE_TO_LESS,
	HD3_STATS_COUNT_MODE_LESS_CHANGE_TO_GREATE,
	HD3_STATS_COUNT_MODE_IN_RANGE,
	HD3_STATS_COUNT_MODE_NOT_IN_RANGE,
	HD3_STATS_COUNT_MODE_MAX = HD3_STATS_COUNT_MODE_NOT_IN_RANGE
};

// 过滤表达式计算失败是否需过滤
enum HD3_STATS_FILTER_FAIL_MODE {
	HD3_STATS_FILTER_FAIL_MODE_MIN = 0,
	HD3_STATS_FILTER_FAIL_MODE_FIL = HD3_STATS_FILTER_FAIL_MODE_MIN,  // filter
	HD3_STATS_FILTER_FAIL_MODE_NO_FIL,
	HD3_STATS_FILTER_FAIL_MODE_MAX = HD3_STATS_FILTER_FAIL_MODE_NO_FIL
};

// 计算点模式
enum HD3_CALC_MODE {
	HD3_CALC_MODE_MIN = 0,
	HD3_CALC_MODE_POLL = HD3_CALC_MODE_MIN,  // 计算模式——轮询
	HD3_CALC_MODE_NOTIFY,  // 计算模式——通知
	HD3_CALC_MODE_MAX = HD3_CALC_MODE_NOTIFY  // 计算模式的最大值，用来校验
};

// 采集器类型
enum HD3_COLLECTOR_TYPE {
	HD3_COLLECTOR_TYPE_MIN = -1,
	HD3_COLLECTOR_TYPE_INVALID = HD3_COLLECTOR_TYPE_MIN,
	HD3_COLLECTOR_TYPE_OPC,
	HD3_COLLECTOR_TYPE_MODBUS,
	HD3_COLLECTOR_TYPE_RDB,
	HD3_COLLECTOR_TYPE_HD2HD,
	HD3_COLLECTOR_TYPE_MAX = HD3_COLLECTOR_TYPE_HD2HD
};

// 记录的插值查询模式
enum HD3_REC_INTERP_QUERY_MODE {
	HD3_REC_INTERP_QUERY_MODE_MIN = 0,
	HD3_REC_INTERP_QUERY_MODE_LINEAR = HD3_REC_INTERP_QUERY_MODE_MIN,  // 线性插值
	HD3_REC_INTERP_QUERY_MODE_PREV,  // 前向插值
	HD3_REC_INTERP_QUERY_MODE_MAX = HD3_REC_INTERP_QUERY_MODE_PREV  // 最大值，用来校验
};

// 数据量状态集
enum HD3_DIGITAL_SET {
	HD3_DIGITAL_SET_MAX_NUM = 256,
	HD3_DIGITAL_SET_MAX_VAL = 127,
	HD3_DIGITAL_SET_MIN_VAL = -128
};

// 采集器状态点类型
enum HD_CT_STATUS_TAG_TYPE {
	HD3_CT_STATUS_TAG_TYPE_MIN = 1,
	HD3_CT_STATUS_TAG_TYPE_COLLECTOR = HD3_CT_STATUS_TAG_TYPE_MIN,
	HD3_CT_STATUS_TAG_TYPE_DEVICE,
	HD3_CT_STATUS_TAG_TYPE_MAX = HD3_CT_STATUS_TAG_TYPE_DEVICE
};

// SPC报警控制图类型对应于SPCBasicDef.h中的枚举类型 SPCChartType
enum HD3_SPC_CTRL_CHART_TYPE {
	HD3_SPC_CTRL_CHART_TYPE_MIN = 13,// 控制图类型的最小值，用来做参数校验
	HD3_SPC_CTRL_CHART_TYPE_XBAR	 = HD3_SPC_CTRL_CHART_TYPE_MIN, // XBar类型
	HD3_SPC_CTRL_CHART_TYPE_R,  // R图
	HD3_SPC_CTRL_CHART_TYPE_S,  // S图
	HD3_SPC_CTRL_CHART_TYPE_MAX = HD3_SPC_CTRL_CHART_TYPE_S	  // 控制图类型的最大值，用来做参数校验
};

// SPC报警触发模式
enum HD3_SPC_TRIGGER_MODE {
	HD3_SPC_TRIGGER_MODE_MIN = 0,
	HD3_SPC_TRIGGER_MODE_TRIGGER = HD3_SPC_TRIGGER_MODE_MIN,
	HD3_SPC_TRIGGER_MODE_MAX = HD3_SPC_TRIGGER_MODE_TRIGGER
};

// SPC报警属性索引
enum HD3_SPC_REC_INDEX {
	HD3_SPC_REC_INDEX_MIN = 0,
	HD3_SPC_REC_INDEX_SPC_TAG_ID = HD3_SPC_REC_INDEX_MIN,
	HD3_SPC_REC_INDEX_START_TIME,
	HD3_SPC_REC_INDEX_END_TIME,
	HD3_SPC_REC_INDEX_ACK_TIME,
	HD3_SPC_REC_INDEX_COMMENT_TIME,
	HD3_SPC_REC_INDEX_ACKED,
	HD3_SPC_REC_INDEX_ACK_TYPE,
	HD3_SPC_REC_INDEX_RESTORED,
	HD3_SPC_REC_INDEX_COMMENTED,
	HD3_SPC_REC_INDEX_ALARM_VALUE,
	HD3_SPC_REC_INDEX_RULE,
	HD3_SPC_REC_INDEX_SRC_VALUE,
	HD3_SPC_REC_INDEX_COMMENT,
	HD3_SPC_REC_INDEX_ACKER,
	HD3_SPC_REC_INDEX_COMMENTOR,
	HD3_SPC_REC_INDEX_MAX = HD3_SPC_REC_INDEX_COMMENTOR
};

// SPC报警规则M，N值的最大值和最小值
enum HD3_SPC_RULE_M_N_VALUE {
	HD3_SPC_RULE_M_N_VALUE_MIN = 1,
	HD3_SPC_RULE_M_N_VALUE_MAX = 99
};

// SPC报警值索引
enum HD3_SPC_VALUE_RULE_INDEX {
	HD3_SPC_VALUE_RULE_INDEX_MIN = 0,
	HD3_SPC_VALUE_RULE_INDEX1 = HD3_SPC_VALUE_RULE_INDEX_MIN,
	HD3_SPC_VALUE_RULE_INDEX2,
	HD3_SPC_VALUE_RULE_INDEX3,
	HD3_SPC_VALUE_RULE_INDEX4,
	HD3_SPC_VALUE_RULE_INDEX5,
	HD3_SPC_VALUE_RULE_INDEX6,
	HD3_SPC_VALUE_RULE_INDEX7,
	HD3_SPC_VALUE_RULE_INDEX8,
	HD3_SPC_VALUE_RULE_INDEX_MAX = HD3_SPC_VALUE_RULE_INDEX8
};

// OPC发布状态
enum HD3_TAG_OPC_STATE {
	HD3_TAG_OPC_STATE_MIN =0,
	HD3_TAG_OPC_STATE_UNRELEASE = HD3_TAG_OPC_STATE_MIN,
	HD3_TAG_OPC_STATE_RELEASE,
	HD3_TAG_OPC_STATE_MAX = HD3_TAG_OPC_STATE_RELEASE
};

// 模块类型
enum HD3_MODULE_TYPE {
	HD3_MODULE_TYPE_MIN = 0,
	HD3_MODULE_TYPE_COLLECTOR = HD3_MODULE_TYPE_MIN,
	HD3_MODULE_TYPE_CALC,
	HD3_MODULE_TYPE_MAX = HD3_MODULE_TYPE_CALC
};

// 变更类型
enum HD3_ALTERATION_TYPE {
	HD3_ALTERATION_TYPE_MIN = 0,
	HD3_ALTERATION_TYPE_ADD = HD3_ALTERATION_TYPE_MIN,
	HD3_ALTERATION_TYPE_MODIFY,
	HD3_ALTERATION_TYPE_DELETE,
	HD3_ALTERATION_TYPE_MAX = HD3_ALTERATION_TYPE_DELETE
};

// 采集器相关变更实体的类别
enum HD3_ALTERATION_ENTRY {
	HD3_ALTERATION_ENTRY_MIN = 0,
	HD3_ALTERATION_ENTRY_COLLECTOR = HD3_ALTERATION_ENTRY_MIN,
	HD3_ALTERATION_ENTRY_DEVICE,
	HD3_ALTERATION_ENTRY_SCANGROUP,
	HD3_ALTERATION_ENTRY_TAG,
	HD3_ALTERATION_ENTRY_MAX = HD3_ALTERATION_ENTRY_TAG
};

// 通知对象类型
enum HD3_NOTIFY_OBJ_TYPE {
	HD3_NOTIFY_OBJ_TYPE_MIN = 0,
	HD3_NOTIFY_OBJ_TYPE_NORMAL_TAG = HD3_NOTIFY_OBJ_TYPE_MIN,
	HD3_NOTIFY_OBJ_TYPE_ALARM_TAG,
	HD3_NOTIFY_OBJ_TYPE_STAT_TAG,
	HD3_NOTIFY_OBJ_TYPE_CALC_TAG,
	HD3_NOTIFY_OBJ_TYPE_COLLECTOR,
	HD3_NOTIFY_OBJ_TYPE_SCANGROUP,
	HD3_NOTIFY_OBJ_TYPE_DEVICE,
	HD3_NOTIFY_OBJ_TYPE_ALARM_GROUP,
	HD3_NOTIFY_OBJ_TYPE_DIGITAL_SET,
	HD3_NOTIFY_OBJ_TYPE_MAX = HD3_NOTIFY_OBJ_TYPE_DIGITAL_SET
};

// 权限项
enum HD3_SC_ITEM_TYPE {
	HD3_SC_ITEM_TYPE_MIN = 1,
	HD3_SC_ITEM_TYPE_TAG = HD3_SC_ITEM_TYPE_MIN,
	HD3_SC_ITEM_TYPE_GROUP,
	HD3_SC_ITEM_TYPE_DISPATCH,
	HD3_SC_ITEM_TYPE_MAX = HD3_SC_ITEM_TYPE_DISPATCH
};

// 字节序
enum HD3_DATA_ORDER {
	HD3_DATA_ORDER_MIN = 0,
	HD3_DATA_ORDER_NO = HD3_DATA_ORDER_MIN,
	HD3_DATA_ORDER_12,
	HD3_DATA_ORDER_21,
	HD3_DATA_ORDER_1234,
	HD3_DATA_ORDER_2143,
	HD3_DATA_ORDER_3412,
	HD3_DATA_ORDER_4321,
	HD3_DATA_ORDER_12345678,
	HD3_DATA_ORDER_21436587,
	HD3_DATA_ORDER_34127856,
	HD3_DATA_ORDER_43218765,
	HD3_DATA_ORDER_56781234,
	HD3_DATA_ORDER_65872143,
	HD3_DATA_ORDER_78563412,
	HD3_DATA_ORDER_87654321,
	HD3_ENDIAN_MAX = HD3_DATA_ORDER_87654321
};

enum HD3_MODBUS_CONNECT_TYPE {
	HD3_MODBUS_CONNECT_TYPE_MIN = 0,
	HD3_MODBUS_CONNECT_TYPE_TCP = HD3_MODBUS_CONNECT_TYPE_MIN,
	HD3_MODBUS_CONNECT_TYPE_RTU,
	HD3_MODBUS_CONNECT_TYPE_SERIAL,
	HD3_MODBUS_CONNECT_TYPE_MAX = HD3_MODBUS_CONNECT_TYPE_SERIAL
};

// modbus data point type
enum HD3_INS_POINT_TYPE {
	HD3_INS_POINT_TYPE_MIN = 0,
	HD3_INS_POINT_TYPE_INT8 = HD3_INS_POINT_TYPE_MIN,
	HD3_INS_POINT_TYPE_UINT8,
	HD3_INS_POINT_TYPE_INT16,
	HD3_INS_POINT_TYPE_UINT16,
	HD3_INS_POINT_TYPE_INT32,
	HD3_INS_POINT_TYPE_UINT32,
	HD3_INS_POINT_TYPE_FLOAT,
	HD3_INS_POINT_TYPE_DOUBLE,
	HD3_INS_POINT_TYPE_STRING,
	HD3_INS_POINT_TYPE_BLOB,
	HD3_INS_POINT_TYPE_DIGITAL,
	HD3_INS_POINT_TYPE_MAX = HD3_INS_POINT_TYPE_DIGITAL
};

enum HD3_MODBUS_SERIAL_CHECKPARITY {
	HD3_MODBUS_SERIAL_CHECKPARITY_MIN = 0,
	HD3_MODBUS_SERIAL_CHECKPARITY_NONE = HD3_MODBUS_SERIAL_CHECKPARITY_MIN,
	HD3_MODBUS_SERIAL_CHECKPARITY_ODD,
	HD3_MODBUS_SERIAL_CHECKPARITY_EVEN,
	HD3_MODBUS_SERIAL_CHECKPARITY_MAX = HD3_MODBUS_SERIAL_CHECKPARITY_EVEN
};

// 其它枚举值
enum {
	HD3_BASE = 2,
	HD3_CLIENT_SOCKET_MAX = 100  // 单客户端和服务端连接的个数
};

//Tag 列ID 
enum {
	HD3_TAG_COL_COMM_PROP_MIN = 0, 
	HD3_TAG_COL_COMM_PROP_TAG_NAME = HD3_TAG_COL_COMM_PROP_MIN,
	HD3_TAG_COL_COMM_PROP_ARCHIVING,
	HD3_TAG_COL_COMM_PROP_CHANGE_DATE,
	HD3_TAG_COL_COMM_PROP_CHANGER,
	HD3_TAG_COL_COMM_PROP_COMP_DEV,
	HD3_TAG_COL_COMM_PROP_COMP_MAX_TIME,
	HD3_TAG_COL_COMM_PROP_COMP_TYPE,
	HD3_TAG_COL_COMM_PROP_CREATION_DATE,
	HD3_TAG_COL_COMM_PROP_CREATOR,
	HD3_TAG_COL_COMM_PROP_REC_ACCESS,
	HD3_TAG_COL_COMM_PROP_REC_NORMAL_GROUP,
	HD3_TAG_COL_COMM_PROP_REC_OWNER_GROUP,
	HD3_TAG_COL_COMM_PROP_DESCRIPTOR,
	HD3_TAG_COL_COMM_PROP_DIGITAL_SET,
	HD3_TAG_COL_COMM_PROP_ENG_UNITS,
	HD3_TAG_COL_COMM_PROP_EXC_MAX_TIME,
	HD3_TAG_COL_COMM_PROP_EXC_DEV,
	HD3_TAG_COL_COMM_PROP_TAGID,
	HD3_TAG_COL_COMM_PROP_TAG_TYPE,
	HD3_TAG_COL_COMM_PROP_TAG_ACCESS,
	HD3_TAG_COL_COMM_PROP_TAG_NORMAL_GROUP,
	HD3_TAG_COL_COMM_PROP_TAG_OWNER_GROUP,
	HD3_TAG_COL_COMM_PROP_SCAN,
	HD3_TAG_COL_COMM_PROP_SPAN,
	HD3_TAG_COL_COMM_PROP_MIN_VALUE,
	HD3_TAG_COL_COMM_PROP_TAG_CLASS,
	HD3_TAG_COL_COMM_PROP_TAG_AVALIABLE,
	HD3_TAG_COL_COMM_PROP_PARAM1,
	HD3_TAG_COL_COMM_PROP_PARAM2,
	HD3_TAG_COL_COMM_PROP_PARAM3,
	HD3_TAG_COL_COMM_PROP_PARAM4,
	HD3_TAG_COL_COMM_PROP_PARAM5,
	HD3_TAG_COL_COMM_PROP_OPCREALSE,
	HD3_TAG_COL_COMM_PROP_IMV_STRING,
	HD3_TAG_COL_COMM_PROP_EXT_STRING1,
	HD3_TAG_COL_COMM_PROP_EXT_STRING2,
	HD3_TAG_COL_COMM_PROP_MAX = HD3_TAG_COL_COMM_PROP_EXT_STRING2, 

	HD3_TAG_COL_PT_EXT_PROP_MIN = 100,
	HD3_TAG_COL_PT_EXT_PROP_INSTRUMENT_ADDRESS = HD3_TAG_COL_PT_EXT_PROP_MIN,
	HD3_TAG_COL_PT_EXT_PROP_INSTRUMENT_ADDRESS_TYPE,
	HD3_TAG_COL_PT_EXT_PROP_COLLECTOR_NAME,
	HD3_TAG_COL_PT_EXT_PROP_COLLECTOR_ID,
	HD3_TAG_COL_PT_EXT_PROP_DEVICE_NAME,
	HD3_TAG_COL_PT_EXT_PROP_DEVICE_ID,
	HD3_TAG_COL_PT_EXT_PROP_SCAN_GROUP_NAME,
	HD3_TAG_COL_PT_EXT_PROP_SCAN_GROUP_ID,
	HD3_TAG_COL_PT_EXT_PROP_DATA_ORDER,
	HD3_TAG_COL_PT_EXT_PROP_MAX = HD3_TAG_COL_PT_EXT_PROP_DATA_ORDER,

	HD3_TAG_COL_AM_EXT_PROP_MIN = 200,
	HD3_TAG_COL_AM_EXT_PROP_TEST1 = HD3_TAG_COL_AM_EXT_PROP_MIN,
	HD3_TAG_COL_AM_EXT_PROP_TEST2,
	HD3_TAG_COL_AM_EXT_PROP_TEST3,
	HD3_TAG_COL_AM_EXT_PROP_TEST4,
	HD3_TAG_COL_AM_EXT_PROP_ACTION1,
	HD3_TAG_COL_AM_EXT_PROP_ACTION2,
	HD3_TAG_COL_AM_EXT_PROP_ACTION3,
	HD3_TAG_COL_AM_EXT_PROP_ACTION4,
	HD3_TAG_COL_AM_EXT_PROP_SOURCE_TAG,
	HD3_TAG_COL_AM_EXT_PROP_ALARM_GROUP_ID,
	HD3_TAG_COL_AM_EXT_PROP_AUTOACK,
	HD3_TAG_COL_AM_EXT_PROP_TIME_DEADBAND,
	HD3_TAG_COL_AM_EXT_PROP_VALUE_DEADBAND,
	HD3_TAG_COL_AM_EXT_PROP_MAX = HD3_TAG_COL_AM_EXT_PROP_VALUE_DEADBAND,

	HD3_TAG_COL_SPC_EXT_PROP_MIN = 300,
	HD3_TAG_COL_SPC_EXT_PROP_SOURCE_TAG_NAME = HD3_TAG_COL_SPC_EXT_PROP_MIN,
	HD3_TAG_COL_SPC_EXT_PROP_ALARM_GROUP_ID,
	HD3_TAG_COL_SPC_EXT_PROP_CTRL_CHART_TYPE,
	HD3_TAG_COL_SPC_EXT_PROP_TRIGGER_MODE,
	HD3_TAG_COL_SPC_EXT_PROP_SAMPLE_SIZE,
	HD3_TAG_COL_SPC_EXT_PROP_SAMPLE_INTERVAL,
	HD3_TAG_COL_SPC_EXT_PROP_AUTO_ACK,
	HD3_TAG_COL_SPC_EXT_PROP_RULE,
	HD3_TAG_COL_SPC_EXT_PROP_MAX = HD3_TAG_COL_SPC_EXT_PROP_RULE,

	HD3_TAG_COL_ST_EXT_PROP_MIN = 400,
	HD3_TAG_COL_ST_EXT_PROP_SOURCE_TAG_NAME = HD3_TAG_COL_ST_EXT_PROP_MIN,
	HD3_TAG_COL_ST_EXT_PROP_STATS_TYPE,
	HD3_TAG_COL_ST_EXT_PROP_SAMPLE_START_DATE,
	HD3_TAG_COL_ST_EXT_PROP_SAMPLE_MODE,
	HD3_TAG_COL_ST_EXT_PROP_SAMPLE_INTERVAL,
	HD3_TAG_COL_ST_EXT_PROP_SAMPLE_BEGIN_OFFSET,
	HD3_TAG_COL_ST_EXT_PROP_SAMPLE_END_OFFSET,
	HD3_TAG_COL_ST_EXT_PROP_SAMPLE_MONTH_BEGIN_DAY,
	HD3_TAG_COL_ST_EXT_PROP_SAMPLE_MONTH_END_DAY,
	HD3_TAG_COL_ST_EXT_PROP_BEGIN_TIMESTAMP,
	HD3_TAG_COL_ST_EXT_PROP_TIMESTAMP_OFFSET,
	HD3_TAG_COL_ST_EXT_PROP_SCAN_PERIOD,
	HD3_TAG_COL_ST_EXT_PROP_PCT_GOOD,
	HD3_TAG_COL_ST_EXT_PROP_FILTER_EXPR,
	HD3_TAG_COL_ST_EXT_PROP_DROP_BAD_MODE,
	HD3_TAG_COL_ST_EXT_PROP_COUNT_PARAM1,
	HD3_TAG_COL_ST_EXT_PROP_COUNT_PARAM2,
	HD3_TAG_COL_ST_EXT_PROP_SAMPLE_TYPE,
	HD3_TAG_COL_ST_EXT_PROP_INTERP_OFFSET,
	HD3_TAG_COL_ST_EXT_PROP_INTERP_PERIOD,
	HD3_TAG_COL_ST_EXT_PROP_CONVER_TYPE,
	HD3_TAG_COL_ST_EXT_PROP_CONVERSION,
	HD3_TAG_COL_ST_EXT_PROP_FILTER_FAIL_MODE,
	HD3_TAG_COL_ST_EXT_PROP_CALC_PERIOD,
	HD3_TAG_COL_ST_EXT_PROP_RESET,
	HD3_TAG_COL_ST_EXT_PROP_USE_BAD_VALUE,
	HD3_TAG_COL_ST_EXT_PROP_MAX = HD3_TAG_COL_ST_EXT_PROP_USE_BAD_VALUE,

	HD3_TAG_COL_CA_EXT_PROP_MIN = 500,
	HD3_TAG_COL_CA_EXT_PROP_CALC_MODE = HD3_TAG_COL_CA_EXT_PROP_MIN,
	HD3_TAG_COL_CA_EXT_PROP_CALC_PERIOD,
	HD3_TAG_COL_CA_EXT_PROP_CALC_EXPR,
	HD3_TAG_COL_CA_EXT_PROP_CALC_HISTORY,
	HD3_TAG_COL_CA_EXT_PROP_CALC_START_DATE,
	HD3_TAG_COL_CA_EXT_PROP_CALC_END_DATE,
	HD3_TAG_COL_CA_EXT_PROP_HAVE_END_TIME,
	HD3_TAG_COL_CA_EXT_PROP_SRC_TAG_NAME,
	HD3_TAG_COL_CA_EXT_PROP_MAX = HD3_TAG_COL_CA_EXT_PROP_SRC_TAG_NAME
};

// 冗余状态
enum HD3_RY_STATUS{
	HD3_RY_STATUS_UNACTIVE = 0,
	HD3_RY_STATUS_ACTIVE = 1
};

// 冗余状态, 内部使用
enum HD3_SRV_RY_STATUS{
	HD3_SRV_RY_STATUS_UNAVILABLE = 0,
	HD3_SRV_RY_STATUS_HOST = 1,
	HD3_SRV_RY_STATUS_BACKUP = 2
};


//  同步目标
typedef enum {
	HD3_CLOUD_IHD = 0,
	HD3_CLOUD_IEEE,  
	HD3_CLOUD_MODE_MAX = HD3_CLOUD_IEEE
}HD3_CLOUD_SYN_TARGET;

//  同步方式
typedef enum {
	HD3_CLOUD_SYN_REG = 0, //注册式
	HD3_CLOUD_SYN_PER,  //周期式  
	HD3_CLOUD_SYN_MAX = HD3_CLOUD_SYN_PER
}HD3_CLOUD_SYN_MODE;

#endif
