eis/inc/zhd/ihyperdb.h

1089 lines
37 KiB
C
Raw Permalink Normal View History

#ifndef RD_CONST_H_FILE
#define RD_CONST_H_FILE
#include "data_types.h"
#ifdef AIX
#include <stdlib.h>
#endif//AIX
#ifndef _HDHANDLE
typedef void* HDHANDLE;
#define _HDHANDLE
#endif
#ifndef WIN32
#ifndef SOCKET
#define SOCKET int
#endif
#else
#ifndef SOCKET
//#include <winsock2.h>
//#include <windows.h>
#if defined(_WIN64)
typedef __int64 INT_PTR, *PINT_PTR;
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
#else
typedef _W64 int INT_PTR, *PINT_PTR;
typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
#endif
typedef UINT_PTR SOCKET;
#endif
#endif
#define HD_INVALID_HANDLE (HDHANDLE)0
// ҳ<><D2B3>С
#define RD_PAGE_SIZE 4096
#define HD_EPSILON 0.00001
#define DATA_QUALITY_VALUE_HALT -1 /*ͣ<><CDA3><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ*/
#define DATA_QUALITY_VALUE_IO_TIMEOUT 65534 // <20>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20>ɼ<EFBFBD><C9BC><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_QUALITY_VALUE_CT_MAX 65533
#define DATA_QUALITY_VALUE_CT_BOOTTING 65533
#define DATA_QUALITY_VALUE_CT_ACTIVE 65532
#define DATA_QUALITY_VALUE_CT_SHUTDOWN 65531
#define DATA_QUALITY_VALUE_CT_TIMEOUT 65530
#define DATA_QUALITY_VALUE_CT_MIN 65530
// <20>豸״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DATA_QUALITY_VALUE_DEVICE_MAX 65529
#define DATA_QUALITY_VALUE_DEVICE_CONN 65529
#define DATA_QUALITY_VALUE_DEVICE_DISCONN 65528
#define DATA_QUALITY_VALUE_DEVICE_MIN 65528
// <20><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
#define DATA_QUALITY_VALUE_EXPR_FILTER 65527
#define DATA_QUALITY_VALUE_HALT_SHOW "No Data"
#define DATA_QUALITY_VALUE_IO_TIMEOUT_SHOW "I/O Timeout"
#define DATA_QUALITY_GOOD 0xC0 //һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>Goodֵ, 192
#define DATA_QUALITY_BAD 0xFF3F //<2F><><EFBFBD><EFBFBD>ΪBad
#define DATA_QUALITY_BAD_STATS_NO_GOOD_REC 0xFF3E //ͳ<>Ƽ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ʾͳ<CABE><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>һ<EFBFBD><D2BB>Good<6F><64>ԭʼ<D4AD><CABC>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊbad
// license status
#define LICENSE_INVALID 0 //<2F><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4>Ч<EFBFBD><D0A7>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>2Сʱ<D0A1><CAB1><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD>
#define LICENSE_VALID 1 //<2F><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤
#define LICENSE_VALID_TEMP 2 //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>֤<EFBFBD><D6A4>2Сʱ<D0A1><CAB1><EFBFBD>ð<EFBFBD>
//tag<61><67><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
#define TAG_TYPE_MIN 0
#define TAG_TYPE_INT8 0
#define TAG_TYPE_INT16 1
#define TAG_TYPE_INT32 2
#define TAG_TYPE_FLOAT32 3
#define TAG_TYPE_FLOAT64 4
#define TAG_TYPE_DIGITAL 5
#define TAG_TYPE_STRING 6
#define TAG_TYPE_BLOB 7
#define TAG_TYPE_MAX 7
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CHANGE_TYPE_ADD 0
#define CHANGE_TYPE_MODIFY 1
#define CHANGE_TYPE_DELETE 2
#define CHANGE_TYPE_MAX 2
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CHANGE_MODULE_TYPE_COLLECTOR 0
#define CHANGE_MODULE_TYPE_CALC 1
// ֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_NOTIFY_OBJ_TYPE_NORMAL_TAG 0
#define HD_NOTIFY_OBJ_TYPE_ALARM_TAG 1
#define HD_NOTIFY_OBJ_TYPE_STAT_TAG 2
#define HD_NOTIFY_OBJ_TYPE_EXPCALC_TAG 3
#define HD_NOTIFY_OBJ_TYPE_COLLECTOR 4
#define HD_NOTIFY_OBJ_TYPE_SCAN_GROUP 5
#define HD_NOTIFY_OBJ_TYPE_DEVICE 6
#define HD_NOTIFY_OBJ_TYPE_ALARM_GROUP 7
#define HD_NOTIFY_OBJ_TYPE_DIGITAL_SET 8
#define HD_NOTIFY_OBJ_TYPE_MAX 8
/*<2A><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define HD_NOTIFY_OBJ_MASK_ALL 0XFFFFFFFFFFFFFFFFLL
#define HD_NOTIFY_OBJ_MASK_NORMAL_TAG (1 << HD_NOTIFY_OBJ_TYPE_NORMAL_TAG)
#define HD_NOTIFY_OBJ_MASK_ALARM_TAG (1 << HD_NOTIFY_OBJ_TYPE_ALARM_TAG)
#define HD_NOTIFY_OBJ_MASK_STAT_TAG (1 << HD_NOTIFY_OBJ_TYPE_STAT_TAG)
#define HD_NOTIFY_OBJ_MASK_EXPCALC_TAG (1 << HD_NOTIFY_OBJ_TYPE_EXPCALC_TAG)
#define HD_NOTIFY_OBJ_MASK_COLLECTOR (1 << HD_NOTIFY_OBJ_TYPE_COLLECTOR)
#define HD_NOTIFY_OBJ_MASK_SCAN_GROUP (1 << HD_NOTIFY_OBJ_TYPE_SCAN_GROUP)
#define HD_NOTIFY_OBJ_MASK_DEVICE (1 << HD_NOTIFY_OBJ_TYPE_DEVICE)
#define HD_NOTIFY_OBJ_MASK_ALARM_GROUP (1 << HD_NOTIFY_OBJ_TYPE_ALARM_GROUP)
#define HD_NOTIFY_OBJ_MASK_DIGITAL_SET (1 << HD_NOTIFY_OBJ_TYPE_DIGITAL_SET)
//<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CHANGE_ENTRY_COLLECTOR 0
#define CHANGE_ENTRY_DEVICE 1
#define CHANGE_ENTRY_SCAN_GROUP 2
#define CHANGE_ENTRY_TAG 3
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CHANGE_NEW_ALARM 0
#define CHANGE_ACK_ALARM 1
#define CHANGE_RESTORE_ALARM 2
#define CHANGE_COMMENT_ALARM 3
//ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_CT_SCAN_TYPE_POLL 0 //<2F><>ѯģʽ
#define HD_CT_SCAN_TYPE_ADVISE 1 //֪ͨģʽ
//ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
#define COMP_TYPE_MIN 0
#define COMP_TYPE_NO 0
#define COMP_TYPE_SDT 1
#define COMP_TYPE_MAX 1
//<2F><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ȷ<EFBFBD>϶<EFBFBD><CFB6><EFBFBD>
#define ALARM_AUTO_ACK_MIN 0
#define ALARM_AUTO_ACK_NO 0
#define ALARM_AUTO_ACK_YES 1
#define ALARM_AUTO_ACK_MAX 1
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MONITOR_TAG_TYPE_MIN 0
#define MONITOR_TAG_TYPE_ALARM 1
#define MONITOR_TAG_TYPE_MAX 1
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>ȶ<EFBFBD><C8B6><EFBFBD>
#define DATA_LENGTH_INT8 1
#define DATA_LENGTH_INT16 2
#define DATA_LENGTH_INT32 4
#define DATA_LENGTH_FLOAT32 4
#define DATA_LENGTH_FLOAT64 8
#define DATA_LENGTH_DIGITAL 1
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF>ڲ<EFBFBD><DAB2><EFBFBD><E1B9B9><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD>
#define LENGTH_TIME_STAMP 6
#define LENGTH_DATA_QUALITY 2
/*string blob<6F><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD><D8B3>ȶ<EFBFBD><C8B6><EFBFBD>*/
#define LENGTH_VAR_TYPE_VALUE 1000
#define LENGTH_VAR_TYPE_RECORD (LENGTH_TIME_STAMP + LENGTH_DATA_QUALITY + sizeof(uint16) + LENGTH_VAR_TYPE_VALUE)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD>
#define REC_LENGTH_MIN REC_LENGTH_INT8
#define REC_LENGTH_INT8 (DATA_LENGTH_INT8 + LENGTH_TIME_STAMP + LENGTH_DATA_QUALITY)
#define REC_LENGTH_INT16 (DATA_LENGTH_INT16 + LENGTH_TIME_STAMP + LENGTH_DATA_QUALITY)
#define REC_LENGTH_INT32 (DATA_LENGTH_INT32 + LENGTH_TIME_STAMP + LENGTH_DATA_QUALITY)
#define REC_LENGTH_FLOAT32 (DATA_LENGTH_FLOAT32 + LENGTH_TIME_STAMP + LENGTH_DATA_QUALITY)
#define REC_LENGTH_FLOAT64 (DATA_LENGTH_FLOAT64 + LENGTH_TIME_STAMP + LENGTH_DATA_QUALITY)
#define REC_LENGTH_DIGITAL (DATA_LENGTH_DIGITAL + LENGTH_TIME_STAMP + LENGTH_DATA_QUALITY)
#define REC_LENGTH_MAX (LENGTH_VAR_TYPE_RECORD)
#define HD_MAX_LEN_TAG_PROP 1024
#define HD_LEN_TAG_NAME 128 /* including '\0' */
#define HD_LEN_TAG_TYPE 16 /* including '\0' */
#define HD_LEN_TAG_DESC 1024 /* including '\0' */
#define HD_LEN_USER_NAME 32 /* including '\0' */
#define HD_LEN_ENG_UNITS 32 /* including '\0' */
#define HD_LEN_INSTURMENT_POINT_VERSION_0 64 /* including '\0' */ //API<50>汾Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3>汾1<E6B1BE>޸<EFBFBD>Ϊ256
#define HD_LEN_INSTURMENT_POINT 256 /* including '\0' */ //modify by yangqi; <20><><EFBFBD>ȴ<EFBFBD>64<36>޸<EFBFBD>Ϊ256
#define HD_LEN_INTERFACE_NAME 64 /* including '\0' */
#define HD_LEN_IP_ADDR 16
#define HD_LEN_IPHOST_ADDR 256
#define HD_LEN_DIGITAL_SET_NAME 32 /* including '\0' */
#define HD_LEN_DIGITAL_SET_STATE_NAME 32 /* including '\0' */
#define HD_LEN_ALARM_TEST 128 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Test<73><74><EFBFBD>Գ<EFBFBD><D4B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD>szTest1,szTest2,szTest3,szTest4
#define HD_LEN_ALARM_ACTION 128 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ACTION<4F><4E><EFBFBD>Գ<EFBFBD><D4B3>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD>szAction1<6E><31>szAction2<6E><32>szAction3<6E><33>szAction4
#define HD_LEN_ALARM_GROUP_NAME 128 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_LEN_ALARM_GROUP_DESC 128 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_LEN_ALARM_COMMENT 256
#define LENGTH_QUERY_ITEM_VALUE 32
#define HD_LEN_QUERY_ALARM_REC_ITEM_VALUE 32 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ѯ<EFBFBD>ļ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
#define HD_LEN_COLLECTOR_NAME 64
#define HD_LEN_COLLECTOR_DESCRIPTION 128
#define HD_LEN_COLLECTOR_EXT_PARAM 512
#define HD_LEN_DEVICE_NAME 64
#define HD_LEN_DEVICE_ADDRESS 32
#define HD_LEN_DEVICE_DESCRIPTION 128
#define HD_LEN_DEVICE_EXT_PARAM 512
#define HD_LEN_SCANGROUP_NAME 64
#define HD_LEN_SCANGROUP_DESCRIPTION 128
#define HD_LEN_SCANGROUP_EXT_PARAM 512
#define HD_LEN_FILTER_EXPR 128//<2F><><EFBFBD>˱<EFBFBD><CBB1><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
#define HD_LEN_CALC_EXPR 256//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
#define HD_LEN_HD_SRV_NAME 64//iHyperDB<44><42><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
#define MAC_ADDRESS_LEN 32
/* Ȩ<>޹<EFBFBD><DEB9><EFBFBD>Լ<EFBFBD><D4BC> */
#define HD_LEN_SEC_PASSWORD 64
#define HD_LEN_SEC_GROUP_NAME 32
#define HD_LEN_SEC_TRUST_NAME 64
#define HD_LEN_SEC_USER_DESC 64
#define HD_LEN_SEC_GROUP_DESC 64
#define HD_LEN_SEC_IP_ADDRESS 16
#define HD_LEN_SEC_AUTH_ITEM_NAME 32
#define HD_LEN_SEC_AUTH_ITEM_DESC 64
#define HD_SEC_AUTH_TYPE_DEFAUT_VALUE 1
/*<2A><>ͨ<EFBFBD><EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD>㣬ͳ<E3A3AC>Ƶ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>㣬SPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define HD_TAG_CLASS_BASIC 0
#define HD_TAG_CLASS_ALARM 1
#define HD_TAG_CLASS_STATS 2
#define HD_TAG_CLASS_CALC 3
#define HD_TAG_CLASS_SPC 4
#define HD_TAG_CLASS_SYS 5
//Tag<61><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_TAG_CLASS_MASK_NORMAL_TAG 1
#define HD_TAG_CLASS_MASK_ALARM_TAG ((int64)1 << 1)
#define HD_TAG_CLASS_MASK_STATS_TAG ((int64)1 << 2)
#define HD_TAG_CLASS_MASK_CALC_TAG ((int64)1 << 3)
#define HD_TAG_CLASS_MASK_SPC_TAG ((int64)1 << 4)
#define HD_TAG_CLASS_MASK_ALL 0XFFFFFFFFFFFFFFFFLL
#define TAG_COL_TAGID 0
#define TAG_COL_REC_OWNER 1
#define TAG_COL_REC_GROUP 2
#define TAG_COL_TAG_NAME 3
#define TAG_COL_ARCHIVING 4
#define TAG_COL_COMP_DEV 5
#define TAG_COL_COMP_MAX 6
#define TAG_COL_COMP_TYPE 7
#define TAG_COL_REC_ACCESS 8
#define TAG_COL_SCAN 9
#define TAG_COL_SPAN 10
#define TAG_COL_MIN_VALUE 11
#define TAG_COL_TAG_TYPE 12
#define TAG_COL_TAG_CLASS 13
#define TAG_COL_DELETE 14
#define TAG_COL_VERSION 15
#define TAG_COL_MAX 15
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TAG_COL_TEST1 16
#define TAG_COL_TEST2 17
#define TAG_COL_TEST3 18
#define TAG_COL_TEST4 19
#define TAG_COL_ACTION1 20
#define TAG_COL_ACTION2 21
#define TAG_COL_ACTION3 22
#define TAG_COL_ACTION4 23
#define TAG_COL_SOURCE_TAG 24
#define TAG_COL_ALARM_GROUP_ID 25
#define TAG_COL_AUTOACK 26
#define TAG_COL_TIME_DEADBAND 27
#define TAG_COL_VALUE_DEADBAND 28
#define ALARM_TAG_COL_MAX 28
//ͳ<>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TAG_COL_STATS_SOURCE_TAG_NAME 16
#define TAG_COL_STATS_TYPE 17
#define TAG_COL_STATS_SAMPLE_START_DATE 18
#define TAG_COL_STATS_SAMPLE_MODE 19
#define TAG_COL_STATS_SAMPLE_INTERVAL 20
#define TAG_COL_STATS_SAMPLE_BEGIN_OFFSET 21
#define TAG_COL_STATS_SAMPLE_END_OFFSET 22
#define TAG_COL_STATS_SAMPLE_MONTH_BEGIN_DAY 23
#define TAG_COL_STATS_SAMPLE_MONTH_END_DAY 24
#define TAG_COL_STATS_BEGIN_TIME_STAMP 25
#define TAG_COL_STATS_TIME_STAMP_OFFSET 26
#define TAG_COL_STATS_PERIOD 27
#define TAG_COL_STATS_PCT_GOOD 28
#define TAG_COL_STATS_FILTER_EXPR 29
#define TAG_COL_STATS_DROP_BAD_MODE 30
#define TAG_COL_STATS_COUNT_PARAM1 31
#define TAG_COL_STATS_COUNT_PARAM2 32
//V2
#define TAG_COL_STATS_SAMPLE_TYPE 33
#define TAG_COL_STATS_INTERP_OFFSET 34
#define TAG_COL_STATS_INTERP_PERIOD 35
#define TAG_COL_STATS_CONVER_TYPE 36
#define TAG_COL_STATS_CONVERSION 37
#define TAG_COL_STATS_FILTER_FAIL_MODE 38
#define TAG_COL_STATS_CALC_PERIOD 39
#define TAG_COL_STATS_RESET 40
#define TAG_COL_STATS_USE_BAD_VALUE 41
#define STATS_TAG_COL_MAX 41
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define TAG_COL_CALC_MODE 16
#define TAG_COL_CALC_PERIOD 17
#define TAG_COL_CALC_EXPR 18
#define TAG_COL_CALC_CALCHISTORY 19
#define TAG_COL_CALC_STARTDATE 20
#define TAG_COL_CALC_HAVRENDDATE 21
#define TAG_COL_CALC_ENDDATE 22
#define TAG_COL_CALC_SOURCETAGNAME 23
#define CALC_TAG_COL_MAX 23
/*SPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define TAG_COL_SPC_SOURCE_TAG_NAME 16
#define TAG_COL_SPC_ALARM_GROUP_ID 17
#define TAG_COL_SPC_CTRL_CHART_TYPE 18
#define TAG_COL_SPC_TRIGGLE_MODE 19
#define TAG_COL_SPC_SAMPLE_SIZE 20
#define TAG_COL_SPC_SAMPLE_INTERVAL 21
#define TAG_COL_SPC_AUTO_ACK 22
#define TAG_COL_SPC_RULE 23
#define SPC_TAG_COL_MAX 23
#define TAG_PROP_ITEM_COUNT 24 //<2F>ⲿ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>TagProp item<65><6D><EFBFBD><EFBFBD>
#define TAG_PROP_ALL 0XFFFFFFFFFFFFFFFFLL //tag<61><67><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>ȡֵ<C8A1><D6B5><EFBFBD><EFBFBD>ʾTag<61><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tag<61><67><EFBFBD><EFBFBD>
#define TAG_PROP_TAG_NAME 1
#define TAG_PROP_ARCHIVING ((int64)1 << TAG_COL_ARCHIVING)
#define TAG_PROP_COMP_DEV ((int64)1 << TAG_COL_COMP_DEV)
#define TAG_PROP_COMP_MAX ((int64)1 << TAG_COL_COMP_MAX)
#define TAG_PROP_COMP_TYPE ((int64)1 << TAG_COL_COMP_TYPE)
#define TAG_PROP_MIN_VALUE ((int64)1 << TAG_COL_MIN_VALUE)
#define TAG_PROP_REC_ACCESS ((int64)1 << TAG_COL_REC_ACCESS)
#define TAG_PROP_REC_GROUP ((int64)1 << TAG_COL_REC_GROUP)
#define TAG_PROP_REC_OWNER ((int64)1 << TAG_COL_REC_OWNER)
#define TAG_PROP_SCAN ((int64)1 << TAG_COL_SCAN)
#define TAG_PROP_SPAN ((int64)1 << TAG_COL_SPAN)
#define TAG_PROP_TAGID ((int64)1 << TAG_COL_TAGID)
#define TAG_PROP_TAG_TYPE ((int64)1 << TAG_COL_TAG_TYPE)
#define TAG_PROP_TAG_CLASS ((int64)1 << TAG_COL_TAG_CLASS)
#define TAG_PROP_DELETE ((int64)1 << TAG_COL_DELETE)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
#define TAG_PROP_TEST1 ((int64)1 << TAG_COL_TEST1)
#define TAG_PROP_TEST2 ((int64)1 << TAG_COL_TEST2)
#define TAG_PROP_TEST3 ((int64)1 << TAG_COL_TEST3)
#define TAG_PROP_TEST4 ((int64)1 << TAG_COL_TEST4)
#define TAG_PROP_ACTION1 ((int64)1 << TAG_COL_ACTION1)
#define TAG_PROP_ACTION2 ((int64)1 << TAG_COL_ACTION2)
#define TAG_PROP_ACTION3 ((int64)1 << TAG_COL_ACTION3)
#define TAG_PROP_ACTION4 ((int64)1 << TAG_COL_ACTION4)
#define TAG_PROP_SOURCE_TAG ((int64)1 << TAG_COL_SOURCE_TAG)
#define TAG_PROP_ALARM_GROUP_ID ((int64)1 << TAG_COL_ALARM_GROUP_ID)
#define TAG_PROP_AUTOACK ((int64)1 << TAG_COL_AUTOACK)
#define TAG_PROP_TIME_DEADBAND ((int64)1 << TAG_COL_TIME_DEADBAND)
#define TAG_PROP_VALUE_DEADBAND ((int64)1 << TAG_COL_VALUE_DEADBAND)
//ͳ<>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TAG_PROP_STATS_SOURCE_TAG_NAME ((int64)1 << TAG_COL_STATS_SOURCE_TAG_NAME)
#define TAG_PROP_STATS_TYPE ((int64)1 << TAG_COL_STATS_TYPE)
#define TAG_PROP_STATS_SAMPLE_START_DATE ((int64)1 << TAG_COL_STATS_SAMPLE_START_DATE)
#define TAG_PROP_STATS_SAMPLE_MODE ((int64)1 << TAG_COL_STATS_SAMPLE_MODE)
#define TAG_PROP_STATS_SAMPLE_INTERVAL ((int64)1 << TAG_COL_STATS_SAMPLE_INTERVAL)
#define TAG_PROP_STATS_SAMPLE_BEGIN_OFFSET ((int64)1 << TAG_COL_STATS_SAMPLE_BEGIN_OFFSET)
#define TAG_PROP_STATS_SAMPLE_END_OFFSET ((int64)1 << TAG_COL_STATS_SAMPLE_END_OFFSET)
#define TAG_PROP_STATS_SAMPLE_MONTH_BEGIN_DAY ((int64)1 << TAG_COL_STATS_SAMPLE_MONTH_BEGIN_DAY)
#define TAG_PROP_STATS_SAMPLE_MONTH_END_DAY ((int64)1 << TAG_COL_STATS_SAMPLE_MONTH_END_DAY)
#define TAG_PROP_STATS_BEGIN_TIME_STAMP ((int64)1 << TAG_COL_STATS_BEGIN_TIME_STAMP)
#define TAG_PROP_STATS_TIME_STAMP_OFFSET ((int64)1 << TAG_COL_STATS_TIME_STAMP_OFFSET)
#define TAG_PROP_STATS_SCAN_PERIOD ((int64)1 << TAG_COL_STATS_PERIOD)
#define TAG_PROP_STATS_PCT_GOOD ((int64)1 << TAG_COL_STATS_PCT_GOOD)
#define TAG_PROP_STATS_FILTER_EXPR ((int64)1 << TAG_COL_STATS_FILTER_EXPR)
#define TAG_PROP_STATS_DROP_BAD_MODE ((int64)1 << TAG_COL_STATS_DROP_BAD_MODE)
#define TAG_PROP_STATS_COUNT_PARAM1 ((int64)1 << TAG_COL_STATS_COUNT_PARAM1)
#define TAG_PROP_STATS_COUNT_PARAM2 ((int64)1 << TAG_COL_STATS_COUNT_PARAM2)
#define TAG_PROP_STATS_SAMPLE_TYPE ((int64)1 << TAG_COL_STATS_SAMPLE_TYPE)
#define TAG_PROP_STATS_INTERP_OFFSET ((int64)1 << TAG_COL_STATS_INTERP_OFFSET)
#define TAG_PROP_STATS_INTERP_PERIOD ((int64)1 << TAG_COL_STATS_INTERP_PERIOD)
#define TAG_PROP_STATS_CONVER_TYPE ((int64)1 << TAG_COL_STATS_CONVER_TYPE)
#define TAG_PROP_STATS_CONVERSION ((int64)1 << TAG_COL_STATS_CONVERSION)
#define TAG_PROP_STATS_FILTER_FAIL_MODE ((int64)1 << TAG_COL_STATS_FILTER_FAIL_MODE)
#define TAG_PROP_STATS_CALC_PERIOD ((int64)1 << TAG_COL_STATS_CALC_PERIOD)
#define TAG_PROP_STATS_RESET ((int64)1 << TAG_COL_STATS_RESET)
#define TAG_PROP_STATS_USE_BAD_VALUE ((int64)1 << TAG_COL_STATS_USE_BAD_VALUE)
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>*/
#define TAG_PROP_CALC_MODE ((int64)1 << TAG_COL_CALC_MODE)
#define TAG_PROP_CALC_PERIOD ((int64)1 << TAG_COL_CALC_PERIOD)
#define TAG_PROP_CALC_EXPR ((int64)1 << TAG_COL_CALC_EXPR)
#define TAG_PROP_CALC_STARTDATE ((int64)1 << TAG_COL_CALC_STARTDATE)
#define TAG_PROP_CALC_ENDDATE ((int64)1 << TAG_COL_CALC_ENDDATE)
#define TAG_PROP_CALC_CALCHISTORY ((int64)1 << TAG_COL_CALC_CALCHISTORY)
#define TAG_PROP_CALC_HAVEENDTIME ((int64)1 << TAG_COL_CALC_HAVRENDDATE)
#define TAG_PROP_CALC_SOURCE_TAG_NAME ((int64)1 << TAG_COL_CALC_SOURCETAGNAME)
/*SPC<50><43><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>*/
#define TAG_PROP_SPC_SOURCE_TAG_NAME ((int64)1 << TAG_COL_SPC_SOURCE_TAG_NAME)
#define TAG_PROP_SPC_ALARM_GROUP_ID ((int64)1 << TAG_COL_SPC_ALARM_GROUP_ID)
#define TAG_PROP_SPC_CTRL_CHART_TYPE ((int64)1 << TAG_COL_SPC_CTRL_CHART_TYPE)
#define TAG_PROP_SPC_TRIGGLE_MODE ((int64)1 << TAG_COL_SPC_TRIGGLE_MODE)
#define TAG_PROP_SPC_SAMPLE_SIZE ((int64)1 << TAG_COL_SPC_SAMPLE_SIZE)
#define TAG_PROP_SPC_SAMPLE_INTERVAL ((int64)1 << TAG_COL_SPC_SAMPLE_INTERVAL)
#define TAG_PROP_SPC_AUTO_ACK ((int64)1 << TAG_COL_SPC_AUTO_ACK)
#define TAG_PROP_SPC_RULE ((int64)1 << TAG_COL_SPC_RULE)
#define SPC_RULE(NUM)\
uint32 nUCLTagID;\
uint32 nCLTagID;\
uint32 nLCLTagID;\
uint32 nUSLTagID;\
uint32 nLSLTagID;\
uint32 nResetTagID;\
float64 dUCLDefaultValue;\
float64 dCLDefaultVaule;\
float64 dLCLDefaultValue;\
bool bRule1;\
bool bRule2;\
bool bRule3;\
bool bRule4;\
bool bRule5;\
bool bRule6;\
bool bRule7;\
bool bRule8;\
uint32 nRule1M;\
uint32 nRule2M;\
uint32 nRule3M;\
uint32 nRule4M;\
uint32 nRule5M;\
uint32 nRule6M;\
uint32 nRule7M;\
uint32 nRule8M;\
uint32 nRule5N;\
uint32 nRule6N;\
bool bJudgeContinuous
//ɾ<><C9BE><EFBFBD>ֲ<EFBFBD>ʽ<EFBFBD><EFBFBD><E6B1BE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TAG_BASE_PROP(NUM) \
char szTagName[HD_LEN_TAG_NAME * NUM]; \
bool bArchiving; \
float fCompDev; \
int32 nCompMaxTime; \
uint8 nCompType; \
uint8 nRecAccess; \
uint32 nRecNormalGroupID; \
uint32 nRecOwnerGroupID; \
uint32 nTagID; \
uint8 nTagType; \
bool bScan; \
float fSpan; \
float fMinValue; \
uint8 nTagClass; \
bool bDelete
#define TAG_EXT_PROP(NUM) \
char szInstrumentPoint[HD_LEN_INSTURMENT_POINT * NUM]; \
uint8 nInstrumentPointType; \
char szCollectorName[HD_LEN_COLLECTOR_NAME * NUM]; \
int32 nCollectorID; \
char szDeviceName[HD_LEN_DEVICE_NAME * NUM]; \
int32 nDeviceID; \
char szScanGroupName[HD_LEN_SCANGROUP_NAME * NUM]; \
int32 nScanGroupID; \
uint8 nParam1; \
uint8 nParam2; \
uint8 nParam3; \
uint8 nParam4; \
uint8 nParam5
#define ALARM_TAG_EXT_PROP(NUM) \
char szTest1[HD_LEN_ALARM_TEST * NUM]; \
char szTest2[HD_LEN_ALARM_TEST * NUM]; \
char szTest3[HD_LEN_ALARM_TEST * NUM]; \
char szTest4[HD_LEN_ALARM_TEST * NUM]; \
char szAction1[HD_LEN_ALARM_ACTION * NUM]; \
char szAction2[HD_LEN_ALARM_ACTION * NUM]; \
char szAction3[HD_LEN_ALARM_ACTION * NUM]; \
char szAction4[HD_LEN_ALARM_ACTION * NUM]; \
uint32 nSourceTagID; \
uint32 nAlarmGroupID; \
uint8 nAutoAck ; \
int32 nTimeDeadBand; \
float fValueDeadBand
#define STATS_TAG_EXT_PROP(NUM) \
char szSourceTagName[HD_LEN_TAG_NAME * NUM]; \
uint8 nStatsType; \
int32 nSampleStartDate; \
uint8 nSampleMode; \
int32 nSampleInerval; \
int32 nSampleBeginOffset; \
int32 nSampleEndOffset; \
uint8 nSampleMonthBeginDay; \
uint8 nSampleMonthEndDay; \
bool bBeginTimeStamp; \
int32 nTimeStampOffset; \
int32 nScanPeriod; \
float fPctGood; \
char szFilterExpr[HD_LEN_FILTER_EXPR * NUM]; \
uint8 nDropBadMode; \
double dCountParam1; \
double dCountParam2
#define STATS_TAG_EXT_PROP_V2(NUM) \
uint8 nSampleType; \
int32 nInterpOffset; \
int32 nInterpPeriod; \
uint8 nConverType; \
double dConversion; \
uint8 nFilterFailMode; \
int32 nCalcPeriod; \
bool bReset; \
bool bUseBadValue
#define Calc_TAG_EXT_PROP(NUM) \
uint8 nCalcMode; \
int32 nCalcPeriod; \
char szCalcExpr[HD_LEN_CALC_EXPR * NUM]; \
bool bCalcHistory; \
int32 nCalcStartDate; \
int32 nCalcEndDate; \
bool bHaveEndTime; \
char szSourceTagName[HD_LEN_TAG_NAME * NUM]
#define SPC_TAG_EXT_PROP(NUM) \
uint32 nSourceTagID; \
uint32 nAlarmGroupID; \
uint8 nCtrlChartType; \
uint8 nTriggleMode; \
int32 nSampleSize; \
int32 nSampleInerval; \
bool bAutoAck; \
SPC_RULE(NUM)
/*<2A><><EFBFBD><EFBFBD><EFBFBD>Խṹ */
typedef struct _TagBaseProp
{
TAG_BASE_PROP(1);
}TagBaseProp;
typedef struct _TagProp
{
TAG_BASE_PROP(1);
}TagProp;
typedef struct _AlarmTagProp
{
TAG_BASE_PROP(1);
ALARM_TAG_EXT_PROP(1);
}AlarmTagProp;
typedef struct _SPCAlarmTagProp
{
TAG_BASE_PROP(1);
SPC_TAG_EXT_PROP(1);
}SPCAlarmTagProp;
typedef struct _StatsTagProp
{
TAG_BASE_PROP(1);
STATS_TAG_EXT_PROP(1);
}StatsTagProp;
typedef struct _StatsTagPropV2
{
TAG_BASE_PROP(1);
STATS_TAG_EXT_PROP(1);
STATS_TAG_EXT_PROP_V2(1);
}StatsTagPropV2;
typedef struct _CalcTagProp
{
TAG_BASE_PROP(1);
Calc_TAG_EXT_PROP(1);
}CalcTagProp;
typedef struct _QueryTagPropItem
{
uint8 nPropItemID;
uint8 nRelation;
char szValue[LENGTH_QUERY_ITEM_VALUE];
}QueryTagPropItem;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼ʱ<C2BC>IJ<EFBFBD>ѯ<EFBFBD><D1AF>ID
#define ALARM_REC_QUERY_ITEM_MIN 0
#define ALARM_REC_QUERY_ITEM_PRIORITY 0 //<2F><><EFBFBD>ȼ<EFBFBD>
#define ALARM_REC_QUERY_ITEM_ACK 1 //ȷ<><C8B7>״̬
#define ALARM_REC_QUERY_ITEM_ALARM_TYPE 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ALARM_REC_QUERY_ITEM_NORMAL 3 //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>¼
#define ALARM_REC_QUERY_ITEM_MAX 3
typedef struct _QueryAlarmRecItem
{
uint8 nItemID;
uint8 nRelation;
char szValue[HD_LEN_QUERY_ALARM_REC_ITEM_VALUE];
}QueryAlarmRecItem;
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>еĿ<D0B5>ѡ<EFBFBD><D1A1>*/
#define MASK_ALARM_ALL 0XFF
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ȷ<EFBFBD><C8B7>״̬*/
#define ALARM_STATE_UNACK 0
#define ALARM_STATE_ACK 1
/*<2A><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD>ӿ<EFBFBD>*/
#define MASK_ALARM_STATE_ACK (1 << ALARM_STATE_ACK)
#define MASK_ALARM_STATE_UNACK (1 << ALARM_STATE_UNACK)
/*<2A>ָ<EFBFBD>״̬*/
#define ALARM_STATE_UNRESTORE 0
#define ALARM_STATE_RESTORE 1
/*<2A><><EFBFBD><EFBFBD>*/
#define MASK_ALARM_STATE_RESTORE (1 << ALARM_STATE_RESTORE)
#define MASK_ALARM_STATE_UNRESTORE (1 << ALARM_STATE_UNRESTORE)
/*ע<><D7A2>״̬*/
#define ALARM_STATE_UNCOMMENT 0
#define ALARM_STATE_COMMENT 1
/*<2A><><EFBFBD><EFBFBD>*/
#define MASK_ALARM_STATE_COMMENT (1 << ALARM_STATE_COMMENT)
#define MASK_ALARM_STATE_UNCOMMENT (1 << ALARM_STATE_UNCOMMENT)
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>,0Ϊ<30><CEAA><EFBFBD><EFBFBD>*/
#define ALARM_PRI_FIRST 1
#define ALARM_PRI_SECOND 2
#define ALARM_PRI_THIRD 3
#define ALARM_PRI_FORTH 4
#define ALARM_PRI_COUNT 4
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD>ӿ<EFBFBD>*/
#define MASK_ALARM_PRIORITY_LOW (1 << ALARM_PRI_FIRST)
#define MASK_ALARM_PRIORITY_MID (1 << ALARM_PRI_SECOND)
#define MASK_ALARM_PRIORITY_HIGH (1 << ALARM_PRI_THIRD)
#define MASK_ALARM_PRIORITY_EMER (1 << ALARM_PRI_FORTH)
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
#define ALARM_TYPE_LOLO 1
#define ALARM_TYPE_LOW 2
#define ALARM_TYPE_HIHI 3
#define ALARM_TYPE_HIGH 4
#define ALARM_TYPE_CHANGE 5
#define ALARM_TYPE_COUNT 5
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD>ӿ<EFBFBD>*/
#define MASK_ALARM_TYPE_LOLO (1 << ALARM_TYPE_LOLO)
#define MASK_ALARM_TYPE_LOW (1 << ALARM_TYPE_LOW)
#define MASK_ALARM_TYPE_HIHI (1 << ALARM_TYPE_HIHI)
#define MASK_ALARM_TYPE_HIGH (1 << ALARM_TYPE_HIGH)
#define MASK_ALARM_TYPE_CHANGE (1 << ALARM_TYPE_CHANGE)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ALARM_REC_PROP_ALARM_TAG_ID 1
#define ALARM_REC_PROP_START_TIME ((int64)1 << 1)
#define ALARM_REC_PROP_END_TIME ((int64)1 << 2)
#define ALARM_REC_PROP_ACK_TIME ((int64)1 << 3)
#define ALARM_REC_PROP_COMMENT_TIME ((int64)1 << 4)
#define ALARM_REC_PROP_ACKED ((int64)1 << 5)
#define ALARM_REC_PROP_RESTORED ((int64)1 << 6)
#define ALARM_REC_PROP_PRIORITY ((int64)1 << 7)
#define ALARM_REC_PROP_ACK_TYPE ((int64)1 << 8)
#define ALARM_REC_PROP_ALARM_TYPE ((int64)1 << 9)
#define ALARM_REC_PROP_SRC_VALUE ((int64)1 << 10)
#define ALARM_REC_PROP_TEST ((int64)1 << 11)
#define ALARM_REC_PROP_COMMENT ((int64)1 << 12)
#define ALARM_REC_PROP_ACKER ((int64)1 << 13)
#define ALARM_REC_PROP_COMMENTOR ((int64)1 << 14)
#define ALARM_REC_PROP_COMMENTED ((int64)1 << 15)
#define ALARM_REC_PROP_ALL 0xFFFF
#define ALARM_ACK_TYPE_MANUAL 1
#define ALARM_ACK_TYPE_AUTO 2
#define ALARM_ACK_TYPE_COUNT 2
#define ALARM_TAG_PROP_NUM_EXCEL_MAX 24
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF>¼ʱ<C2BC>IJ<EFBFBD>ѯ<EFBFBD><D1AF>ID
#define REC_QUERY_ITEM_MIN 0
#define REC_QUERY_ITEM_QUALITY 0 //<2F><><EFBFBD><EFBFBD>
#define REC_QUERY_ITEM_VALUE 1 //ֵ
#define REC_QUERY_ITEM_MAX 1
typedef struct _QueryRecItem
{
uint8 nItemID;
uint8 nRelation;
uint8 nItemValueLen;
char* pItemValue;
}QueryRecItem;
#define RELATION_MIN 0
#define RELATION_EQUAL 0
#define RELATION_NON_EQUAL 1
#define RELATION_GREAT 2
#define RELATION_LESS 3
#define RELATION_GREAT_AND_EQUAL 4
#define RELATION_LESS_AND_EQUAL 5
#define RELATION_LIKE 6
#define RELATION_MAX 6
/** ʱ<><CAB1><EFBFBD><EFBFBD>1970<37><30>1<EFBFBD><31>0<EFBFBD><30>00:00:01<30><31>2038<33><38>1<EFBFBD><31>19<31><39>3:14:06 */
typedef struct _HDTimeStamp{
int32 month; /**< 1-12 */
int32 year; /**< four digit */
int32 day; /**< 1-31 */
int32 hour; /**< 0-23 */
int32 minute; /**< 0-59 */
int32 second; /**< 0-59*/
int32 mSecond; /**< 0-999*/
int32 timezone; /**< -12~12*/
}HDTimeStamp;
typedef struct
{
int32 nSec;
int16 nMsec;
}HDTime;
typedef struct _HDTimeRegion
{
HDTime left; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HDTime right; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bLeftClosed; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BFAA><EFBFBD>DZ<EFBFBD>
bool bRightClosed; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BFAA><EFBFBD>DZ<EFBFBD>
}HDTimeRegion;
#define API_CLIENT_MAX_SOCKET_NUM 100
typedef struct _HDClientConnInfo
{
uint32 nClientIp;
char szMac[32];
int32 nSocketNum;
SOCKET nSocket[API_CLIENT_MAX_SOCKET_NUM];
}HDClientConnInfo;
typedef struct _HDSocketNetInfo
{
SOCKET nSocket;
int32 nConnectTime;
int32 nPackageRecvNum;
int32 nPackageRecvTime;
char szUserName[HD_LEN_USER_NAME*2];
}HDSocketNetInfo;
#define HD_LEN_HD_VERSION 128
// <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct _HDServerCfg{
int32 nPort; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF>
int32 nArchFileSizeMB; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ĵ<EFBFBD>С
int32 nArchFileNum; //<2F><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
int32 nSeqFileSizeMB; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ĵ<EFBFBD>С
int32 nSeqCacheFlushPeriodSec; // <20><><EFBFBD>л<EFBFBD><D0BB><EFBFBD>ˢ<EFBFBD><CBA2>Ƶ<EFBFBD><C6B5>
bool bAutoDisconn; //<2F>Ƿ<EFBFBD><C7B7>Զ<EFBFBD><D4B6>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int32 nAutoDisconnPeriodSec; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵij<D3B5>ʱʱ<CAB1><CAB1>
bool bSysInfoCollect; //<2F>Ƿ<EFBFBD><C7B7>ɼ<EFBFBD>ϵͳ<CFB5><CDB3>Ϣ
int32 nSysInfoCollectPeriodSec; //ϵͳ<CFB5><CDB3>Ϣ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
bool bDiscardFutureData; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int32 nDiscardFutureDataTimeDelterSec; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ƫ<EFBFBD><C6AB>
int64 nMachineTimeMs; //<2F><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>(<28><><EFBFBD><EFBFBD>)
int32 nEnableExportBigData;
int32 nEnableRyBigData;
char szHDVersion[HD_LEN_HD_VERSION];
}HDServerCfg;
// rest<73><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//paramBody.put("name", dsName);
// paramBody.put("hostip", hostip);
// paramBody.put("port", port);
// paramBody.put("user", user);
// paramBody.put("password", pwd);
// paramBody.put("hostname", "/");
// paramBody.put("exchange", "v6-direct-exchange");
// paramBody.put("routingrtalms", "CR_AL_00");
// paramBody.put("routingclearalm", "CR_AL_01");
// paramBody.put("routingrtrec", "CR_RT_00");
// paramBody.put("routingcrs", "CR_RS_00");
// */
#define HD_LEN_REST_CONFIG_COMMON 64
typedef struct _HDRestCfg{
char szDsName[HD_LEN_REST_CONFIG_COMMON];
char szHostIP[HD_LEN_REST_CONFIG_COMMON];
char szPort[HD_LEN_REST_CONFIG_COMMON];
char szPassword[HD_LEN_REST_CONFIG_COMMON];
char szMaxTotal[HD_LEN_REST_CONFIG_COMMON];
char szMaxWait[HD_LEN_REST_CONFIG_COMMON];
char szMasterName[HD_LEN_REST_CONFIG_COMMON];
char szRoutingrtalms[HD_LEN_REST_CONFIG_COMMON];
char szRoutingclearalm[HD_LEN_REST_CONFIG_COMMON];
char szRoutingrtrec[HD_LEN_REST_CONFIG_COMMON];
char szRoutingcrs[HD_LEN_REST_CONFIG_COMMON];
char szUser[HD_LEN_REST_CONFIG_COMMON];
char szHostName[HD_LEN_REST_CONFIG_COMMON];
char szExChange[HD_LEN_REST_CONFIG_COMMON];
char szExtend1[HD_LEN_REST_CONFIG_COMMON];
char szExtend2[HD_LEN_REST_CONFIG_COMMON];
char szExtend3[HD_LEN_REST_CONFIG_COMMON];
char szExtend4[HD_LEN_REST_CONFIG_COMMON];
}HDRestCfg;
/** iHyperDB ע<><D7A2><EFBFBD><EFBFBD>ϢID+<2B><> */
typedef struct _HDRegInfo
{
uint32 nTagID; /**< TAG<41><47>ID*/
uint32 nFieldID; /**< <20><>ID*/
} HDRegInfo;
typedef struct
{
int32 nSec;
int16 nMsec;
uint16 nQuality;
uint8 nTagType;
struct
{
int8 nInt8;
int16 nInt16;
int32 nInt32;
float32 fFloat32;
float64 fFloat64;
int8 nDigital;
struct
{
char* pBuf;
uint16 nLenBuf;
}strBlob;
}value;
}HDRecord;
// Driver types
#define DRIVER_TYPE_OPC 1
#define DRIVER_TYPE_TCPMODBUS 2
//ͳ<><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_TYPE_MAX 0 //<2F><><EFBFBD><EFBFBD>ֵ
#define HD_STATS_TYPE_MIN 1 //<2F><>Сֵ
#define HD_STATS_TYPE_SUM 2 //<2F><><EFBFBD><EFBFBD>
#define HD_STATS_TYPE_LAST 3 //<2F><><EFBFBD><EFBFBD>ֵ
#define HD_STATS_TYPE_PCT_GOOD 4 //<2F><><EFBFBD>Ŷ<EFBFBD>
#define HD_STATS_TYPE_ARITH_MEAN 5 //<2F><><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ֵ
#define HD_STATS_TYPE_TIME_WEIGHTED_MEAN 6 //ʱ<><CAB1><EFBFBD><EFBFBD>Ȩƽ<C8A8><C6BD>ֵ
#define HD_STATS_TYPE_INTEGRAL 7 //<2F><><EFBFBD><EFBFBD>
#define HD_STATS_TYPE_COUNT_CHG_VALUE 8 //ֵ<>
#define HD_STATS_TYPE_COUNT_CHG_FROM_LESS_TO_GREAT 9 //<2F><><EFBFBD><EFBFBD><EFBFBD>仯,<2C><><=<3D><>>=
#define HD_STATS_TYPE_COUNT_CHG_FROM_GREAT_TO_LESS 10 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD>>=<3D><><=
#define HD_STATS_TYPE_DIFF 11 //<2F><>ֵͳ<D6B5><CDB3>
#define HD_STATS_TYPE_COUNT_IN_RANGE 12 //ֵ<><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_TYPE_COUNT_NOT_IN_RANGE 13 //ֵ<><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_TYPE_RANGE 14 //<2F><><EFBFBD><EFBFBD>
#define HD_STATS_TYPE_STANDARD_DEVIATION 15 //<2F><>׼<EFBFBD><D7BC>
#define HD_STATS_TYPE_TIME_GT 16 //<2F><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ֵ<EFBFBD><D6B5>ʱ<EFBFBD><CAB1>
#define HD_STATS_TYPE_TIME_GE 17 //<2F><><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ij<EFBFBD><C4B3>ֵ<EFBFBD><D6B5>ʱ<EFBFBD><CAB1>
#define HD_STATS_TYPE_TIME_EQ 18 //<2F><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ֵ<EFBFBD><D6B5>ʱ<EFBFBD><CAB1>
#define HD_STATS_TYPE_TIME_NE 19 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ֵ<EFBFBD><D6B5>ʱ<EFBFBD><CAB1>
#define HD_STATS_TYPE_TIME_LT 20 //С<><D0A1>ij<EFBFBD><C4B3>ֵ<EFBFBD><D6B5>ʱ<EFBFBD><CAB1>
#define HD_STATS_TYPE_TIME_LE 21 //С<>ڵ<EFBFBD><DAB5><EFBFBD>ij<EFBFBD><C4B3>ֵ<EFBFBD><D6B5>ʱ<EFBFBD><CAB1>
#define HD_STATS_TYPE_TIME_IN_RANGE 22 //<2F><>ij<EFBFBD><C4B3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define HD_STATS_TYPE_TIME_NOT_IN_RANGE 23 //<2F><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define HD_STATS_TYPE_LIMIT_MAX 23 //ͳ<><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ, <20><>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
//ͳ<>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>ģʽ
#define HD_STATS_SAMPLE_MODE_INTERVAL 0 //ͳ<>Ƶȼ<C6B5><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_SAMPLE_MODE_EVERY_DAY 1 //ͳ<><CDB3>ÿ<EFBFBD><C3BF>ͬʱ<CDAC>β<EFBFBD><CEB2><EFBFBD>
#define HD_STATS_SAMPLE_MODE_EVERY_MONTH 2 //ͳ<><CDB3>ÿ<EFBFBD><C3BF>ͬʱ<CDAC>β<EFBFBD><CEB2><EFBFBD>
#define HD_STATS_SAMPLE_MODE_TIME_MOVING 3 //ʱ<><CAB1><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_SAMPLE_MODE_FOREVER 4 //ʱ<><CAB1><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_SAMPLE_MODE_MAX 5
//ͳ<><CDB3>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_CONVERSION_TYPE_AMPLIFICATION 0 //ͳ<><CDB3>ֵ<EFBFBD>Ŵ<EFBFBD>
#define HD_STATS_CONVERSION_TYPE_MINIFICATION 1 //ͳ<><CDB3>ֵ<EFBFBD><D6B5>С
#define HD_STATS_CONVERSION_TYPE_MAX 1//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
//ͳ<>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_SAMPLE_TYPE_RAW 0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B6BC>ԭʼֵ
#define HD_STATS_SAMPLE_TYPE_LINER_INTERP 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B6BC><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD>ֵ
#define HD_STATS_SAMPLE_TYPE_PREV_INTERP 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B6BC>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ֵ
#define HD_STATS_SAMPLE_TYPE_MAX 2 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
//ͳ<>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
#define HD_STATS_DROP_BAD_MODE_REC 0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bad<61><64>¼
#define HD_STATS_DROP_BAD_MODE_AREA 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bad<61><64>¼<EFBFBD><C2BC><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_DROP_BAD_MODE_MAX 1
// <20><><EFBFBD><EFBFBD>ֵģʽ
#define HD_STATS_TIMED_WEIGHT_MODE 1 //<2F><>ʱ<EFBFBD><CAB1>ΪȨֵ
#define HD_STATS_RECORD_WEIGHT_MODE 2 // <20><>Ȩֵ
// count<6E><74><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ֵ<EFBFBD>仯ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仯ģʽ
#define HD_STATS_COUNT_MODE_CHANGE_VALUE 1
#define HD_STATS_COUNT_MODE_GREATER_CHANGE_TO_LESS 2
#define HD_STATS_COUNT_MODE_LESS_CHANGE_TO_GREATER 3
#define HD_STATS_COUNT_MODE_IN_RANGE 4
#define HD_STATS_COUNT_MODE_NOT_IN_RANGE 5
// <20><><EFBFBD>˱<EFBFBD><CBB1><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_STATS_FILTER_FAIL_MODE_FIL 0
#define HD_STATS_FILTER_FAIL_MODE_NO_FIL 1
#define HD_STATS_FILTER_FAIL_MODE_LIMIT_MAX 1
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ*/
#define HD_CALC_MODE_POLL 0 //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ
#define HD_CALC_MODE_NOTIFY 1 //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>֪ͨ
#define HD_CALC_MODE_MAX 1 //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
//tag<61><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define RES_TAG_NAME_SERVER_IP "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP"
#define RES_TAG_NAME_SERVER_PORT "<22>˿ں<CBBF>"
#define RES_TAG_NAME_TAGID "TagID"
#define RES_TAG_NAME_TAGNAME "Tag<61><67><EFBFBD><EFBFBD>"
#define RES_TAG_NAME_TAGTYPE "Tag<61><67><EFBFBD><EFBFBD>"
#define RES_TAG_NAME_TAG_DISC "Tag<61><67><EFBFBD><EFBFBD>"
#define RES_TAG_NAME_NODENAME "<22>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>"
#define RES_TAG_NAME_NODEID "<22>ڵ<EFBFBD>ID"
#define RES_TAG_NAME_GROUPPATH "<22><><EFBFBD><EFBFBD>·<EFBFBD><C2B7>"
//<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum
{
COLLECTOR_TYPE_INVALID = -1,
COLLECTOR_TYPE_OPC,
COLLECTOR_TYPE_MODBUS,
COLLECTOR_TYPE_RDB,
COLLECTOR_TYPE_IHD,
COLLECTOR_TYPE_MAX
};
//<2F><>¼<EFBFBD>IJ<EFBFBD>ֵ<EFBFBD><D6B5>ѯģʽ
#define HD_REC_INTERP_QUERY_MODE_LINEAR 0 //<2F><><EFBFBD>Բ<EFBFBD>ֵ
#define HD_REC_INTERP_QUERY_MODE_PREV 1 //ǰ<><C7B0><EFBFBD><EFBFBD>ֵ
#define HD_REC_INTERP_QUERY_MODE_MAX 1 //<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
#define HD_DIGITAL_SET_MAX_STATE_NUM 256
#define HD_DIGITAL_SET_MAX_STATE_VAL 127
#define HD_DIGITAL_SET_MIN_STATE_VAL -128
// <20>ɼ<EFBFBD><C9BC><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_CT_STATUS_TAG_TYPE_COLLECTOR 1
#define HD_CT_STATUS_TAG_TYPE_DEVICE 2
//SPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>Ͷ<EFBFBD>Ӧ<EFBFBD><D3A6>SPCBasicDef.h<>е<EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SPCChartType
#define HD_SPC_CTRL_CHART_TYPE_MIN 13 //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>Сֵ<D0A1><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
#define HD_SPC_CTRL_CHART_TYPE_XBAR 13 //XBar<61><72><EFBFBD><EFBFBD>
#define HD_SPC_CTRL_CHART_TYPE_R 14 //Rͼ
#define HD_SPC_CTRL_CHART_TYPE_S 15 //Sͼ
#define HD_SPC_CTRL_CHART_TYPE_MAX 15 //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
//SPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
#define HD_SPC_TRIGGLE_MODE_TRIGGLE 0
#define HD_SPC_TRIGGLE_MODE_MAX 0
//SPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SPC_ALARM_REC_PROP_SPC_TAG_ID 1
#define SPC_ALARM_REC_PROP_START_TIME ((int64)1 << 1)
#define SPC_ALARM_REC_PROP_END_TIME ((int64)1 << 2)
#define SPC_ALARM_REC_PROP_ACK_TIME ((int64)1 << 3)
#define SPC_ALARM_REC_PROP_COMMENT_TIME ((int64)1 << 4)
#define SPC_ALARM_REC_PROP_ACKED ((int64)1 << 5)
#define SPC_ALARM_REC_PROP_ACK_TYPE ((int64)1 << 6)
#define SPC_ALARM_REC_PROP_RESTORED ((int64)1 << 7)
#define SPC_ALARM_REC_PROP_COMMENTED ((int64)1 << 8)
#define SPC_ALARM_REC_PROP_ALARM_VALUE ((int64)1 << 9)
#define SPC_ALARM_REC_PROP_RULE ((int64)1 << 10)
#define SPC_ALARM_REC_PROP_SRC_VALUE ((int64)1 << 11)
#define SPC_ALARM_REC_PROP_COMMENT ((int64)1 << 12)
#define SPC_ALARM_REC_PROP_ACKER ((int64)1 << 13)
#define SPC_ALARM_REC_PROP_COMMENTOR ((int64)1 << 14)
#define SPC_ALARM_REC_PROP_ALL 0xFFFF
//SPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><4D><4E><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Сֵ
#define SPC_ALARM_RULE_M_N_VALUE_MIN 1
#define SPC_ALARM_RULE_M_N_VALUE_MAX 99
//SPC<50><43><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
#define SPC_ALARM_VALUE_MASK_RULE1 1
#define SPC_ALARM_VALUE_MASK_RULE2 ((int8)1 << 1)
#define SPC_ALARM_VALUE_MASK_RULE3 ((int8)1 << 2)
#define SPC_ALARM_VALUE_MASK_RULE4 ((int8)1 << 3)
#define SPC_ALARM_VALUE_MASK_RULE5 ((int8)1 << 4)
#define SPC_ALARM_VALUE_MASK_RULE6 ((int8)1 << 5)
#define SPC_ALARM_VALUE_MASK_RULE7 ((int8)1 << 6)
#define SPC_ALARM_VALUE_MASK_RULE8 ((int8)1 << 7)
// ϵͳ<CFB5><CDB3>ǰ׺
#define HD_SYS_TAG_PREFIX "hdsys"
//OPC<50><43><EFBFBD><EFBFBD>״̬
#define HD_TAG_OPC_STATE_UNRELEASE 0
#define HD_TAG_OPC_STATE_RELEASE 1
#define LICENSE_OEM_VCODE_MAXLEN 4
// API<50>
#define HD_API_VER_0 0
#define HD_API_VER_1 1
//<2F><>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD_SEC_AUTH_READ_DISABLE 0
#define HD_SEC_AUTH_READ_ENABLE 1
#define HD_SEC_AUTH_MAX 1//<2F><><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
#define HD_INS_POINT_TYPE_BASE 1
//modbus data point type
#define HD_INS_POINT_TYPE_INT8 (HD_INS_POINT_TYPE_BASE + 0)
#define HD_INS_POINT_TYPE_UINT8 (HD_INS_POINT_TYPE_BASE + 1)
#define HD_INS_POINT_TYPE_INT16 (HD_INS_POINT_TYPE_BASE + 2)
#define HD_INS_POINT_TYPE_UINT16 (HD_INS_POINT_TYPE_BASE + 3)
#define HD_INS_POINT_TYPE_INT32 (HD_INS_POINT_TYPE_BASE + 4)
#define HD_INS_POINT_TYPE_UINT32 (HD_INS_POINT_TYPE_BASE + 5)
#define HD_INS_POINT_TYPE_FLOAT (HD_INS_POINT_TYPE_BASE + 6)
#define HD_INS_POINT_TYPE_DOUBLE (HD_INS_POINT_TYPE_BASE + 7)
#define HD_INS_POINT_TYPE_STRING (HD_INS_POINT_TYPE_BASE + 8)
#define HD_INS_POINT_TYPE_BLOB (HD_INS_POINT_TYPE_BASE + 9)
#define HD_INS_POINT_TYPE_DIGITAL (HD_INS_POINT_TYPE_BASE + 10)
#define HD_INS_POINT_TYPE_MAX (HD_INS_POINT_TYPE_BASE + 11)
#define HD_MODBUS_DATA_ORDER_BASE 1
#define HD_MODBUS_DATA_NO_ORDER (HD_MODBUS_DATA_ORDER_BASE - 1)
#define HD_MODBUS_DATA_ORDER_12 (HD_MODBUS_DATA_ORDER_BASE + 0)
#define HD_MODBUS_DATA_ORDER_21 (HD_MODBUS_DATA_ORDER_BASE + 1)
#define HD_MODBUS_DATA_ORDER_1234 (HD_MODBUS_DATA_ORDER_BASE + 2)
#define HD_MODBUS_DATA_ORDER_2143 (HD_MODBUS_DATA_ORDER_BASE + 3)
#define HD_MODBUS_DATA_ORDER_3412 (HD_MODBUS_DATA_ORDER_BASE + 4)
#define HD_MODBUS_DATA_ORDER_4321 (HD_MODBUS_DATA_ORDER_BASE + 5)
#define HD_MODBUS_DATA_ORDER_12345678 (HD_MODBUS_DATA_ORDER_BASE + 6)
#define HD_MODBUS_DATA_ORDER_21436587 (HD_MODBUS_DATA_ORDER_BASE + 7)
#define HD_MODBUS_DATA_ORDER_34127856 (HD_MODBUS_DATA_ORDER_BASE + 8)
#define HD_MODBUS_DATA_ORDER_43218765 (HD_MODBUS_DATA_ORDER_BASE + 9)
#define HD_MODBUS_DATA_ORDER_56781234 (HD_MODBUS_DATA_ORDER_BASE + 10)
#define HD_MODBUS_DATA_ORDER_65872143 (HD_MODBUS_DATA_ORDER_BASE + 11)
#define HD_MODBUS_DATA_ORDER_78563412 (HD_MODBUS_DATA_ORDER_BASE + 12)
#define HD_MODBUS_DATA_ORDER_87654321 (HD_MODBUS_DATA_ORDER_BASE + 13)
#define HD_MODBUS_CONNECT_TYPE_TCP 0
#define HD_MODBUS_CONNECT_TYPE_RTU 1
#define HD_MODBUS_CONNECT_TYPE_SERIAL 2
#define HD_MODBUS_SERIAL_CHECKPARITY_NONE 0 //<2F><>У<EFBFBD><D0A3>
#define HD_MODBUS_SERIAL_CHECKPARITY_ODD 1 //<2F><>У<EFBFBD><D0A3>
#define HD_MODBUS_SERIAL_CHECKPARITY_EVEN 2 //żУ<C5BC><D0A3>
//RESTע<54><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ VTQ
#define HD_REST_REG_TAG_FIELD_VALUE 0
#define HD_REST_REG_TAG_FIELD_TIMESTAMP 1
#define HD_REST_REG_TAG_FIELD_QUALITY 2
#endif //#ifndef RD_CONST_H_FILE