eis/TestProject/ihd_test/ihdb_inc/hd3Struct.h

662 lines
19 KiB
C
Raw Normal View History

/**
* @file hd3Struct.h
* @brief hd3 struct
* @author: hd3 team
* @date 03/02/2015
* @version initialize version
* Copyright: Shanghai Baosight Software Co., Ltd.
*/
#ifndef HD3_INCLUDE_GUARD_HD3STRUCT_H
#define HD3_INCLUDE_GUARD_HD3STRUCT_H
#include "data_types.h"
#include "hd3Enum.h"
#include "hd3MaskDefine.h"
#include <string>
#ifndef HD3_DEFINE_GUARD_HD3HANDLE
#define HD3_DEFINE_GUARD_HD3HANDLE
typedef void* HD3HANDLE;
#endif
// HD3_SOCKET <20><><EFBFBD><EFBFBD>
#ifndef WIN32
# ifndef SOCKET
# define SOCKET int
# endif
#else
# ifndef SOCKET
# 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
// epsilon of compare double with 0
#define HD3_EPSILON (double)0.00001
// <20><><EFBFBD><EFBFBD>Tag<61><EFBFBD><E3B9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD3_COMM_TAG_PROP \
char szTagName[HD3_LEN_TAG_NAME * HD3_BASE]; \
bool bArchiving; \
uint32 nChangeDate; \
char szChanger[HD3_LEN_USER_NAME * HD3_BASE]; \
float fCompDev; \
int32 nCompMaxTime; \
enum HD3_COMP_TYPE nCompType; \
uint32 nCreationDate; \
char szCreator[HD3_LEN_USER_NAME * HD3_BASE]; \
uint8 nRecAccess; \
char szRecNormalGroup[HD3_LEN_USER_NAME * HD3_BASE]; \
char szRecOwnerGroup[HD3_LEN_USER_NAME * HD3_BASE]; \
char szDescriptor[HD3_LEN_TAG_DESC * HD3_BASE]; \
char szDigitalSet[HD3_LEN_DIGITAL_SET_NAME * HD3_BASE]; \
char szEngUnits[HD3_LEN_ENG_UNITS * HD3_BASE]; \
int32 nExcMaxTime; \
float fExcDev; \
uint32 nTagID; \
enum HD3_TAG_TYPE nTagType; \
uint8 nTagAccess; \
char szTagNormalGroup[HD3_LEN_USER_NAME * HD3_BASE]; \
char szTagOwnerGroup[HD3_LEN_USER_NAME * HD3_BASE]; \
bool bScan; \
float fSpan; \
float fMinValue; \
enum HD3_TAG_CLASS nTagClass; \
enum HD3_TAG_AVALIABLE nTagAvaliable; \
uint8 nParam1; \
uint8 nParam2; \
uint8 nParam3; \
uint8 nParam4; \
uint8 nParam5; \
enum HD3_TAG_OPC_STATE nOpcState; \
char szIMVString[HD3_LEN_EXT_STRING * HD3_BASE]; \
char szExtString1[HD3_LEN_EXT_STRING * HD3_BASE]; \
char szExtString2[HD3_LEN_EXT_STRING * HD3_BASE]
// <20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD3_PT_TAG_EXT_PROP \
HD3_M char szInstrumentAddress[HD3_LEN_INSTRUMENT_ADDRESS * HD3_BASE]; \
uint8 nInstrumentAddressType; \
char szCollectorName[HD3_LEN_COLLECTOR_NAME * HD3_BASE]; \
int32 nCollectorID; \
char szDeviceName[HD3_LEN_DEVICE_NAME * HD3_BASE]; \
HD3_M uint32 nDeviceID; \
char szScanGroupName[HD3_LEN_SCANGROUP_NAME * HD3_BASE]; \
HD3_M uint32 nScanGroupID; \
enum HD3_DATA_ORDER nDataOrder
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD3_ALARM_TAG_EXT_PROP \
char szTest1[HD3_LEN_ALARM_TEST * HD3_BASE]; \
char szTest2[HD3_LEN_ALARM_TEST * HD3_BASE]; \
char szTest3[HD3_LEN_ALARM_TEST * HD3_BASE]; \
char szTest4[HD3_LEN_ALARM_TEST * HD3_BASE]; \
char szAction1[HD3_LEN_ALARM_ACTION * HD3_BASE]; \
char szAction2[HD3_LEN_ALARM_ACTION * HD3_BASE]; \
char szAction3[HD3_LEN_ALARM_ACTION * HD3_BASE]; \
char szAction4[HD3_LEN_ALARM_ACTION * HD3_BASE]; \
char szSourceTagName[HD3_LEN_TAG_NAME * HD3_BASE]; \
uint32 nAlarmGroupID; \
enum HD3_AM_ACK_TYPE nAutoAck; \
int32 nTimeDeadBand; \
float fValueDeadBand
// ͳ<>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD3_STATS_TAG_EXT_PROP \
char szSourceTagName[HD3_LEN_TAG_NAME * HD3_BASE]; \
enum HD3_STATS_TYPE nStatsType; \
int32 nSampleStartDate; \
enum HD3_STATS_SAMPLE_MODE nSampleMode; \
HD3_M int32 nSampleInterval; \
int32 nSampleBeginOffset; \
int32 nSampleEndOffset; \
/*TT*/uint8 nSampleMonthBeginDay; \
/*TT*/uint8 nSampleMonthEndDay; \
bool bBeginTimeStamp; \
int32 nTimeStampOffset; \
int32 nScanPeriod; \
float fPctGood; \
char szFilterExpr[HD3_LEN_FILTER_EXPR * HD3_BASE]; \
enum HD3_STATS_DROP_BAD_MODE nDropBadMode; \
double dCountParam1; \
double dCountParam2; \
enum HD3_STATS_SAMPLE_TYPE nSampleType; \
int32 nInterpOffset; \
int32 nInterpPeriod; \
enum HD3_STATS_CONVERSION_TYPE nConversionType; \
double dConversion; \
enum HD3_STATS_FILTER_FAIL_MODE nFilterFailMode; \
int32 nCalcPeriod; \
bool bReset;\
bool bUseBadValue
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD3_CALC_TAG_EXT_PROP \
enum HD3_CALC_MODE nCalcMode; \
int32 nCalcPeriod; \
char szCalcExpr[HD3_LEN_CALC_EXPR * HD3_BASE]; \
bool bCalcHistory; \
int32 nCalcStartDate; \
int32 nCalcEndDate; \
bool bHaveEndTime; \
char szSourceTagName[HD3_LEN_TAG_NAME * HD3_BASE]
// SPC<50><43><EFBFBD><EFBFBD>
#define HD3_SPC_RULE \
char szUCLTagName[HD3_LEN_TAG_NAME * HD3_BASE];\
char szCLTagName[HD3_LEN_TAG_NAME* HD3_BASE];\
char szLCLTagName[HD3_LEN_TAG_NAME* HD3_BASE];\
char szUSLTagName[HD3_LEN_TAG_NAME* HD3_BASE];\
char szLSLTagName[HD3_LEN_TAG_NAME* HD3_BASE];\
char szResetTagName[HD3_LEN_TAG_NAME* HD3_BASE];\
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
// SPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HD3_SPC_TAG_EXT_PROP \
char szSourceTagName[HD3_LEN_TAG_NAME * HD3_BASE]; \
uint32 nAlarmGroupID; \
enum HD3_SPC_CTRL_CHART_TYPE nCtrlChartType; \
enum HD3_SPC_TRIGGER_MODE nTriggerMode; \
int32 nSampleSize; \
int32 nSampleInterval; \
bool bAutoAck; \
HD3_SPC_RULE
/* Tag<61><67><EFBFBD><EFBFBD><EFBFBD>Խṹ */
HD3_M;
typedef struct {
HD3_COMM_TAG_PROP;
}HD3CommTagProp;
// <20><>ͨ<EFBFBD><CDA8>
HD3_M;
typedef struct {
HD3_COMM_TAG_PROP;
HD3_PT_TAG_EXT_PROP;
}HD3PtTagProp;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
HD3_COMM_TAG_PROP;
HD3_ALARM_TAG_EXT_PROP;
}HD3AlarmTagProp;
// SPC<50><43>
typedef struct {
HD3_COMM_TAG_PROP;
HD3_SPC_TAG_EXT_PROP;
}HD3SpcTagProp;
// ͳ<>Ƶ<EFBFBD>
typedef struct {
HD3_COMM_TAG_PROP;
HD3_STATS_TAG_EXT_PROP;
}HD3StatsTagProp;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
HD3_COMM_TAG_PROP;
HD3_CALC_TAG_EXT_PROP;
}HD3CalcTagProp;
// <20><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4>Ϣ
typedef struct {
enum HD3_LICENSE nLicense;
int32 nValidSec;
uint32 nClientNum;
}HD3LicenseInfo;
/** ʱ<><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 {
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*/
}HD3TimeStamp;
// ʱ<><CAB1>
typedef struct {
int32 nSec;
int16 nMsec;
}HD3Time;
// ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
HD3Time left; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HD3Time right; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bLeftClosed; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BFAA><EFBFBD>DZ<EFBFBD>
bool bRightClosed; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BFAA><EFBFBD>DZ<EFBFBD>
}HD3TimeRegion;
// //<2F><>һ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
// typedef struct {
// HD3_M uint32 nClientIP;
// char szMac[32];
// int32 nSocketNum;
// HD3_SOCKET nSocket[HD3_CLIENT_SOCKET_MAX];
// }HD3ClientConnInfo;
//
// typedef struct {
// HD3_SOCKET nSocket;
// int32 nConnectTime;
// int32 nPackageRecvNum;
// int32 nPackageRecvTime;
// char szUserName[HD3_LEN_USER_NAME * HD3_BASE];
// }HD3SocketNetInfo;
// <20><><EFBFBD><EFBFBD>
typedef struct {
int32 nSec;
int16 nMsec;
uint16 nQuality;
enum HD3_TAG_TYPE nTagType;
struct
{
int8 nInt8;
int16 nInt16;
int32 nInt32;
float32 fFloat32;
float64 fFloat64;
int8 nDigital;
struct
{
char* pBuf;
uint16 nLenBuf;
}strBlob;
}value;
inline const double NumberValue()
{
if(this->nTagType == HD3_TAG_TYPE_INT8)return (double)this->value.nInt8;
if(this->nTagType == HD3_TAG_TYPE_INT16)return (double)this->value.nInt16;
if(this->nTagType == HD3_TAG_TYPE_INT32)return (double)this->value.nInt32;
if(this->nTagType == HD3_TAG_TYPE_FLOAT32)return (double)this->value.fFloat32;
if(this->nTagType == HD3_TAG_TYPE_FLOAT64)return (double)this->value.fFloat64;
if(this->nTagType == HD3_TAG_TYPE_DIGITAL)return (double)this->value.nDigital;
return 0;
}
inline const std::string StringValue()
{
if(this->nTagType == HD3_TAG_TYPE_STRING)return std::string(this->value.strBlob.pBuf,this->value.strBlob.nLenBuf);
return "";
}
}HD3Record;
// <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Tag<61><67><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ѯ<EFBFBD><D1AF>SPC<50><43>¼<EFBFBD><C2BC>ѯ<EFBFBD><D1AF>
typedef struct {
int32 nItemID;
enum HD3_RELATION nRelation;
char szValue[HD3_LEN_QUERY_ITEM_VALUE * HD3_BASE];
}HD3FilterItem;
// <20><><EFBFBD><EFBFBD>
typedef struct {
uint32 nAlarmTagID; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID*/
HD3Time tvStartTime; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼʱ<CABC><CAB1>*/
HD3Time tvEndTime; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹʱ<D6B9><CAB1>*/
HD3Time tvAckTime; /**< <20><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>ʱ<EFBFBD><CAB1>*/
HD3Time tvCommentTime; /**< <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ʱ<EFBFBD><CAB1>*/
enum HD3_AM_REC_ACK_STATE nAcked; /**< ȷ<><C8B7>״̬*/
enum HD3_AM_REC_RESTORE_STATE nRestored; /**< <20>ָ<EFBFBD>״̬*/
enum HD3_AM_REC_PRIORITY nPriority; /**< <20><><EFBFBD>ȼ<EFBFBD>*/
enum HD3_AM_ACK_TYPE nAckType; /**< <20><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
enum HD3_AM_REC_TYPE nAlarmType; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
char szSrcValue[HD3_LEN_VAR_TYPE_VALUE * HD3_BASE]; /**< Դֵ*/
char szTest[HD3_LEN_ALARM_TEST * HD3_BASE]; /**< Υ<><CEA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
char szComment[HD3_LEN_ALARM_COMMENT * HD3_BASE]; /**< ע<><D7A2>*/
char szAcker[HD3_LEN_USER_NAME * HD3_BASE]; /**< ȷ<><C8B7><EFBFBD><EFBFBD>*/
char szCommentor[HD3_LEN_USER_NAME * HD3_BASE]; /**< ע<><D7A2><EFBFBD><EFBFBD>*/
}HD3AlarmRecord;
// SPC
typedef struct {
uint32 nSPCTagID; /**< SPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID*/
HD3Time tvStartTime; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼʱ<CABC><CAB1>*/
HD3Time tvEndTime; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹʱ<D6B9><CAB1>*/
HD3Time tvAckTime; /**< <20><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>ʱ<EFBFBD><CAB1>*/
HD3Time tvCommentTime; /**< <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ʱ<EFBFBD><CAB1>*/
enum HD3_AM_REC_ACK_STATE nAcked; /**< ȷ<><C8B7>״̬*/
enum HD3_AM__REC_ACK_TYPE nAckType; /**< ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>*/
enum HD3_AM_REC_RESTORE_STATE nRestored; /**< <20>ָ<EFBFBD>״̬*/
int8 nValue; /**< <20><><EFBFBD><EFBFBD>ֵ*/
uint32 nRule1M; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>Mֵ*/
uint32 nRule2M; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>Mֵ*/
uint32 nRule3M; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33>Mֵ*/
uint32 nRule4M; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34>Mֵ*/
uint32 nRule5M; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35>Mֵ*/
uint32 nRule5N; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><35>Nֵ*/
uint32 nRule6M; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><36>Mֵ*/
uint32 nRule6N; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><36>Nֵ*/
uint32 nRule7M; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7<EFBFBD><37>Mֵ*/
uint32 nRule8M; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><38>Mֵ*/
char szSrcValue[HD3_LEN_VAR_TYPE_VALUE * HD3_BASE]; /**< Դֵ*/
char szComment[HD3_LEN_ALARM_COMMENT * HD3_BASE]; /**< ע<><D7A2>*/
char szAcker[HD3_LEN_USER_NAME * HD3_BASE]; /**< ȷ<><C8B7><EFBFBD><EFBFBD>*/
char szCommentor[HD3_LEN_USER_NAME * HD3_BASE]; /**< ע<><D7A2><EFBFBD><EFBFBD>*/
}HD3SpcRecord;
// iHyperDB <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
char szName[HD3_LEN_ALARM_GROUP_NAME * HD3_BASE]; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
char szDesc[HD3_LEN_ALARM_GROUP_DESC * HD3_BASE]; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
uint32 nGroupID; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID */
uint32 nParentID; /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ռ<EFBFBD> "" */
}HD3AlarmGroup;
// iHyperDB <20><>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
typedef struct {
HD3Time tvStart;
HD3Time tvEnd;
int64 nAckMask; // HD3AmAckStateMask
int64 nTypeMask; // HD3AmTypeMask
int64 nPriorMask; // HD3AmPriorityMask
int64 nRestoreMask; // HD3AmRestoreStateMask
}HD3AlarmQuery;
// iHyperDB SPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
typedef struct {
HD3Time tvStart;
HD3Time tvEnd;
int64 nAckMask; // HD3AmAckStateMask
int64 nRestoreMask; // HD3AmRestoreStateMask
}HD3SPCQuery;
// iHyperDB Ȩ<>޹<EFBFBD><DEB9><EFBFBD>: <20>û<EFBFBD>
typedef struct {
char szUserName[HD3_LEN_USER_NAME * HD3_BASE];
char szPasswd[HD3_LEN_PASSWORD * HD3_BASE];
char szUserDesc[HD3_LEN_USER_DESC * HD3_BASE];
}HD3SecUser;
// iHyperDB Ȩ<>޹<EFBFBD><DEB9><EFBFBD>: <20><>
typedef struct {
char szGroupName[HD3_LEN_GROUP_NAME * HD3_BASE];
char szGroupDesc[HD3_LEN_GROUP_DESC * HD3_BASE];
}HD3SecGroup;
// iHyperDB Ȩ<>޹<EFBFBD><DEB9><EFBFBD>: <20><>Ȩ<EFBFBD><C8A8>
typedef struct {
char szName[HD3_LEN_AUTH_NAME * HD3_BASE];
char szDesc[HD3_LEN_AUTH_DESC * HD3_BASE];
int32 nAuth;
}HD3SecAuthItem;
// iHyperDB Ȩ<>޹<EFBFBD><DEB9><EFBFBD>: <20><><EFBFBD><EFBFBD>
typedef struct {
char szTrustName[HD3_LEN_TRUST_NAME * HD3_BASE];
HD3_M char szStartIP[HD3_LEN_IP * HD3_BASE];
HD3_M char szEndIP[HD3_LEN_IP * HD3_BASE];
char szUserName[HD3_LEN_USER_NAME * HD3_BASE];
}HD3SecTrust;
// iHyperDB Ȩ<>޹<EFBFBD><DEB9><EFBFBD>: <20><>ȫ<EFBFBD><C8AB><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>:<3A><>Tag<61><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
char szOwnGroupName[HD3_LEN_GROUP_NAME * HD3_BASE];
char szOperateGroupName[HD3_LEN_GROUP_NAME * HD3_BASE];
int8 nSecurity;
}HD3SecItem;
// <20>ɼ<EFBFBD><C9BC><EFBFBD>
typedef struct {
uint32 nID;
uint32 nStatusTagID;
enum HD3_COLLECTOR_TYPE nType;
char szName[HD3_LEN_COLLECTOR_NAME * HD3_BASE];
char szDescription[HD3_LEN_COLLECTOR_DESC * HD3_BASE];
char szExtParam[HD3_LEN_COLLECTOR_EXT_PARAM * HD3_BASE];
}HD3Collector;
// <20>
typedef struct {
uint32 nID; /**<Device ID. */
uint32 nCollectorID; /**<Collector ID. */
uint16 nPort;
int32 nTimeout;
uint32 nStatusTagID;
int16 nTryTime;
bool bIsPrimary;
char szName[HD3_LEN_DEVICE_NAME * HD3_BASE];
char szDescription[HD3_LEN_DEVICE_DESC * HD3_BASE];
char szAddr[HD3_LEN_DEVICE_ADDRESS * HD3_BASE];
char szExtParam[HD3_LEN_DEVICE_EXT_PARAM * HD3_BASE];
}HD3Device;
// ɨ<><C9A8><EFBFBD><EFBFBD>
typedef struct {
uint32 nID; /**<Group ID. */
char szName[HD3_LEN_SCANGROUP_NAME * HD3_BASE];
char szDescrption[HD3_LEN_SCANGROUP_DESC * HD3_BASE];
int32 nPeriod;
int32 nPhase;
enum HD3_SCAN_TYPE nScanType; /**<advise mode or not */
uint32 nDeviceID; /**<Device ID. */
int32 nDataAddr;
int32 nDataLen;
char szExtParam[HD3_LEN_SCANGROUP_EXT_PARAM * HD3_BASE];
}HD3ScanGroup;
// <20><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4>Ϣ<EFBFBD><CFA2>
typedef struct {
uint32 nTagNumber; //nMaxTagNum
uint32 nClientNumber; //nMaxConNum
char szVCODE[HD3_LEN_LICENSE_OEM_VCODE * HD3_BASE];
uint8 nSupportSPC;
uint8 nSupportZT;
char szTempAlian[2]; //4<>ֽڱ<D6BD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}HD3LicInfo;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>
typedef struct {
char szName[HD3_LEN_DIGITAL_SET_NAME * HD3_BASE];
}HD3DigitalSet;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>Ϣ
typedef struct {
uint32 nStateID;
char szStateName[HD3_LEN_DIGITAL_SET_STATE_NAME * HD3_BASE];
int32 nStateValue;
}HD3DsStateInfo;
// <20>ɼ<EFBFBD><C9BC><EFBFBD>״̬<D7B4><CCAC>Ϣ
typedef struct {
uint16 nQuality;
int32 nTotalTagNum;
int32 nActiveTagNum;
}HD3CtStatusInfo;
// Tag<61><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct {
uint32 nTagID;
char szTagName[HD3_LEN_TAG_NAME * HD3_BASE];
enum HD3_TAG_TYPE nTagType;
enum HD3_TAG_CLASS nTagClass;
} HD3TagBasicInfo;
// ͳ<><CDB3><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
typedef struct {
enum HD3_STATS_TYPE nStatsType; //ͳ<><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int32 nTimeRegionNum; //ͳ<><CDB3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СֵΪ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ128
HD3TimeRegion* pTimeRegions;//ͳ<><CDB3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>䣬֧<E4A3AC>ֶ<EFBFBD><D6B6><EFBFBD>ͳ<EFBFBD><CDB3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float fPercentGood; //<2F><><EFBFBD>ζ<EFBFBD>(Good<6F><64><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD>ٷֱȴ<D6B1><C8B4>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD>ڸñ<DAB8><C3B1><EFBFBD>ʱ<EFBFBD><CAB1>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ŵ<EFBFBD>)<29><>0-100
enum HD3_STATS_SAMPLE_TYPE nSampleType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
char szFilterExpr[HD3_LEN_FILTER_EXPR * HD3_BASE]; //<2F><><EFBFBD>ݹ<EFBFBD><DDB9>˱<EFBFBD><CBB1><EFBFBD>ʽ, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum HD3_STATS_FILTER_FAIL_MODE nFilterFailMode; //<2F><><EFBFBD>˱<EFBFBD><CBB1><EFBFBD>ʽִ<CABD><D6B4>ʧ<EFBFBD><CAA7>ʱ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĴ<DDB5><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD>
double dExtParam1; //<2F><><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>ʱ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>, ֵ<><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ[dExtParam1, dExtParam2]
double dExtParam2; //<2F><><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>ʱ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵڶ<C4B5><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵڶ<C4B5><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int32 nOffset; //<2F><><EFBFBD><EFBFBD>ģʽΪ<CABD><CEAA>ֵʱ<D6B5><CAB1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>ΪstartTime+nOffset, <20><>λΪ<CEBB><CEAA>
int32 nPeriod; //<2F><><EFBFBD><EFBFBD>ģʽΪ<CABD><CEAA>ֵʱ<D6B5><CAB1><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ΪnPeriod, <20><>λΪ<CEBB><CEAA>
bool bUseBadValue; //badֵ<64>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>ƣ<EFBFBD>true<75><65>ʾbadֵ<64><D6B5><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3>
}HD3StRelatedParam;
// <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
typedef struct {
uint32 nChangeID;
enum HD3_MODULE_TYPE nModuleType;
uint32 nModuleID;
enum HD3_ALTERATION_ENTRY nEntry; // nChangeCategory
enum HD3_ALTERATION_TYPE nAlterationType;
uint32 nSourceID;
int32 nVersion;
}HD3AlterationReport; //HDChangeHis
// Tag<61><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
int64 nCommMask; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD>
int64 nExtMask;
}HD3Mask;
// <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
int32 nSize;
HD3FilterItem* pItem; // array
}HD3FilterItemSet;
// <20><>ѯָ<D1AF><D6B8>ҳTag<61><67><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
typedef struct {
HD3FilterItemSet itemSet;
HD3Mask mask;
uint32 nStartID;
int32 nCapacity;
}HD3PageQueryTagParam;
// iHyperDB<44>ڵ<EFBFBD><DAB5><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>ýڵ㡢<DAB5><E3A1A2><EFBFBD>ݽڵ㣩
typedef struct {
uint32 nID;
char szName[HD3_LEN_NODE_NAME * HD3_BASE];
char szDesc[HD3_LEN_NODE_DESC * HD3_BASE];
char szAddress[HD3_LEN_ADDRESS * HD3_BASE];
char szMachineName[HD3_LEN_ADDRESS * HD3_BASE];
uint16 nPort;
char szBakAddress[HD3_LEN_ADDRESS * HD3_BASE];
char szBakMachineName[HD3_LEN_ADDRESS * HD3_BASE];
uint16 nBakPort;
int32 nTagCapacity;
}HD3DataNode;
// ͳ<><CDB3>ͨ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
typedef struct {
HD3TimeRegion timeRegion;
float fPercentGood;
}HD3StFuncComm;
// API<50><49><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
typedef struct {
char szAddress[HD3_LEN_ADDRESS * HD3_BASE];
uint16 nPort;
char szBakAddress[HD3_LEN_ADDRESS * HD3_BASE];
uint16 nBakPort;
int32 nTimeout;
}HD3Connection;
// <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct {
uint32 nClientIp;
char szMac[32];
int32 nSocketNum;
SOCKET nSocket[HD3_API_CLIENT_MAX_SOCKET_NUM];
}HD3ClientConnInfo;
// <20><><EFBFBD><EFBFBD>SOCKET<45><54>Ϣ
typedef struct {
SOCKET nSocket;
int32 nConnectTime;
int32 nPackageRecvNum;
int32 nPackageRecvTime;
char szUserName[HD3_LEN_USER_NAME * HD3_BASE];
}HD3SocketNetInfo;
// <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct {
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;
char szHDVersion[HD3_LEN_HD_VERSION * HD3_BASE];
}HD3DataNodeCfg;
// <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>״̬
typedef struct {
char szHostIP[HD3_LEN_ADDRESS* HD3_BASE]; //<2F><><EFBFBD><EFBFBD>IP
char szBackIP[HD3_LEN_ADDRESS* HD3_BASE]; //<2F><><EFBFBD><EFBFBD>IP
enum HD3_RY_STATUS nHostStatus; //<2F><><EFBFBD><EFBFBD>״̬
enum HD3_RY_STATUS nBackupStatus; //<2F><><EFBFBD><EFBFBD>״̬
}HD3DataNodeStatus;
typedef struct {
uint32 nID; //ack id
uint32 nAlarmTagID; // alarm tag id
uint32 nServerID; //serverid
uint32 nOrginalTagID; //alarm tag orginal tag id
HD3Time alarmTime; //alarm time
HD3Time ackTime; //ack time
uint32 nAckerID; //acker id
char szAcker[HD3_LEN_USER_NAME * HD3_BASE]; //acker
}HD3Ack;
typedef struct {
uint32 nID; //comment id
uint32 nAlarmTagID; // alarm tag id
uint32 nServerID; //serverid
uint32 nOrginalTagID; //alarm tag orginal tag id
HD3Time alarmTime; //alarm time
HD3Time commentTime; //comment time
uint32 nCommentorID; //commentor id
char szCommentor[HD3_LEN_USER_NAME * HD3_BASE]; //commentor
char szComment[HD3_LEN_ALARM_COMMENT * HD3_BASE]; //comment
}HD3Comment;
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>״̬
typedef struct {
char szHostIP[HD3_LEN_ADDRESS* HD3_BASE]; //<2F><><EFBFBD><EFBFBD>IP
char szBackIP[HD3_LEN_ADDRESS* HD3_BASE]; //<2F><><EFBFBD><EFBFBD>IP
enum HD3_RY_STATUS nHostStatus; //<2F><><EFBFBD><EFBFBD>״̬
enum HD3_RY_STATUS nBackupStatus; //<2F><><EFBFBD><EFBFBD>״̬
}HD3ConfigCenterStatus;
#endif