662 lines
19 KiB
C++
662 lines
19 KiB
C++
/**
|
||
* @file hd3Struct.h
|
||
* @brief hd3 struct
|
||
* @author: hd3 tream
|
||
* @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 ¶¨Òå
|
||
#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
|
||
|
||
// ËùÓÐTagµã¹²ÓÐÊôÐÔ
|
||
#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]
|
||
|
||
// ÆÕͨµãÌØÓÐÊôÐÔ
|
||
#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
|
||
|
||
// ±¨¾¯µãÌØÓÐÊôÐÔ
|
||
#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
|
||
|
||
// ͳ¼ÆµãÌØÓÐÊôÐÔ
|
||
#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
|
||
|
||
// ¼ÆËãµãÌØÓÐÊôÐÔ
|
||
#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¹æÔò
|
||
#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µãÌØÓÐÊôÐÔ
|
||
#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µãÊôÐԽṹ */
|
||
HD3_M;
|
||
typedef struct {
|
||
HD3_COMM_TAG_PROP;
|
||
}HD3CommTagProp;
|
||
|
||
// ÆÕͨµã
|
||
HD3_M;
|
||
typedef struct {
|
||
HD3_COMM_TAG_PROP;
|
||
HD3_PT_TAG_EXT_PROP;
|
||
}HD3PtTagProp;
|
||
|
||
// ±¨¾¯µã
|
||
typedef struct {
|
||
HD3_COMM_TAG_PROP;
|
||
HD3_ALARM_TAG_EXT_PROP;
|
||
}HD3AlarmTagProp;
|
||
|
||
// SPCµã
|
||
typedef struct {
|
||
HD3_COMM_TAG_PROP;
|
||
HD3_SPC_TAG_EXT_PROP;
|
||
}HD3SpcTagProp;
|
||
|
||
// ͳ¼Æµã
|
||
typedef struct {
|
||
HD3_COMM_TAG_PROP;
|
||
HD3_STATS_TAG_EXT_PROP;
|
||
}HD3StatsTagProp;
|
||
|
||
// ¼ÆËãµã
|
||
typedef struct {
|
||
HD3_COMM_TAG_PROP;
|
||
HD3_CALC_TAG_EXT_PROP;
|
||
}HD3CalcTagProp;
|
||
|
||
// Ðí¿ÉÖ¤ÐÅÏ¢
|
||
typedef struct {
|
||
enum HD3_LICENSE nLicense;
|
||
int32 nValidSec;
|
||
uint32 nClientNum;
|
||
}HD3LicenseInfo;
|
||
|
||
/** ʱ¼ä´Ó1970Äê1ÔÂ0ÈÕ00:00:01µ½2038Äê1ÔÂ19ÈÕ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;
|
||
|
||
// ʱ¼ä
|
||
typedef struct {
|
||
int32 nSec;
|
||
int16 nMsec;
|
||
}HD3Time;
|
||
|
||
// ʱ¼äÇø¼ä
|
||
typedef struct {
|
||
HD3Time left; // ×óÇø¼ä
|
||
HD3Time right; // ÓÒÇø¼ä
|
||
bool bLeftClosed; // ×óÇø¼ä¿ª»òÊDZÕ
|
||
bool bRightClosed; // ÓÒÇø¼ä¿ª»òÊDZÕ
|
||
}HD3TimeRegion;
|
||
|
||
// //µ¥Ò»¿Í»§¶ËÁ¬½ÓÐÅÏ¢
|
||
// 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;
|
||
|
||
// Êý¾Ý
|
||
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;
|
||
|
||
// ²éѯÌõ¼þ£¨Tagµã²éѯ£¬Êý¾Ý²éѯ£¬±¨¾¯¼Ç¼²éѯ£¬SPC¼Ç¼²éѯ£©
|
||
typedef struct {
|
||
int32 nItemID;
|
||
enum HD3_RELATION nRelation;
|
||
char szValue[HD3_LEN_QUERY_ITEM_VALUE * HD3_BASE];
|
||
}HD3FilterItem;
|
||
|
||
// ±¨¾¯
|
||
typedef struct {
|
||
uint32 nAlarmTagID; /**< ±¨¾¯µãID*/
|
||
HD3Time tvStartTime; /**< ±¨¾¯¿ªÊ¼Ê±¼ä*/
|
||
HD3Time tvEndTime; /**< ±¨¾¯ÖÕֹʱ¼ä*/
|
||
HD3Time tvAckTime; /**< ±¨¾¯È·ÈÏʱ¼ä*/
|
||
HD3Time tvCommentTime; /**< ±¨¾¯×¢ÊÍʱ¼ä*/
|
||
|
||
enum HD3_AM_REC_ACK_STATE nAcked; /**< È·ÈÏ״̬*/
|
||
enum HD3_AM_REC_RESTORE_STATE nRestored; /**< »Ö¸´×´Ì¬*/
|
||
enum HD3_AM_REC_PRIORITY nPriority; /**< ÓÅÏȼ¶*/
|
||
enum HD3_AM_ACK_TYPE nAckType; /**< ±¨¾¯È·ÈÏÀàÐÍ*/
|
||
enum HD3_AM_REC_TYPE nAlarmType; /**< ±¨¾¯ÀàÐÍ*/
|
||
|
||
char szSrcValue[HD3_LEN_VAR_TYPE_VALUE * HD3_BASE]; /**< Ô´Öµ*/
|
||
char szTest[HD3_LEN_ALARM_TEST * HD3_BASE]; /**< Î¥·´¹æÔò*/
|
||
char szComment[HD3_LEN_ALARM_COMMENT * HD3_BASE]; /**< ×¢ÊÍ*/
|
||
char szAcker[HD3_LEN_USER_NAME * HD3_BASE]; /**< È·ÈÏÕß*/
|
||
char szCommentor[HD3_LEN_USER_NAME * HD3_BASE]; /**< ×¢ÊÍÕß*/
|
||
}HD3AlarmRecord;
|
||
|
||
// SPC
|
||
typedef struct {
|
||
uint32 nSPCTagID; /**< SPC±¨¾¯µãID*/
|
||
HD3Time tvStartTime; /**< ±¨¾¯¿ªÊ¼Ê±¼ä*/
|
||
HD3Time tvEndTime; /**< ±¨¾¯ÖÕֹʱ¼ä*/
|
||
HD3Time tvAckTime; /**< ±¨¾¯È·ÈÏʱ¼ä*/
|
||
HD3Time tvCommentTime; /**< ±¨¾¯×¢ÊÍʱ¼ä*/
|
||
enum HD3_AM_REC_ACK_STATE nAcked; /**< È·ÈÏ״̬*/
|
||
enum HD3_AM__REC_ACK_TYPE nAckType; /**< È·ÈÏÀàÐÍ£¬ÊÖ¶¯»¹ÊÇ×Ô¶¯*/
|
||
enum HD3_AM_REC_RESTORE_STATE nRestored; /**< »Ö¸´×´Ì¬*/
|
||
int8 nValue; /**< ±¨¾¯Öµ*/
|
||
uint32 nRule1M; /**< ÅÐÒì¹æÔò1µÄMÖµ*/
|
||
uint32 nRule2M; /**< ÅÐÒì¹æÔò2µÄMÖµ*/
|
||
uint32 nRule3M; /**< ÅÐÒì¹æÔò3µÄMÖµ*/
|
||
uint32 nRule4M; /**< ÅÐÒì¹æÔò4µÄMÖµ*/
|
||
uint32 nRule5M; /**< ÅÐÒì¹æÔò5µÄMÖµ*/
|
||
uint32 nRule5N; /**< ÅÐÒì¹æÔò5µÄNÖµ*/
|
||
uint32 nRule6M; /**< ÅÐÒì¹æÔò6µÄMÖµ*/
|
||
uint32 nRule6N; /**< ÅÐÒì¹æÔò6µÄNÖµ*/
|
||
uint32 nRule7M; /**< ÅÐÒì¹æÔò7µÄMÖµ*/
|
||
uint32 nRule8M; /**< ÅÐÒì¹æÔò8µÄMÖµ*/
|
||
char szSrcValue[HD3_LEN_VAR_TYPE_VALUE * HD3_BASE]; /**< Ô´Öµ*/
|
||
char szComment[HD3_LEN_ALARM_COMMENT * HD3_BASE]; /**< ×¢ÊÍ*/
|
||
char szAcker[HD3_LEN_USER_NAME * HD3_BASE]; /**< È·ÈÏÕß*/
|
||
char szCommentor[HD3_LEN_USER_NAME * HD3_BASE]; /**< ×¢ÊÍÕß*/
|
||
}HD3SpcRecord;
|
||
|
||
// iHyperDB ±¨¾¯×é
|
||
typedef struct {
|
||
char szName[HD3_LEN_ALARM_GROUP_NAME * HD3_BASE]; /**< ±¨¾¯×éµÄÃû×Ö */
|
||
char szDesc[HD3_LEN_ALARM_GROUP_DESC * HD3_BASE]; /**< ±¨¾¯×éµÄÃèÊö */
|
||
uint32 nGroupID; /**< ±¨¾¯×éµÄID */
|
||
uint32 nParentID; /**< ±¨¾¯×éµÄÉÏÒ»¼¶×éÃû£¬µÚÒ»¼¶×éµÄ×éÃûΪ¿Õ¼´ "" */
|
||
}HD3AlarmGroup;
|
||
|
||
// iHyperDB ÀúÊ·±¨¾¯²éѯÌõ¼þ
|
||
typedef struct {
|
||
HD3Time tvStart;
|
||
HD3Time tvEnd;
|
||
int64 nAckMask; // HD3AmAckStateMask
|
||
int64 nTypeMask; // HD3AmTypeMask
|
||
int64 nPriorMask; // HD3AmPriorityMask
|
||
int64 nRestoreMask; // HD3AmRestoreStateMask
|
||
}HD3AlarmQuery;
|
||
|
||
// iHyperDB SPC±¨¾¯²éѯÌõ¼þ
|
||
typedef struct {
|
||
HD3Time tvStart;
|
||
HD3Time tvEnd;
|
||
int64 nAckMask; // HD3AmAckStateMask
|
||
int64 nRestoreMask; // HD3AmRestoreStateMask
|
||
}HD3SPCQuery;
|
||
|
||
// iHyperDB ȨÏÞ¹ÜÀí: Óû§
|
||
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 ȨÏÞ¹ÜÀí: ×é
|
||
typedef struct {
|
||
char szGroupName[HD3_LEN_GROUP_NAME * HD3_BASE];
|
||
char szGroupDesc[HD3_LEN_GROUP_DESC * HD3_BASE];
|
||
}HD3SecGroup;
|
||
|
||
// iHyperDB ȨÏÞ¹ÜÀí: ÊÚȨÏî
|
||
typedef struct {
|
||
char szName[HD3_LEN_AUTH_NAME * HD3_BASE];
|
||
char szDesc[HD3_LEN_AUTH_DESC * HD3_BASE];
|
||
int32 nAuth;
|
||
}HD3SecAuthItem;
|
||
|
||
// iHyperDB ȨÏÞ¹ÜÀí: ÐÅÈÎ
|
||
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 ȨÏÞ¹ÜÀí: °²È«Êý¾Ý¿âÏî:ÈçTagµã¡¢Óû§×éµÈ
|
||
typedef struct {
|
||
char szOwnGroupName[HD3_LEN_GROUP_NAME * HD3_BASE];
|
||
char szOperateGroupName[HD3_LEN_GROUP_NAME * HD3_BASE];
|
||
int8 nSecurity;
|
||
}HD3SecItem;
|
||
|
||
// ²É¼¯Æ÷
|
||
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;
|
||
|
||
// É豸
|
||
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;
|
||
|
||
// ɨÃè×é
|
||
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;
|
||
|
||
// Ðí¿ÉÖ¤ÐÅÏ¢Ïî
|
||
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×Ö½Ú±¶Êý²¹Æë
|
||
}HD3LicInfo;
|
||
|
||
// Êý×ÖÁ¿×´Ì¬¼¯
|
||
typedef struct {
|
||
char szName[HD3_LEN_DIGITAL_SET_NAME * HD3_BASE];
|
||
}HD3DigitalSet;
|
||
|
||
// Êý¾ÝÁ¿×´Ì¬ÐÅÏ¢
|
||
typedef struct {
|
||
uint32 nStateID;
|
||
char szStateName[HD3_LEN_DIGITAL_SET_STATE_NAME * HD3_BASE];
|
||
int32 nStateValue;
|
||
}HD3DsStateInfo;
|
||
|
||
// ²É¼¯Æ÷״̬ÐÅÏ¢
|
||
typedef struct {
|
||
uint16 nQuality;
|
||
int32 nTotalTagNum;
|
||
int32 nActiveTagNum;
|
||
}HD3CtStatusInfo;
|
||
|
||
// Tag»ù±¾ÐÅÏ¢
|
||
typedef struct {
|
||
uint32 nTagID;
|
||
char szTagName[HD3_LEN_TAG_NAME * HD3_BASE];
|
||
enum HD3_TAG_TYPE nTagType;
|
||
enum HD3_TAG_CLASS nTagClass;
|
||
} HD3TagBasicInfo;
|
||
|
||
// ͳ¼ÆÏà¹Ø²ÎÊý
|
||
typedef struct {
|
||
enum HD3_STATS_TYPE nStatsType; //ͳ¼ÆÀàÐÍ
|
||
int32 nTimeRegionNum; //ͳ¼ÆÊ±¼äÇø¼ä¸öÊý£¬×îСֵΪ1£¬×î´óֵΪ128
|
||
HD3TimeRegion* pTimeRegions;//ͳ¼ÆÊ±¼äÇø¼ä£¬Ö§³Ö¶à¸öͳ¼ÆÊ±¼äÇø¼ä
|
||
float fPercentGood; //ÐÅÈζÈ(GoodµÄÊý¾Ý¸öÊý°Ù·Ö±È´óÓÚ»òµÈÓڸñÈÀýʱÈÏΪ¼ÆËã³öµÄ½á¹ûÊÇ¿ÉÐŵÄ)£¬0-100
|
||
enum HD3_STATS_SAMPLE_TYPE nSampleType; //²ÉÑù·½Ê½
|
||
char szFilterExpr[HD3_LEN_FILTER_EXPR * HD3_BASE]; //Êý¾Ý¹ýÂ˱í´ïʽ, ´«Èë¿Õ×Ö·û´®±íʾ²»¹ýÂË
|
||
enum HD3_STATS_FILTER_FAIL_MODE nFilterFailMode; //¹ýÂ˱í´ïʽִÐÐʧ°Üʱ¶Ô²ÉÑùÊý¾ÝµÄ´¦Àí£¬¹ýÂË»¹ÊDz»¹ýÂË
|
||
double dExtParam1; //¼ÆÊýºÍ¼ÆÊ±µÄ²ÎÊý, Öµ±ä»¯µÄ²ÎÊý£¬Çø¼ä±ä»¯µÄµÚÒ»¸ö²ÎÊý£¬ÔÚÇø¼ä²»ÔÚÇø¼äµÄµÚÒ»¸ö²ÎÊýÇø¼äΪ[dExtParam1, dExtParam2]
|
||
double dExtParam2; //¼ÆÊýºÍ¼ÆÊ±µÄ²ÎÊý£¬Çø¼ä±ä»¯µÄµÚ¶þ¸ö²ÎÊý£¬ÔÚÇø¼ä²»ÔÚÇø¼äµÄµÚ¶þ¸ö²ÎÊý
|
||
int32 nOffset; //²ÉÑùģʽΪ²åֵʱ£¬µÚÒ»¸ö²åÖµµãΪstartTime+nOffset, µ¥Î»ÎªÃë
|
||
int32 nPeriod; //²ÉÑùģʽΪ²åֵʱ£¬²åÖµµãµÄ¼ä¸ôΪnPeriod, µ¥Î»ÎªÃë
|
||
bool bUseBadValue; //badÖµÊÇ·ñ²ÎÓëͳ¼Æ£¬true±íʾbadÖµ²ÎÓëͳ¼Æ
|
||
}HD3StRelatedParam;
|
||
|
||
// ±ä¸üµÄ±¨¸æ
|
||
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µãÑÚÂë
|
||
typedef struct {
|
||
int64 nCommMask; // ¹«¹²ÊôÐÔµÄÑÚÂë
|
||
int64 nExtMask;
|
||
}HD3Mask;
|
||
|
||
// ²éѯ¹ýÂËÏîÊý×é
|
||
typedef struct {
|
||
int32 nSize;
|
||
HD3FilterItem* pItem; // array
|
||
}HD3FilterItemSet;
|
||
|
||
// ²éѯָ¶¨Ò³TagµãµÄ²ÎÊý
|
||
typedef struct {
|
||
HD3FilterItemSet itemSet;
|
||
HD3Mask mask;
|
||
uint32 nStartID;
|
||
int32 nCapacity;
|
||
}HD3PageQueryTagParam;
|
||
|
||
// iHyperDB½ÚµãÐÅÏ¢£¨ÅäÖýڵ㡢Êý¾Ý½Úµã£©
|
||
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;
|
||
|
||
// ͳ¼ÆÍ¨ÓòÎÊý
|
||
typedef struct {
|
||
HD3TimeRegion timeRegion;
|
||
float fPercentGood;
|
||
}HD3StFuncComm;
|
||
|
||
// APIÁ¬½Ó²ÎÊý
|
||
typedef struct {
|
||
char szAddress[HD3_LEN_ADDRESS * HD3_BASE];
|
||
uint16 nPort;
|
||
char szBakAddress[HD3_LEN_ADDRESS * HD3_BASE];
|
||
uint16 nBakPort;
|
||
int32 nTimeout;
|
||
}HD3Connection;
|
||
|
||
// ¿Í»§¶ËÁ¬½ÓÐÅÏ¢
|
||
typedef struct {
|
||
uint32 nClientIp;
|
||
char szMac[32];
|
||
int32 nSocketNum;
|
||
SOCKET nSocket[HD3_API_CLIENT_MAX_SOCKET_NUM];
|
||
}HD3ClientConnInfo;
|
||
|
||
// ÍøÂçSOCKETÐÅÏ¢
|
||
typedef struct {
|
||
SOCKET nSocket;
|
||
int32 nConnectTime;
|
||
int32 nPackageRecvNum;
|
||
int32 nPackageRecvTime;
|
||
char szUserName[HD3_LEN_USER_NAME * HD3_BASE];
|
||
}HD3SocketNetInfo;
|
||
|
||
// ½ÚµãÅäÖÃÐÅÏ¢
|
||
typedef struct {
|
||
int32 nPort; //ÍøÂç¶Ë¿ÚºÅ
|
||
int32 nArchFileSizeMB; //µ¥¸ö¹éµµÎļþµÄ´óС
|
||
int32 nArchFileNum; //¹éµµÎļþ¸öÊý
|
||
int32 nSeqFileSizeMB; //µ¥¸öÐòÁлº´æÎļþµÄ´óС
|
||
int32 nSeqCacheFlushPeriodSec; // ÐòÁлº´æË¢ÐÂÆµÂÊ
|
||
bool bAutoDisconn; //ÊÇ·ñ×Ô¶¯¶Ï¿ªÎÞÊý¾Ý½»»¥µÄÁ¬½Ó
|
||
int32 nAutoDisconnPeriodSec; //×Ô¶¯ÎÞÊý¾Ý½»»¥Á¬½ÓµÄ³¬Ê±Ê±¼ä
|
||
bool bSysInfoCollect; //ÊÇ·ñ²É¼¯ÏµÍ³ÐÅÏ¢
|
||
int32 nSysInfoCollectPeriodSec; //ϵͳÐÅÏ¢²É¼¯¼ä¸ô
|
||
bool bDiscardFutureData; //ÊÇ·ñ¶ªÆú³¬¹ý·þÎñÆ÷ʱ¼ä´ÁµÄδÀ´Êý¾Ý
|
||
int32 nDiscardFutureDataTimeDelterSec; //³¬¹ý·þÎñÆ÷ʱ¼ä´ÁµÄʱ¼äÆ«²î
|
||
int64 nMachineTimeMs;
|
||
char szHDVersion[HD3_LEN_HD_VERSION * HD3_BASE];
|
||
}HD3DataNodeCfg;
|
||
|
||
// ½ÚµãÈßÓà״̬
|
||
typedef struct {
|
||
char szHostIP[HD3_LEN_ADDRESS* HD3_BASE]; //Ö÷»úIP
|
||
char szBackIP[HD3_LEN_ADDRESS* HD3_BASE]; //±¸»úIP
|
||
enum HD3_RY_STATUS nHostStatus; //Ö÷»ú״̬
|
||
enum HD3_RY_STATUS nBackupStatus; //±¸»ú״̬
|
||
}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;
|
||
|
||
// ÅäÖýڵãÈßÓà״̬
|
||
typedef struct {
|
||
char szHostIP[HD3_LEN_ADDRESS* HD3_BASE]; //Ö÷»úIP
|
||
char szBackIP[HD3_LEN_ADDRESS* HD3_BASE]; //±¸»úIP
|
||
enum HD3_RY_STATUS nHostStatus; //Ö÷»ú״̬
|
||
enum HD3_RY_STATUS nBackupStatus; //±¸»ú״̬
|
||
}HD3ConfigCenterStatus;
|
||
|
||
|
||
#endif
|