You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

299 lines
10 KiB
C

1 year ago
/****************************************************************************
** File name : HTDataStruct.h
** Description : define data struct
** Create date : 2018.09.01
** Auther by : Liuyx
** Version info : V1.0.01
** Copyright (C) 2002-2018 xi'an huatek, Inc Co., Ltd
** Update record:
** DATE AUTHER DESC
** -------------------------------------------------------------------------
** 2018.09.01 Liuyx first build
****************************************************************************/
#ifndef __HT_DATA_STRUCT_H
#define __HT_DATA_STRUCT_H
#include <map>
#include "HTConst.h"
#include "iec61850_client.h"
#include "iec61850_model.h"
#include "iec61850_dynamic_model.h"
#include "iec61850_config_file_parser.h"
#pragma pack (push ,1)
#define HT_COMTRADE_REDOWN 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define HT_COMTRADE_DOWNED 2 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><>ַװ<D6B7>ù<EFBFBD>ϵ
typedef struct {
char szMID[DEF_BUFFER_32+1]; // <20><><EFBFBD><EFBFBD>ID
char szSID[DEF_BUFFER_32 + 1]; // װ<><D7B0>ID
char szSysCode[DEF_BUFFER_32 + 1]; // װ<>ñ<EFBFBD><C3B1><EFBFBD>,Ψһ
char szSersorID[DEF_BUFFER_32 + 1]; // װ<>ñ<EFBFBD><C3B1><EFBFBD>,Ψһ
char szMDevName[DEF_BUFFER_128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char szSubName[DEF_BUFFER_128]; // װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char cSlaveID; // Modbus<75><73>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ӧһ<D3A6><D2BB>װ<EFBFBD>õ<EFBFBD>ID
char cDevType; // װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:<3A><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0> 2:<3A><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0> 3:<3A><><EFBFBD>ĵ<EFBFBD>װ<EFBFBD><D7B0>
char cSide; // ԭ<><D4AD><EFBFBD><EFBFBD> P: ԭ<><D4AD> S:<3A><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>device_type=1ʱ<31><CAB1>Ч
char cPhase; // <20><>λ A:A<><41> B:B<><42> C:C<><43> O:ȫ<><C8AB>;,<2C><><EFBFBD><EFBFBD>device_type=1ʱ<31><CAB1>Ч
char cInOut; // <20>ϴβ<CFB4><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> I:<3A>ϲ<EFBFBD>/<2F><><EFBFBD>ڲ<EFBFBD> O:<3A>²<EFBFBD>/<2F><><EFBFBD>ڲ<EFBFBD>; <20><><EFBFBD><EFBFBD>device_type=1ʱ<31><CAB1>Ч
}ST_DEVICE_INFO;
// <20><EFBFBD><E8B1B8>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct
{
char szMID[DEF_BUFFER_32+1]; // <20><><EFBFBD><EFBFBD><EFBFBD>豸ID
char szSysCode[DEF_BUFFER_32+1]; // <20><><EFBFBD><EFBFBD><EFBFBD>豸system_code
char szMDevName[DEF_BUFFER_128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char szSubID[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
char szSensorID[DEF_BUFFER_32]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SersorID
char szSDevName[DEF_BUFFER_128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char bDevType; // 1:<3A><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0> 2:<3A><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0> 3:<3A><><EFBFBD>ĵ<EFBFBD>װ<EFBFBD><D7B0>
//ST_THRESHOLD_ATTR stThresAttr; // <20><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
char bSide; // P:ԭ<><D4AD> S:<3A><><EFBFBD><EFBFBD>
char bPhase; // <20><>λ A<><41>B<EFBFBD><42>C<EFBFBD><43>O
char bInOut; // <20><><EFBFBD><EFBFBD>-<2D>ϲ<EFBFBD>/<2F><><EFBFBD><EFBFBD>-<2D>²<EFBFBD>
char szFrequency[4+1]; // Ƶ<><C6B5>,50Hz~1200Hz
double dThreshold; // <20>澯ֵ
}ST_THRES_CONF;
// <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
// ԭ<><D4AD><EFBFBD>񶯼<EFBFBD><F1B6AFBC><EFBFBD>ֵ
double AccPri1; // ԭ<><D4AD>A<EFBFBD><41><EFBFBD>ϲ<EFBFBD>50Hz
double AccPri2; // ԭ<><D4AD>A<EFBFBD><41><EFBFBD>²<EFBFBD>50Hz
double AccPri3;
double AccPri4;
double AccPri5;
double AccPri6;
double AccPri7;
double AccPri8;
double AccPri9;
double AccPri10;
double AccPri11;
double AccPri12;
double AccPri13;
double AccPri14;
double AccPri15;
double AccPri16;
double AccPri17;
double AccPri18;
double AccPri19;
// <20><><EFBFBD><EFBFBD><EFBFBD>񶯼<EFBFBD><F1B6AFBC><EFBFBD>ֵ
double AccSec1; // <20><><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>ϲ<EFBFBD>100Hz
double AccSec2;
double AccSec3;
double AccSec4;
double AccSec5;
double AccSec6;
double AccSec7; // <20><><EFBFBD><EFBFBD>A<EFBFBD><41><EFBFBD>ϲ<EFBFBD>700Hz
double EnvNoiPri; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ(dB)
double NeuCur; // <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>ֵ(A)
}ST_MONI_DATA;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>
typedef struct {
char szMID[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD><EFBFBD>豸ID
char szSysCode[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD><EFBFBD>豸system_code
char szSubID[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
char szSensorID[DEF_BUFFER_32]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SersorID
char szSubName[DEF_BUFFER_128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>-<2D><><EFBFBD><EFBFBD>IED<45><44><EFBFBD><EFBFBD>
bool isEnable; // TRUE:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FLASE: <20><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>
bool alone; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, true:yes false: no
int SmpProd; // <20>ɼ<EFBFBD>Ƶ<EFBFBD><C6B5>(KHz)
int SmpInt; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Сʱ)
int StartTime; // <20><>ʼʱ<CABC><CAB1>
}ST_CONTROL_CONF;
// <20><EFBFBD><E6BEAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
typedef struct {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>Ÿ澯
bool MoDevConf; // IED<45><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸ͨѶ<CDA8>
bool MoDevDetF; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>
bool MoDevSigF; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><C5BA>
bool MoDevPowF; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool EnvNoiPriAlm;// ԭ<>߻<EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool NeuCurAlm; // <20><><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// ԭ<>߸澯<DFB8><E6BEAF><EFBFBD><EFBFBD>
bool AccPriAlm1; // ԭ<><D4AD>50Hz<48><EFBFBD><E6BEAF><EFBFBD><EFBFBD>
bool AccPriAlm2;
bool AccPriAlm3;
bool AccPriAlm4;
bool AccPriAlm5;
bool AccPriAlm6;
bool AccPriAlm7;
bool AccPriAlm8;
bool AccPriAlm9;
bool AccPriAlm10;
bool AccPriAlm11;
bool AccPriAlm12;
bool AccPriAlm13;
bool AccPriAlm14;
bool AccPriAlm15;
bool AccPriAlm16;
bool AccPriAlm17;
bool AccPriAlm18;
bool AccPriAlm19;
// <20><><EFBFBD>߸澯<DFB8><E6BEAF><EFBFBD><EFBFBD>
bool AccSecAlm1;
bool AccSecAlm2;
bool AccSecAlm3;
bool AccSecAlm4;
bool AccSecAlm5;
bool AccSecAlm6;
bool AccSecAlm7;
}ST_WARN_ALARM;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
typedef struct {
char bSide; // P:ԭ<><D4AD> S:<3A><><EFBFBD><EFBFBD>
char bPhase; // <20><>λ A<><41>B<EFBFBD><42>C<EFBFBD><43>O
char bInOut; // <20><><EFBFBD><EFBFBD>-<2D>ϲ<EFBFBD>/<2F><><EFBFBD><EFBFBD>-<2D>²<EFBFBD>
int iFrequency; // Ƶ<><C6B5>,50Hz~1200Hz
double dThreshold; // <20>澯ֵ
}ST_THRESHOLD_ATTR;
// <20><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><E1B9B9>
typedef struct {
char ied_addr[32];
int ied_port;
IedConnection hConnHandle; // <20><><EFBFBD>Ӿ<EFBFBD><D3BE><EFBFBD>
bool bIsConnect; // <20><><EFBFBD><EFBFBD>״̬, true:connected flase:disconnect
bool bWarn; //
time_t iLastTime; // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
time_t iLastActionTime;// <20><><EFBFBD><EFBFBD>һ<EFBFBD>λʱ<EEB6AF><CAB1>
time_t iLastAlaarmTime; // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Ӹ澯ʱ<E6BEAF><CAB1>
IedModel *tIedModel; // ģ<>;<EFBFBD><CDBE><EFBFBD>
1 year ago
}ST_IED_CONN_HANDLE;
// iec61850 ¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>
typedef struct _comtrad_files_attrib {
char bstat; // 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
short sNo; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>,ϵͳ<CFB5>Ա<EFBFBD>
int iFileSize; // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
char szFileName[_MAX_DIR]; // <20>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>+<2B>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
}ST_FILES_ATTRIB;
// ¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
typedef struct {
int sno; // <20><><EFBFBD><EFBFBD>
int tme; // ʱ<><CAB1>,ms
short A1; // <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ԭ<EFBFBD><D4AD>A<EFBFBD><41><EFBFBD>ϲ<EFBFBD>
short A2; // <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ԭ<EFBFBD><D4AD>A<EFBFBD><41><EFBFBD>²<EFBFBD>
short B1; // <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ԭ<EFBFBD><D4AD>B<EFBFBD><42><EFBFBD>ϲ<EFBFBD>
short B2; // <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ԭ<EFBFBD><D4AD>B<EFBFBD><42><EFBFBD>²<EFBFBD>
short C1; // <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ԭ<EFBFBD><D4AD>C<EFBFBD><43><EFBFBD>ϲ<EFBFBD>
short C2; // <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>ԭ<EFBFBD><D4AD>C<EFBFBD><43><EFBFBD>²<EFBFBD>
short a1; // <20><><EFBFBD><EFBFBD>װ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD>A<EFBFBD><41><EFBFBD>ϲ<EFBFBD>
short a2; // <20><><EFBFBD><EFBFBD>װ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD>A<EFBFBD><41><EFBFBD>²<EFBFBD>
short b1; // <20><><EFBFBD><EFBFBD>װ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD>B<EFBFBD><42><EFBFBD>ϲ<EFBFBD>
short b2; // <20><><EFBFBD><EFBFBD>װ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD>B<EFBFBD><42><EFBFBD>²<EFBFBD>
short c1; // <20><><EFBFBD><EFBFBD>װ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD>C<EFBFBD><43><EFBFBD>ϲ<EFBFBD>
short c2; // <20><><EFBFBD><EFBFBD>װ<EFBFBD>ø<EFBFBD><C3B8><EFBFBD>C<EFBFBD><43><EFBFBD>²<EFBFBD>
short nsi; // <20><><EFBFBD><EFBFBD>(dB)
short crt; // <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>(A)
}ST_COMTRAD_DATA;
// icd<63><64><EFBFBD>ýڵ<C3BD><DAB5>󶨹<EFBFBD>ϵ
typedef struct {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> 01=ԭ<><D4AD>A<EFBFBD><41> 02=ԭ<><D4AD>A<EFBFBD><41> 03=ԭ<><D4AD>B<EFBFBD><42> 04=ԭ<><D4AD>B<EFBFBD><42> 05=ԭ<><D4AD>C<EFBFBD><43> 06=ԭ<><D4AD>C<EFBFBD><43>
// 07=<3D><><EFBFBD><EFBFBD>A<EFBFBD><41> 08=<3D><><EFBFBD><EFBFBD>A<EFBFBD><41> 09=<3D><><EFBFBD><EFBFBD>B<EFBFBD><42> 10=<3D><><EFBFBD><EFBFBD>B<EFBFBD><42> 11=<3D><><EFBFBD><EFBFBD>C<EFBFBD><43> 12=<3D><><EFBFBD><EFBFBD>C<EFBFBD><43>
int nodeid; // <20>ڵ<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
char szFrequency[5]; //Ƶ<><C6B5>
char sensorid[DEF_BUFFER_32 + 1]; // sensor_code
char nodename[128]; // <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
char nodetype[4]; // <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> MX,ST,SE
char monitype; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 1=<3D>񶯼<EFBFBD><F1B6AFBC><EFBFBD>ֵ 2=<3D>񶯸澯 3=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ 4=<3D><><EFBFBD><EFBFBD><EFBFBD>澯 5=<3D><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD> 6=<3D><><EFBFBD>ĵ<EFBFBD><C4B5>
}ST_PARAM_BIND;
// IED<45><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
double MX_f; // MX<4D><58><EFBFBD><EFBFBD>ֵ,<2C><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
bool ST_val; // ST<53><54><EFBFBD><EFBFBD>ֵ,<2C><><EFBFBD><EFBFBD><EFBFBD>澯ֵ
int SE_Val; // SE<53>趨ֵ<E8B6A8><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
time_t t; // ʱ<><CAB1>ֵ
}ST_IED_VALUES;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct {
char szSubID[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
char szSensorID[DEF_BUFFER_32]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SersorID
char szSDevName[DEF_BUFFER_128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char bDevType; // 1:<3A><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0> 2:<3A><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0> 3:<3A><><EFBFBD>ĵ<EFBFBD>װ<EFBFBD><D7B0>
ST_CONTROL_CONF stControl; // <20><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
map<int, ST_THRESHOLD_ATTR> map_stThres; // <20><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>,
map<string, ST_PARAM_BIND> map_stParamBind; // icd<63><64><EFBFBD>ýڵ<C3BD><DAB5>󶨹<EFBFBD>ϵ,key=nodename
// ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ST_MONI_DATA stMoni; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ST_WARN_ALARM stAlarm; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BEAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ST_FILES_ATTRIB stComtradFile; // ¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
ST_COMTRAD_DATA stComtradeContext;// ¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}ST_BASE_DEVICE_INFO;
// Уʱ<D0A3><CAB1><EFBFBD><EFBFBD>
typedef struct {
int sntp_port; // port
char sntp_s_ip[32]; // sntp_server address
bool manual; // true: <20>ֶ<EFBFBD>
}ST_SNTP_CONF;
// <20><><EFBFBD><EFBFBD>װ<EFBFBD>ñ<EFBFBD><C3B1>
typedef struct {
char file_id[DEF_BUFFER_32+1]; // ¼<><C2BC><EFBFBD>ļ<EFBFBD>ID
char m_id[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD>ID
char s_id[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
char szSensorID[DEF_BUFFER_32 + 1]; // SensorID
char szDevType; // 1:<3A><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0> 2 : <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0> 3 : <20><><EFBFBD>ĵ<EFBFBD>װ<EFBFBD><D7B0>
char szFrequency[5]; // Ƶ<><C6B5>
char side; // ԭ<><D4AD><EFBFBD><EFBFBD>P:ԭ<><D4AD> S:<3A><><EFBFBD><EFBFBD>
char phase; // <20><>λ
char in_out; // <20><><EFBFBD>²<EFBFBD> U:<3A>ϲ<EFBFBD> D:<3A>²<EFBFBD>
double value; // <20><>ֵ,<2C><><EFBFBD><EFBFBD>,<2C><><EFBFBD>ĵ<EFBFBD>
time_t dtime; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}ST_DB_BODY;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct {
char s_id[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
char valunit[8]; // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>λ:dB,A,mm/s2
char szDesc[128]; // <20><EFBFBD><E6BEAF><EFBFBD><EFBFBD>
char warn_type; // <20><EFBFBD><E6BEAF><EFBFBD><EFBFBD> 1:ͨ<><CDA8><EFBFBD><EFBFBD>澯 2:װ<><D7B0><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>澯 3:<3A>ź<EFBFBD><C5BA><EFBFBD>澯 4:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>澯 5:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>
// 6:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>澯 7:<3A><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>ֵ<EFBFBD>澯 8:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ澯 9:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ澯 10:<3A><>ƫ<EFBFBD><C6AB><EFBFBD>ʸ澯
// 11: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IEDͨ<44><CDA8><EFBFBD>
// 12:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񶯸澯 13:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>澯 14:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5>
char level; // <20><EFBFBD><E6BEAF><EFBFBD><EFBFBD> 0:<3A><> 1:<3A><> 2:<3A><>
char state; // <20><><EFBFBD><EFBFBD>״̬ 0:<3A>Ѵ<EFBFBD><D1B4><EFBFBD> 1:δ<><CEB4><EFBFBD><EFBFBD>
double value; // <20><>ֵ,<2C><><EFBFBD><EFBFBD>,<2C><><EFBFBD>ĵ<EFBFBD>
time_t almtime; // <20>澯ʱ<E6BEAF><CAB1>
}ST_DB_WARN;
// IEC61850<35><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct
{
char szMID[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD><EFBFBD>豸ID
char szSysCode[DEF_BUFFER_32 + 1]; // <20><><EFBFBD><EFBFBD><EFBFBD>豸system_code
char szMDevName[DEF_BUFFER_128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ST_BASE_DEVICE_INFO stBaseInfo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
ST_IED_CONN_HANDLE stConnect; // IED<45><44><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
ST_SNTP_CONF stSntp; // Уʱ<D0A3><CAB1><EFBFBD><EFBFBD>
}ST_HT_IEC61850;
#pragma pack (pop)
#endif // end