2025-01-16 16:17:01 +08:00
# include <QtCore/QCoreApplication>
# include <iostream>
# include <fstream>
# include <qdebug.h>
# include <QFile>
# include <QtXml/QDomDocument>
# include <QtXml/QDomElement>
# include <QtXml/QDomNode>
# include <QtXml/QDomNodeList>
# include <QtCore/qglobal.h>
# include <list> //C++ STL<54> <4C> list
# include <map> //C++ STL<54> <4C> map
# include <QStringList>
# include <QDateTime> //zw<7A> <EFBFBD> 2023-08-22 <20> 洢<EFBFBD> <E6B4A2> <EFBFBD> ݺ<EFBFBD> <DDBA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
# include <QMap> //zw<7A> <EFBFBD> 2023-08-22 <20> 洢<EFBFBD> <E6B4A2> <EFBFBD> ݺ<EFBFBD> <DDBA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
# include "mms_json_inter.h" //jsonͷ<6E> ļ<EFBFBD>
# include "../mms/db_interface.h" //jsonͷ<6E> ļ<EFBFBD>
2025-01-17 17:10:18 +08:00
# include "../mms/rdb_client.h" //̨<> ˸ <EFBFBD> <CBB8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ýӿ<C3BD>
2025-01-16 16:17:01 +08:00
//lnk20241031<33> <31> <EFBFBD> <EFBFBD> <EFBFBD> ϴ<EFBFBD> <CFB4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD>
# include "../json/cjson.h"
///////////////////////////////////////////////////lnk2024-10-21////////////////////////////////////////////////////////
extern void SendJsonAPI_web ( const std : : string & strUrl , const char * code , const std : : string & json , char * * ptr ) ;
extern std : : string WEB_INTEGRITY ;
extern std : : string WEB_COMFLAG ;
extern std : : string WEB_EVENT ;
extern std : : string WEB_FILEDOWNLOAD ;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
using namespace std ;
extern int parse_commerror_write ( const std : : vector < std : : string > & codes ) ;
extern int parse_commstatus_write ( const std : : vector < std : : string > & codes ) ;
extern int parse_match_write ( const std : : vector < std : : string > & codes ) ;
extern int parse_dataintegrity_write ( const std : : vector < std : : string > & codes ) ;
extern int parse_rationality_write ( const std : : vector < std : : string > & codes ) ;
extern std : : string intToString ( int number ) ;
QString JSON_CONFIG_FN = QString ( " JiangSu_Config.xml " ) ;
# define APR_SUCCESS 1
# define APR_EBADPATH 0
# define APR_EBADF 0
const string PhsSTR = " ABCT " ;
extern int FILE_FLAG ;
2025-02-14 16:44:38 +08:00
//lnk20250214
extern int isdelta_flag ;
2025-01-16 16:17:01 +08:00
//<2F> <> <EFBFBD> <EFBFBD> Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ඨ<EFBFBD> <E0B6A8> -------------------------------------------------------------/*
class CEventData //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD>
{
public :
int nDataType ; //<2F> 澯SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
QString type ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
QString triggerFlag ; //<2F> 澯SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
int nIndex ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ÿ<EFBFBD> <C3BF> <EFBFBD> <EFBFBD> ·LineInfoֵ<6F> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> λ<EFBFBD> <CEBB>
QString DO ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
QString DA ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strFullName ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
} ;
class CDataValue //<2F> <> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5>
{
public :
QString strName ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
float fValue ; //<2F> <> <EFBFBD> <EFBFBD> ֵ
bool bIsValue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ<EFBFBD> <C7B7> <EFBFBD> ֵ<EFBFBD> ɹ<EFBFBD> <C9B9> <EFBFBD> ʶ
int nIndex ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ÿ<EFBFBD> <C3BF> <EFBFBD> <EFBFBD> ·LineInfoֵ<6F> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> λ<EFBFBD> <CEBB>
QString type ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
QString DO ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
QString DA ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strFullName ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strCoefficient ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
float fCoefficient ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
QString strOffset ; //<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ƫ<EFBFBD> <C6AB> <EFBFBD> <EFBFBD> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
int iOffset ; //<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ƫ<EFBFBD> <C6AB> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> ) = <20> <> <EFBFBD> յ<EFBFBD> <D5B5> <EFBFBD> Ժ<EFBFBD> <D4BA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> - װ<> <D7B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʵ<EFBFBD> <CAB5> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD>
bool bIsAngle ; //<2F> Ƕȱ<C7B6> ־ WW 2018-06-28
bool bPlt ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> true-<2D> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> false-<2D> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD>
QString BaseFlag ; //zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
QString LimitUp ; //zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
QString LimitDown ; //zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
CDataValue ( )
{
fCoefficient = 1.0f ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
iOffset = 0 ; //<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ƫ<EFBFBD> <C6AB> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> )
bIsAngle = false ; //<2F> ǽǶȱ<C7B6> ־
bPlt = false ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
}
} ;
class CSequence //<2F> <> <EFBFBD> <EFBFBD> (A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T)<29> <>
{
public :
QString strSValue ; //<2F> <> <EFBFBD> <EFBFBD> ֵ <20> <> <EFBFBD> <EFBFBD> 7<EFBFBD> <37> ABC<42> <43> <EFBFBD> 8<EEA3AC> <38> T<EFBFBD> <54>
QString strSeq ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> T
QString type ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
list < CDataValue * > DataValueList ; //<2F> <> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD>
} ;
class CItem //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
public :
QString strItemName ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strItemValue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
QString type ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
list < CSequence * > SequenceList ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
} ;
class CMonitor //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
public :
QString strMonitor ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString type ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
list < CItem * > ItemList ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
} ;
class CDataType //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
public :
int iDataType ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> 1-<2D> <> ̬ 2-<2D> <> <EFBFBD> <EFBFBD> 3-<2D> <> ̬
QString type ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
int BaseFlag1 ; //zw<7A> <EFBFBD> 2023-8-25 <20> <> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ܸ<EFBFBD> <DCB8> <EFBFBD>
int BaseFlag0 ; //zw<7A> <EFBFBD> 2023-8-25 <20> <> ¼<EFBFBD> ǻ<EFBFBD> <C7BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݸ<EFBFBD> <DDB8> <EFBFBD>
list < CMonitor * > MonitorList ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CEventData * > SOEList ; //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
} ;
class CTopic //Kafka Producer<65> <72> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
public :
QString strTopic ; //Kafka Producer<65> <72> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
list < CDataType * > DataTypeList ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
} ;
class XmlConfig //zw<7A> <EFBFBD> 2023 - 8 - 14 <20> <> <EFBFBD> <EFBFBD> xml<6D> <6C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
public :
QString WavePhasicFlag ; //<2F> Ƿ<EFBFBD> <C7B7> <EFBFBD> <EFBFBD> <EFBFBD> 0-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 1-<2D> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Flag=0 A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> <EFBFBD> ó<EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Flag=1<> <31> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> <EFBFBD> <EFBFBD> ʵ<EFBFBD> <CAB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString WavePhasicA ;
QString WavePhasicB ;
QString WavePhasicC ;
QString UnitOfTimeUnit ; //<2F> <> ̬<EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> λ<EFBFBD> <CEBB> 0 - <20> <> <EFBFBD> <EFBFBD> 1 - <20> <>
QString ValueOfTimeUnit ; //<2F> <> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> ʱ<EFBFBD> 䣺UTC-UTCʱ<43> <CAB1> beijing-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1>
QString WaveTimeFlag ; //¼<> <C2BC> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> ʱ<EFBFBD> 䣺UTC-UTCʱ<43> <CAB1> beijing-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1>
QString IEDname ; //<2F> <> <EFBFBD> <EFBFBD> PQMonitor
QString LDevicePrefix ; //<2F> <> <EFBFBD> <EFBFBD> PQM
list < CEventData * > SOEList ; //SOE<4F> 澯<EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
} ;
class XmlDataBase //zw<7A> <EFBFBD> 2023-8-30 <20> <> <EFBFBD> ӽ<EFBFBD> <D3BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݿ<EFBFBD> ģ<EFBFBD> ͱ<EFBFBD> <CDB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
public :
QString MODEL_ID ; //ģ<> ͱ<EFBFBD> <CDB1> <EFBFBD> guid
QString TMNL_TYPE ; //<2F> ն<EFBFBD> <D5B6> ͺ <EFBFBD>
QString TMNL_FACTORY ; //<2F> ն˳<D5B6> <CBB3> <EFBFBD>
QString FILE_PATH ; //Զ<> <D4B6> ģ<EFBFBD> <C4A3> <EFBFBD> ļ<EFBFBD> ·<EFBFBD> <C2B7> lnk2024-10-28
QString FILE_NAME ; //oss<73> ļ<EFBFBD> <C4BC> 洢·<E6B4A2> <C2B7>
QDateTime datetime ; //<2F> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> ʱ<> <CAB1> <EFBFBD> <EFBFBD>
} ;
class MP_RATIONALITY //zw<7A> <EFBFBD> 2023 - 8 - 22 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Լ<EFBFBD> ¼<EFBFBD> <C2BC>
{
public :
double fValue ; //zw<7A> <EFBFBD> 2023-08-22 <20> <> һ <EFBFBD> μ<EFBFBD> ¼<EFBFBD> IJ<EFBFBD> <C4B2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
QDateTime dtvalue ; //zw<7A> <EFBFBD> 2023-08-22 <20> <> һ <EFBFBD> μ<EFBFBD> ¼<EFBFBD> IJ<EFBFBD> <C4B2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1>
int over_time ; //zw<7A> <EFBFBD> 2023-08-22 <20> ü<EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> Բ<EFBFBD> <D4B2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD>
} ;
class Mn_Timespan //zw<7A> <EFBFBD> 2023-08-29 ʱ<> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
public :
QList < long long > timespan ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
int msspan ;
Mn_Timespan ( )
{
msspan = 0 ;
}
} ;
class Xmldata //zw<7A> <EFBFBD> 2023-08-30
{
public :
XmlDataBase xmlbase ; //xml<6D> <6C> <EFBFBD> ݿ<EFBFBD> <DDBF> <EFBFBD> <EFBFBD> <EFBFBD>
XmlConfig xmlcfg ; //<2F> <EFBFBD> <C289> <EFBFBD> xml<6D> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CTopic * > topicList ; //Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
bool updataflag = true ;
} ;
//-------------------------------------------------------------------------------------*/
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ѷ<EFBFBD> <D1B6> <EFBFBD> <EFBFBD> ñ<EFBFBD> <C3B1> <EFBFBD>
//extern QMutex kafka_data_list_mutex; //Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//extern QList<kafka_data_t> kafka_data_list; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
extern int FILE_FLAG ;
QMutex kafka_data_list_mutex ; //Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QList < Ckafka_data_t > kafka_data_list ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QMutex oss_data_list_mutex ; //oss<73> <73> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> zw<7A> <77> <EFBFBD> <EFBFBD>
QList < oss_data_t > oss_data_list ; //oss<73> <73> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> zw<7A> <77> <EFBFBD> <EFBFBD>
//-------------------------------------------------------------------------------------*/
//////////////////////////////////////WW 2023-08-22 start
QMutex Sql_data_list_mutex ; //Sqlִ<6C> <D6B4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QList < QString > Sql_data_list ; //Sqlִ<6C> <D6B4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//////////////////////////////////////WW 2023-08-22 end
//QMap<int, QMap<QString, MP_RATIONALITY*> > error_data_list;//zw<7A> <EFBFBD> 2023 - 8 - 22 <20> <EFBFBD> <C289> <EFBFBD> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Լ<EFBFBD> ¼map
//QMap<int, QMap<QString, QDateTime> > error_datamatch_list;//zw<7A> <EFBFBD> 2023-8-28 <20> <> <EFBFBD> <EFBFBD> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> ȱ<EFBFBD> <C8B1> <EFBFBD> ֶμ<D6B6> ¼map
QMap < QString , Mn_Timespan * > data_timespan_list ; //zw<7A> <EFBFBD> 2023 - 8 - 29 <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QMap < QString , Xmldata * > xmlinfo_list ; //zw<7A> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͺ Ŷ<CDBA> Ӧ<EFBFBD> <D3A6> xml<6D> <6C> <EFBFBD> <EFBFBD> -<2D> <> <EFBFBD> ݿ<EFBFBD> <DDBF> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ľڵ<C4BD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
XmlConfig xmlcfg ; //zw<7A> <EFBFBD> 2023 - 8 - 14 <20> <EFBFBD> xml<6D> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CTopic * > topicList ; //Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
int inited = false ; //JiangSu_Config.xml<6D> Ƿ<EFBFBD> <C7B7> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ʶ
2025-02-14 16:44:38 +08:00
XmlConfig xmlcfg2 ; //lnk2024 - 8 - 13 <20> <EFBFBD> <C289> <EFBFBD> <EFBFBD> <EFBFBD> xml<6D> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CTopic * > topicList2 ; //lnk2024-8-14<31> <34> <EFBFBD> <EFBFBD> Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QMap < QString , Xmldata * > xmlinfo_list2 ; //lnk2024-8-14 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͺ Ŷ<CDBA> Ӧ<EFBFBD> <D3A6> xml<6D> <6C> <EFBFBD> <EFBFBD> -<2D> <> <EFBFBD> ݿ<EFBFBD> <DDBF> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> Ľڵ<C4BD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
extern int isdelta_flag ; //lnk2024-8-16 <20> <> <EFBFBD> ͽ<EFBFBD> <CDBD> ߱<EFBFBD> ־
2025-01-16 16:17:01 +08:00
///////////////////////////////////////////////lnk20241021<32> 滻web<65> ӿ<EFBFBD> //////////////////////////////////
void connectlog_pgsql ( char * id , char * datetime , int status ) ;
void errorlog_pgsql ( char * id , QString time , QString filename ) ;
void SoeRptSql ( char * id , int state , char * rpt ) ;
QString errorlog_num_pgsql ( QString monitorId , QString datatime , QString filename , int count ) ;
QString errorlog_dataintegrity_pgsql ( QString time , QString datatime , QString monitorId , bool recallflag ) ;
QString errorlog_datamatch_pgsql ( QString id , QString time , int BASE_MAT_NUM , int ADV_MAT_NUM , int BASE_ACT_NUM , int ADV_ACT_NUM , QString filename ) ;
#if 0
void connectlog_pgsql ( char * id )
{
QString pgsql ;
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_comm_status_tr \" ( \" terminal_id \" , \" statistical_date \" , \" comm_status \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',1) " ) . arg ( id ) . arg ( QDateTime : : currentDateTime ( ) . toString ( " yyyyMMdd " ) ) ) ;
pgsql . append ( QString ( " on conflict( \" terminal_id \" , \" statistical_date \" ) do update set " ) ) ;
pgsql . append ( QString ( " \" comm_status \" = \" %1 \" . \" %2meas_pq_comm_status_tr \" . \" comm_status \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
//cout << pgsql.toAscii().data() << endl;
}
//zw<7A> <EFBFBD> 2023 - 8 - 24 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 쳣<EFBFBD> ¼<EFBFBD> pgsql<71> <6C> װ<EFBFBD> <D7B0> <EFBFBD> <EFBFBD> <20> ն<EFBFBD> id <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <20> 洢<EFBFBD> ļ<EFBFBD> ·<EFBFBD> <C2B7>
void errorlog_pgsql ( char * id , QString time , QString filename )
{
QString pgsql ; //<2F> <> <EFBFBD> <EFBFBD> װ<EFBFBD> <D7B0> pgsql<71> <6C> <EFBFBD> <EFBFBD>
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_comm_error_tr \" ( \" terminal_id \" , \" statistical_date \" , \" comm_status \" , \" file_name \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',1,'%3') " ) . arg ( id ) . arg ( time ) . arg ( filename ) ) ;
pgsql . append ( QString ( " on conflict( \" terminal_id \" , \" statistical_date \" ) do update set " ) ) ;
pgsql . append ( QString ( " \" comm_status \" = \" %1 \" . \" %2meas_pq_comm_error_tr \" . \" comm_status \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
cout < < " !!!!!!!!!!!!!!!!!!!!!!!!!! " < < pgsql . toAscii ( ) . data ( ) < < endl ;
}
//zw<7A> <EFBFBD> 20240115 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ¼
void SoeRptSql ( char * id , int state , char * rpt )
{
QDateTime savetime = QDateTime : : currentDateTime ( ) ;
QString pgsql ; //<2F> <> <EFBFBD> <EFBFBD> װ<EFBFBD> <D7B0> pgsql<71> <6C> <EFBFBD> <EFBFBD>
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_comm_error_tr \" ( \" terminal_id \" , \" statistical_date \" , \" comm_status \" , \" file_name \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',%3,'%4') " ) . arg ( id ) . arg ( savetime . toString ( " yyyyMMdd " ) ) . arg ( state ) . arg ( rpt ) ) ;
pgsql . append ( QString ( " on conflict( \" terminal_id \" , \" statistical_date \" , \" file_name \" ) do update set " ) ) ;
pgsql . append ( QString ( " \" comm_status \" = %1; " ) . arg ( state ) ) ;
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
}
# endif
//zw<7A> <EFBFBD> 2023 - 8 - 18 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> 쳣<EFBFBD> ¼<EFBFBD> json<6F> <6E> װ<EFBFBD> <D7B0> <EFBFBD> <EFBFBD> <20> ն<EFBFBD> id <20> ն<EFBFBD> ip <20> ն˶˿<CBB6> <20> <> ־<EFBFBD> <D6BE> Դ <20> 쳣<EFBFBD> <ECB3A3> <EFBFBD> <EFBFBD>
void errorlog_json ( char * id , char * ip , int port , int type , char * error_type , char * ERROR_DES , char * ERROR_PARAM )
{
if ( id = = NULL | | ip = = NULL | | port = = NULL | | type = = NULL | | error_type = = NULL ) {
cout < < " Function errorlog_json Error! " < < endl ;
}
QString json ; //<2F> <> <EFBFBD> <EFBFBD> װ<EFBFBD> <D7B0> json<6F> <6E> ־
json . append ( " { " ) ;
json . append ( QString ( " \" TERMINAL_ID \" : \" %1 \" , " ) . arg ( id ) ) ; //װ<> <D7B0> ID
json . append ( QString ( " \" COMM_TIME \" : \" %1 \" , " ) . arg ( QDateTime : : currentDateTime ( ) . toString ( " yyyy-MM-dd hh:mm:ss " ) ) ) ; //<2F> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1>
json . append ( QString ( " \" TMNL_IP \" : \" %1 \" , " ) . arg ( ip ) ) ; //<2F> ն<EFBFBD> IP
json . append ( QString ( " \" TMNL_PORT \" : \" %1 \" , " ) . arg ( port ) ) ; //<2F> ն˶˿ں<CBBF>
json . append ( QString ( " \" COMM_TYPE \" : \" %1 \" , " ) . arg ( type ) ) ; //<2F> <> ־<EFBFBD> <D6BE> Դ
json . append ( QString ( " \" ERROR_TYPE \" : \" %1 \" , " ) . arg ( error_type ) ) ; //<2F> 쳣<EFBFBD> <ECB3A3> <EFBFBD> <EFBFBD>
json . append ( QString ( " \" ERROR_DES \" : \" %1 \" , " ) . arg ( ERROR_DES ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
json . append ( QString ( " \" ERROR_PARAM \" : \" %1 \" " ) . arg ( ERROR_PARAM ) ) ; //<2F> ؼ<EFBFBD> <D8BC> <EFBFBD> <EFBFBD> <EFBFBD>
json . append ( " } " ) ;
cout < < json . toAscii ( ) . data ( ) < < endl ;
QDateTime savetime = QDateTime : : currentDateTime ( ) ;
QString Qfilename , Qsavename ;
Qfilename . append ( " comtrade/ " ) . append ( id ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMdd " ) ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _COMM.log " ) ;
Qsavename . append ( " /FeProject/dat/ " ) . append ( id ) . append ( " _ " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _COMM.log " ) ;
char file_name [ 256 ] ;
memset ( file_name , 0 , 256 ) ;
sprintf ( file_name , " %s " , Qfilename . toAscii ( ) . data ( ) ) ;
char save_name [ 256 ] ;
memset ( save_name , 0 , 256 ) ;
sprintf ( save_name , " %s " , Qsavename . toAscii ( ) . data ( ) ) ;
//cout << file_name << "!!!!!!!!!!!!!!!!!!!!!!!!!!" << save_name << endl;
oss_data_t OssData ;
OssData . filename = file_name ;
OssData . savename = save_name ;
OssData . data = json ;
OssData . id = QString ( id ) ;
OssData . time = savetime . toString ( " yyyyMMdd " ) ; //ʱ<> <CAB1>
OssData . log_name = " comm " ;
oss_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
oss_data_list . append ( OssData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
oss_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
//std::ofstream file(save_name); // <20> <> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <F3A3ACB4> <EFBFBD> <EFBFBD> ļ<EFBFBD> example.txt
//if (file.is_open()) { // <20> ж<EFBFBD> <D0B6> ļ<EFBFBD> <C4BC> Ƿ<EFBFBD> <C7B7> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD>
// file << json.toAscii().data() << "\n";
// file.close(); // <20> ر<EFBFBD> <D8B1> ļ<EFBFBD>
//}
//else {
// std::cerr << "Unable to open file\n";
//}
//PutOSS(file_name, save_name);
//std::remove(save_name);
//errorlog_pgsql(id, savetime.toString("yyyyMMdd"), Qfilename);
}
//zw<7A> <EFBFBD> 2023 - 8 - 23 <20> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> жϺ <D0B6> <CFBA> <EFBFBD> <20> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ʵ<> <CAB5> ֵ <20> <> ѹ<EFBFBD> ȼ<EFBFBD> <20> 洢map
void errorlog_num ( CDataValue * pDataValue , double value , double UL , QMap < QString , MP_RATIONALITY * > * map_list , long long time )
{
if ( pDataValue = = NULL )
{
cout < < " Function errorlog_num Error! " < < endl ;
return ;
}
//cout << pDataValue->LimitUp.toAscii().data() << pDataValue->LimitDown.toAscii().data() << endl;
if ( pDataValue - > LimitUp ! = " not define " & & pDataValue - > LimitDown ! = " not define " & & UL ! = 0 ) //zw<7A> <EFBFBD> 2023-8-23 <20> <> <EFBFBD> ݺ<EFBFBD> <DDBA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD>
{
double limitup = 0 , limitdown = 0 ;
if ( pDataValue - > LimitUp . indexOf ( " *%UN " ) ! = - 1 )
{
QString tmp = pDataValue - > LimitUp ;
float temp = tmp . replace ( " *%UN " , " " ) . toFloat ( ) ;
limitup = temp * UL ;
}
else if ( pDataValue - > LimitUp . indexOf ( " *%U " ) ! = - 1 )
{
QString tmp = pDataValue - > LimitUp ;
float temp = tmp . replace ( " *%U " , " " ) . toFloat ( ) ;
limitup = ( temp * UL ) / 1.732f ;
}
else
{
limitup = pDataValue - > LimitUp . toFloat ( ) ;
}
if ( pDataValue - > LimitDown . indexOf ( " *%UN " ) ! = - 1 )
{
QString tmp = pDataValue - > LimitDown ;
float temp = tmp . replace ( " *%UN " , " " ) . toFloat ( ) ;
limitdown = temp * UL ;
}
else if ( pDataValue - > LimitDown . indexOf ( " *%U " ) ! = - 1 )
{
QString tmp = pDataValue - > LimitDown ;
float temp = tmp . replace ( " *%U " , " " ) . toFloat ( ) ;
limitdown = ( temp * UL ) / 1.732f ;
}
else
{
limitdown = pDataValue - > LimitDown . toFloat ( ) ;
}
//cout << limitdown << "||||" << limitup << "||||" << UL << endl;
if ( pDataValue - > LimitUp ! = " 0 " | | pDataValue - > LimitDown ! = " 0 " )
{
if ( value < limitdown | | value > limitup ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD>
{
if ( ! map_list - > contains ( pDataValue - > strFullName ) )
{
MP_RATIONALITY * tmp_data = new MP_RATIONALITY ( ) ;
tmp_data - > fValue = value ;
tmp_data - > over_time = 0 ;
tmp_data - > dtvalue = QDateTime : : fromTime_t ( time / 1000 ) ;
map_list - > insert ( pDataValue - > strFullName , tmp_data ) ;
}
map_list - > value ( pDataValue - > strFullName ) - > over_time + + ;
}
}
}
}
//zw<7A> <EFBFBD> 2023 - 8 - 23 <20> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> 쳣<EFBFBD> <ECB3A3> ֵת<D6B5> <D7AA> json<6F> <6E> pgsql
QString errorlog_num_json ( QString monitorId , QMap < QString , MP_RATIONALITY * > map_list )
{
int count = 0 ;
QString log_json ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ɵ<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
QMap < QString , MP_RATIONALITY * > tmp = map_list ;
for ( QMap < QString , MP_RATIONALITY * > : : iterator it2 = tmp . begin ( ) ; it2 ! = tmp . end ( ) ; + + it2 )
{
count + + ;
QString key2 = it2 . key ( ) ;
MP_RATIONALITY * value2 = it2 . value ( ) ;
log_json . append ( " { " ) ;
log_json . append ( QString ( " \" strFullName \" : \" %1 \" , " ) . arg ( key2 ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵȫ<D6B5> <C8AB>
log_json . append ( QString ( " \" value \" : \" %1 \" , " ) . arg ( value2 - > fValue ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
log_json . append ( QString ( " \" datetime \" : \" %1 \" " ) . arg ( value2 - > dtvalue . toString ( " yyyy-MM-dd hh:mm:ss " ) ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1>
log_json . append ( " } " ) ;
}
return log_json ;
}
///////////////////////////////////////////////lnk20241021<32> 滻web<65> ӿ<EFBFBD> //////////////////////////////////
#if 0
//2023 9-18 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> pgsql<71> <6C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString errorlog_num_pgsql ( QString monitorId , QString datatime , QString filename , int count )
{
QString log_pqsql ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ɵ<EFBFBD> pgsql<71> <6C> <EFBFBD> <EFBFBD>
log_pqsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_measpoint_rationality_tr \" ( \" monitor_id \" , \" statistical_date \" , \" irrat_num \" , \" file_name \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
log_pqsql . append ( QString ( " values('%1',date'%2',%3,'%4') " ) . arg ( monitorId ) . arg ( datatime ) . arg ( count ) . arg ( filename ) ) ;
log_pqsql . append ( QString ( " on conflict( \" monitor_id \" , \" statistical_date \" ) do nothing; " ) ) ;
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( log_pqsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return log_pqsql ;
}
//zw<7A> <EFBFBD> 2023 - 8 - 24 <20> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> pgsql<71> <6C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ն<EFBFBD> id <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2023-08-15 <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> 2023-08-15 19:15:00
QString errorlog_dataintegrity_pgsql ( QString time , QString datatime , QString monitorId , bool recallflag )
{
int num = 480 ;
if ( data_timespan_list [ monitorId ] - > msspan ! = 0 ) {
num = 1440 / data_timespan_list [ monitorId ] - > msspan ;
}
QString pgsql ; //<2F> <> <EFBFBD> <EFBFBD> װ<EFBFBD> <D7B0> pgsql<71> <6C> <EFBFBD> <EFBFBD>
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_measpoint_intact_tr \" ( \" monitor_id \" , \" statistical_date \" , \" exp_num \" , \" act_num \" , \" value_time \" , \" last_value_time \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',480,1,array[TIMESTAMP'%3'],'%4') " ) . arg ( monitorId ) . arg ( time ) . arg ( datatime ) . arg ( datatime ) ) ;
pgsql . append ( QString ( " on conflict( \" monitor_id \" , \" statistical_date \" ) do update set " ) ) ;
//pgsql.append(QString("\"value_time\"=(array_cat(EXCLUDED.\"value_time\", \"%1\".\"%2meas_pq_measpoint_intact_tr\".\"value_time\"))[:1440] , \"exp_num\" = %3 , \"last_value_time\" = EXCLUDED.\"last_value_time\" ,\"act_num\"= \"%4\".\"%5meas_pq_measpoint_intact_tr\".\"act_num\" + 1;").arg(POSTGRES_SCHEMA).arg(POSTGRES_TABLEPREFIX).arg(num).arg(POSTGRES_SCHEMA).arg(POSTGRES_TABLEPREFIX));
if ( recallflag = = true ) {
if ( data_timespan_list [ monitorId ] - > msspan ! = 0 ) {
pgsql . append ( QString ( " \" value_time \" = ARRAY_APPEND( \" %1 \" . \" %2meas_pq_measpoint_intact_tr \" . \" value_time \" , '%3') , \" exp_num \" = %4 , \" last_value_time \" = EXCLUDED. \" last_value_time \" , \" act_num \" = \" %5 \" . \" %6meas_pq_measpoint_intact_tr \" . \" act_num \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) . arg ( datatime ) . arg ( num ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
}
else {
pgsql . append ( QString ( " \" value_time \" = ARRAY_APPEND( \" %1 \" . \" %2meas_pq_measpoint_intact_tr \" . \" value_time \" , '%3') , \" last_value_time \" = EXCLUDED. \" last_value_time \" , \" act_num \" = \" %4 \" . \" %5meas_pq_measpoint_intact_tr \" . \" act_num \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) . arg ( datatime ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
}
}
else {
pgsql . append ( QString ( " \" value_time \" = ARRAY_APPEND( \" %1 \" . \" %2meas_pq_measpoint_intact_tr \" . \" value_time \" , '%3') , \" exp_num \" = %4 , \" last_value_time \" = EXCLUDED. \" last_value_time \" , \" act_num \" = \" %5 \" . \" %6meas_pq_measpoint_intact_tr \" . \" act_num \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) . arg ( datatime ) . arg ( num ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
}
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return pgsql ;
}
# endif
//zw<7A> <EFBFBD> 2023-8-24 <20> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD>
void errorlog_dataintegrity_timespanlist ( QString monitorId , long long time )
{
if ( ! data_timespan_list . contains ( monitorId ) ) //zw<7A> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
Mn_Timespan * mn_tmp = new Mn_Timespan ( ) ;
mn_tmp - > timespan . append ( time ) ;
data_timespan_list . insert ( monitorId , mn_tmp ) ;
}
else
{
if ( data_timespan_list [ monitorId ] - > timespan . count ( ) < = 8 ) {
data_timespan_list [ monitorId ] - > timespan . append ( time ) ;
}
}
}
//zw<7A> <EFBFBD> 2023-8-24 <20> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
void errorlog_dataintegrity_timespanlist_2 ( QString monitorId )
{
if ( data_timespan_list [ monitorId ] - > msspan = = 0 & & data_timespan_list [ monitorId ] - > timespan . count ( ) > = 8 ) //<2F> <> <EFBFBD> Լ<EFBFBD> <D4BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
int count [ 10 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ;
int tmp_sp = 0 ;
qSort ( data_timespan_list [ monitorId ] - > timespan . begin ( ) , data_timespan_list [ monitorId ] - > timespan . end ( ) ) ;
for ( int i = 1 ; i < data_timespan_list [ monitorId ] - > timespan . size ( ) ; i + + ) {
int tmp_ms = data_timespan_list [ monitorId ] - > timespan [ i ] - data_timespan_list [ monitorId ] - > timespan [ i - 1 ] ;
if ( tmp_ms > = 30000 & & tmp_ms < = 90000 ) {
count [ 0 ] + + ;
}
else if ( tmp_ms > = 90000 & & tmp_ms < = 150000 ) {
count [ 1 ] + + ;
}
else if ( tmp_ms > = 150000 & & tmp_ms < = 210000 ) {
count [ 2 ] + + ;
}
else if ( tmp_ms > = 210000 & & tmp_ms < = 270000 ) {
count [ 3 ] + + ;
}
else if ( tmp_ms > = 270000 & & tmp_ms < = 330000 ) {
count [ 4 ] + + ;
}
else if ( tmp_ms > = 330000 & & tmp_ms < = 390000 ) {
count [ 5 ] + + ;
}
else if ( tmp_ms > = 390000 & & tmp_ms < = 450000 ) {
count [ 6 ] + + ;
}
else if ( tmp_ms > = 450000 & & tmp_ms < = 510000 ) {
count [ 7 ] + + ;
}
else if ( tmp_ms > = 510000 & & tmp_ms < = 570000 ) {
count [ 8 ] + + ;
}
else if ( tmp_ms > = 570000 & & tmp_ms < = 630000 ) {
count [ 9 ] + + ;
}
}
for ( int i = 0 ; i < 10 ; i + + ) {
if ( count [ i ] ! = 0 & & count [ i ] > tmp_sp ) {
tmp_sp = count [ i ] ;
data_timespan_list [ monitorId ] - > msspan = i + 1 ;
}
}
}
}
2025-02-14 16:44:38 +08:00
//zw<7A> <EFBFBD> 2023 - 8 - 28 <20> <> <EFBFBD> <EFBFBD> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> map<61> <70> ¼ <20> <> <EFBFBD> <EFBFBD> ȫ<EFBFBD> <C8AB> <20> 洢map
void errorlog_datamatch ( QString fullname , QMap < QString , QDateTime > * map_list )
{
if ( ! map_list - > contains ( fullname ) )
{
map_list - > insert ( fullname , QDateTime : : currentDateTime ( ) ) ;
}
}
///////////////////////////////////////////////lnk20241021<32> 滻web<65> ӿ<EFBFBD> //////////////////////////////////
#if 0
//zw<7A> <EFBFBD> 2023 - 8 - 25 <20> <> ֵƥ<D6B5> <C6A5> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> pgsql<71> <6C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ն<EFBFBD> id <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2023-08-15 <20> <> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> <20> <> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> <20> <> <EFBFBD> <EFBFBD> ʵ<EFBFBD> <CAB5> <20> <> <EFBFBD> <EFBFBD> ʵ<EFBFBD> <CAB5>
QString errorlog_datamatch_pgsql ( QString id , QString time , int BASE_MAT_NUM , int ADV_MAT_NUM , int BASE_ACT_NUM , int ADV_ACT_NUM , QString filename )
{
QString pgsql ; //<2F> <> <EFBFBD> <EFBFBD> װ<EFBFBD> <D7B0> pgsql<71> <6C> <EFBFBD> <EFBFBD>
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_measpoint_match_tr \" ( \" monitor_id \" , \" statistical_date \" , \" base_mat_num \" , \" adv_mat_num \" , \" base_act_num \" , \" adv_act_num \" , \" file_name \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',%3,%4,%5,%6,'%7') " ) . arg ( id ) . arg ( time ) . arg ( BASE_MAT_NUM ) . arg ( ADV_MAT_NUM ) . arg ( BASE_ACT_NUM ) . arg ( ADV_ACT_NUM ) . arg ( filename ) ) ;
pgsql . append ( QString ( " on conflict( \" monitor_id \" , \" statistical_date \" ) do nothing; " ) ) ;
//pgsql.append(QString("\"BASE_ACT_NUM\"= %1 , \"ADV_ACT_NUM\"= %2;").arg(BASE_ACT_NUM).arg(ADV_ACT_NUM));
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return pgsql ;
}
# endif
//zw<7A> <EFBFBD> 2023-8-29 <20> <> ֵƥ<D6B5> <C6A5> <EFBFBD> <EFBFBD> json<6F> <6E> ʽ <EFBFBD> <CABD> <EFBFBD> <EFBFBD>
QString errorlog_datamatch_json ( QMap < QString , QDateTime > data_match_map_1 , QMap < QString , QDateTime > data_match_map_2 , long long time )
{
QString log_json , fullnamelist ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ɵ<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
if ( data_match_map_1 . count ( ) ! = 0 ) {
for ( QMap < QString , QDateTime > : : iterator it2 = data_match_map_1 . begin ( ) ; it2 ! = data_match_map_1 . end ( ) ; + + it2 ) {
QString key2 = it2 . key ( ) ;
QDateTime value2 = it2 . value ( ) ;
fullnamelist . append ( " \" " ) ;
fullnamelist . append ( key2 ) ; //<2F> <> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> ֵȫ<D6B5> <C8AB>
fullnamelist . append ( " \" , " ) ;
}
}
if ( data_match_map_2 . count ( ) ! = 0 ) {
for ( QMap < QString , QDateTime > : : iterator it2 = data_match_map_2 . begin ( ) ; it2 ! = data_match_map_2 . end ( ) ; + + it2 ) {
QString key2 = it2 . key ( ) ;
QDateTime value2 = it2 . value ( ) ;
fullnamelist . append ( " \" " ) ;
fullnamelist . append ( key2 ) ; //<2F> <> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> ֵȫ<D6B5> <C8AB>
fullnamelist . append ( " \" , " ) ;
}
}
fullnamelist . chop ( 1 ) ;
log_json . append ( QString ( " { \" datetime \" : \" %1 \" , " ) . arg ( QDateTime : : fromTime_t ( time / 1000 ) . toString ( " yyyy-MM-dd hh:mm:ss " ) ) ) ;
log_json . append ( QString ( " \" LackDataName \" : [%1] " ) . arg ( fullnamelist ) ) ;
log_json . append ( " } " ) ;
return log_json ;
}
#if 0
bool ParseXMLConfig2 ( XmlConfig * cfg , list < CTopic * > * ctopiclist , QString path ) //<2F> <> <EFBFBD> <EFBFBD> JiangSu_Config.xml<6D> <6C> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD>
{
//cfg = new XmlConfig();
//ע<> <D7A2> <EFBFBD> <EFBFBD> #7#<23> <> <EFBFBD> <EFBFBD> ͨ<EFBFBD> <CDA8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͨ<EFBFBD> <CDA8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 8421<32> 룬8-CP95 4-<2D> <> С ֵ 2-<2D> <> <EFBFBD> <EFBFBD> ֵ 1-ƽ <> <C6BD> ֵ
// <20> <> %2,50%<25> <> <EFBFBD> <EFBFBD> ͨ<EFBFBD> <CDA8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͨ<EFBFBD> <CDA8> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݣ<EFBFBD> <DDA3> <EFBFBD> <EFBFBD> ÷<EFBFBD> Χ <EFBFBD> <CEA7> <EFBFBD> 룬<EFBFBD> <EBA3AC> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> ֱ<EFBFBD> ʾ г <CABE> <D0B3> <EFBFBD> <EFBFBD> ʼ <EFBFBD> ţ<EFBFBD> <C5A3> ڶ<EFBFBD> <DAB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> <> SEQ=<3D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> 8421<32> <31> 8-T 4-C 2-B 1-A
//ע<> <D7A2> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD> 11-ʵʱSOE<4F> ¼<EFBFBD>
QString strPhasic [ 4 ] = { " A " , " B " , " C " , " T " } ; //<2F> <> <EFBFBD> <EFBFBD> ö<EFBFBD> <C3B6> <20> <> <EFBFBD> <EFBFBD> (A-T)
int nStart = 1 , nEnd = 1 ; //г <> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֹ<EFBFBD> <D6B9> <EFBFBD> <EFBFBD>
QString strValueTemp ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ַ<EFBFBD> <D6B7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> %0,49% <20> <> %2,50%
//<2F> <> <EFBFBD> <EFBFBD> JiangSu_Config.xml<6D> <6C> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD>
//QString xml_dir = QString("D:/")+QString("PQD-9k/config/"); //<2F> <> <EFBFBD> <EFBFBD> ·<EFBFBD> <C2B7> <EFBFBD> <EFBFBD> ȡxmlʧ<6C> ܣ<EFBFBD> <DCA3> ˴ <EFBFBD> <CBB4> <EFBFBD> <EFBFBD> þ<EFBFBD> <C3BE> <EFBFBD> ·<EFBFBD> <C2B7> <EFBFBD> <EFBFBD> zl 2018-11-14 15:43:34
QDomDocument doc ; //<2F> ½<EFBFBD> QDomDocument<6E> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> XML<4D> ĵ<EFBFBD>
if ( " not define " = = path ) {
QString xml_dir = QString ( " ../ " ) + QString ( " etc/ " ) ; //Linux<75> µ<EFBFBD> <C2B5> <EFBFBD> ·<EFBFBD> <C2B7>
QFile file ( xml_dir + JSON_CONFIG_FN ) ;
if ( ! file . open ( QIODevice : : ReadOnly | QFile : : Text ) ) //<2F> <> ֻ<EFBFBD> <D6BB> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <CABD> <EFBFBD> <EFBFBD> xml
{
std : : cout < < " can't open not define config file " < < std : : endl ; //lnk20250208
return 0 ;
}
if ( ! doc . setContent ( & file ) ) //<2F> <> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> doc<6F> <63>
{
std : : cout < < " can't read not define config file " < < std : : endl ; //lnk20250208
file . close ( ) ;
return 0 ;
}
file . close ( ) ;
cout < < " not define xml " < < endl ;
}
else {
QString tmppath ;
tmppath . append ( " /FeProject/dat/ " ) . append ( path ) . append ( " .xml " ) ;
QFile file ( tmppath ) ;
if ( ! file . open ( QIODevice : : ReadOnly | QFile : : Text ) ) //<2F> <> ֻ<EFBFBD> <D6BB> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <CABD> <EFBFBD> <EFBFBD> xml
{
std : : cout < < " can't open config file " < < tmppath . toStdString ( ) < < std : : endl ; //lnk20250208
return 0 ;
}
if ( ! doc . setContent ( & file ) ) //<2F> <> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> doc<6F> <63>
{
std : : cout < < " can't read config file " < < tmppath . toStdString ( ) < < std : : endl ; //lnk20250208
file . close ( ) ;
return 0 ;
}
file . close ( ) ;
cout < < " define xml " < < endl ;
}
//<2F> <> xml<6D> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> doc<6F> <63>
QDomNode firstNode = doc . firstChild ( ) ; //<2F> <> <EFBFBD> ڵ<EFBFBD> "JSConfigTemplate"
QDomElement docElem = doc . documentElement ( ) ; //<2F> <> <EFBFBD> ظ<EFBFBD> <D8B8> ڵ<EFBFBD> Ԫ<EFBFBD> <D4AA>
QDomNode n = docElem . firstChild ( ) ; //<2F> <> <EFBFBD> <EFBFBD> doc<6F> ĵ<EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> ڵ㣬<DAB5> <E3A3AC> "Topic"
while ( ! n . isNull ( ) ) //<2F> <> <EFBFBD> <EFBFBD> Topic<69> ڵ㲻Ϊ<E3B2BB> <CEAA>
{
if ( n . isElement ( ) )
{
QDomElement e = n . toElement ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> ΪԪ<CEAA> <D4AA>
QString strTag = e . tagName ( ) ; //Topic<69> ڵ<EFBFBD>
if ( " Topic " = = strTag ) //zw<7A> <EFBFBD> 2023 - 8 - 14 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> topic<69> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ<EFBFBD> <DAB5> Ľ<EFBFBD> <C4BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
CTopic * topic = new CTopic ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
topic - > strTopic = e . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ctopiclist - > push_back ( topic ) ; //<2F> <> <EFBFBD> <EFBFBD> Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( " Topic " = = strTag & & ( " HISDATA " = = topic - > strTopic | | " RTDATA " = = topic - > strTopic ) ) //<2F> ٶ<EFBFBD> ȡTopic<69> <63> HISDATA<54> <41> RTDATA<54> <41> <EFBFBD> <EFBFBD> ---------------------------------------------------
{
QDomNodeList list = e . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Topic<69> <63> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i = 0 ; i < list . count ( ) ; i + + ) //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD>
{
QDomNode node = list . at ( i ) ; //node1 <DataType>
if ( node . isElement ( ) )
{
CDataType * dt = new CDataType ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
dt - > iDataType = node . toElement ( ) . attribute ( " value " ) . toInt ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ(1-ʵʱ/<2F> <> ʷ<EFBFBD> <CAB7> ̬<EFBFBD> <CCAC> 2-ʵʱ/<2F> <> ʷ<EFBFBD> <CAB7> <EFBFBD> 䡢3-ʵʱ/<2F> <> ʷ<EFBFBD> <CAB7> ̬<EFBFBD> <CCAC> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̬<EFBFBD> <CCAC> 5-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䡢6-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̬)
dt - > type = node . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
dt - > BaseFlag0 = 0 ;
dt - > BaseFlag1 = 0 ;
topic - > DataTypeList . push_back ( dt ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag2 = node . toElement ( ) . tagName ( ) ; //DataType<70> ڵ<EFBFBD>
if ( " DataType " = = strTag2 ) //<2F> ڶ<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DataType
{
QDomNodeList list2 = node . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> DataType<70> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i2 = 0 ; i2 < list2 . count ( ) ; i2 + + ) //<2F> <> <EFBFBD> <EFBFBD> Monitor<6F> б <EFBFBD>
{
QDomNode node2 = list2 . at ( i2 ) ; //node2 <Monitor>
if ( node2 . isElement ( ) )
{
CMonitor * mt = new CMonitor ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
mt - > strMonitor = node2 . toElement ( ) . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ע<> <D7A2> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> Ҫ<EFBFBD> <D2AA> Rpt<70> <74> <EFBFBD> <EFBFBD> <EFBFBD> л<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mt - > type = node2 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
dt - > MonitorList . push_back ( mt ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag3 = node2 . toElement ( ) . tagName ( ) ; //Monitor<6F> ڵ<EFBFBD>
if ( " Monitor " = = strTag3 ) //<2F> ۶<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Monitor
{
QDomNodeList list3 = node2 . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Monitor<6F> <72> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i3 = 0 ; i3 < list3 . count ( ) ; i3 + + ) //<2F> <> <EFBFBD> <EFBFBD> Item<65> б <EFBFBD>
{
QDomNode node3 = list3 . at ( i3 ) ; //node3 <Item>
if ( node3 . isElement ( ) )
{
CItem * it = new CItem ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
it - > strItemName = node3 . toElement ( ) . attribute ( " name " ) ; //FLAG<41> <47> TIME<4D> <45> V<EFBFBD> <56> I<EFBFBD> <49> PQ
it - > type = node3 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( " FLAG " = = it - > strItemName ) //<2F> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> (1<> <31> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <DEB3> <EFBFBD> 0<EFBFBD> <30> <EFBFBD> <EFBFBD> <DEB3> <EFBFBD> Ĭ<EFBFBD> <C4AC> <EFBFBD> <EFBFBD> )
it - > strItemValue = node3 . toElement ( ) . attribute ( " value " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
mt - > ItemList . push_back ( it ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag4 = node3 . toElement ( ) . tagName ( ) ; //Item<65> ڵ<EFBFBD>
if ( " Item " = = strTag4 ) //<2F> ܶ<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Item
{
QDomNodeList list4 = node3 . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Item<65> <6D> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i4 = 0 ; i4 < list4 . count ( ) ; i4 + + ) //<2F> <> <EFBFBD> <EFBFBD> Sequence<63> б <EFBFBD>
{
QDomNode node4 = list4 . at ( i4 ) ; //node4 <Sequence>
if ( node4 . isElement ( ) )
{
QString strPhase = node4 . toElement ( ) . attribute ( " value " ) ; //<2F> <> <EFBFBD> <EFBFBD>
if ( " 7 " = = strPhase ) //<2F> <> -<2D> ٶ<EFBFBD> ȡABC<42> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
for ( int n = 0 ; n < 3 ; n + + ) //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ABC<42> <43> <EFBFBD> <EFBFBD> )
{
CSequence * sq = new CSequence ( ) ; //ABC<42> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
sq - > strSValue = node4 . toElement ( ) . attribute ( " value " ) ; //<2F> <> <EFBFBD> <EFBFBD> ֵ(7<> <37> ABC<42> <43> <EFBFBD> ࡢ8<E0A1A2> <38> T<EFBFBD> <54> )
sq - > type = node4 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
sq - > strSeq = strPhasic [ n ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <20> <> <EFBFBD> <EFBFBD> A<EFBFBD> <41> B<EFBFBD> <42> C
it - > SequenceList . push_back ( sq ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag5 = node4 . toElement ( ) . tagName ( ) ; //Sequence<63> ڵ<EFBFBD>
if ( " Sequence " = = strTag5 ) //<2F> ݶ<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> Sequence
{
QDomNodeList list5 = node4 . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Sequence<63> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i5 = 0 ; i5 < list5 . count ( ) ; i5 + + ) //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> Value<75> б <EFBFBD>
{
QDomNode node5 = list5 . at ( i5 ) ; //node5 <Value>
if ( node5 . isElement ( ) )
{
QDomElement e_Value = node5 . toElement ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> ΪԪ<CEAA> <D4AA>
QString strTag6 = e_Value . tagName ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Sequence<63> <65> <20> <> <EFBFBD> <EFBFBD> DataValue<75> ӽڵ<D3BD>
if ( " Value " = = strTag6 ) //<2F> <EFBFBD> ȡABC<42> <43> <EFBFBD> <EFBFBD> Value
{
QString strDVName = e_Value . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strDAName = e_Value . attribute ( " DA " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( strDAName . indexOf ( " phs* " ) > = 0 ) //DA<44> <41> <EFBFBD> <EFBFBD> "phs*"
strDAName = strDAName . replace ( " * " , sq - > strSeq ) ; //<2F> <> DA<44> <41> <EFBFBD> <EFBFBD> *<2A> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (A<> <41> B<EFBFBD> <42> C) <20> <> <EFBFBD> <EFBFBD> phsA$cVal$mag$f
//<2F> <> -<2D> <> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(ABC<42> <43> <EFBFBD> <EFBFBD> )-------------------------------------
if ( strDVName . indexOf ( " % " ) > = 0 & & strDAName . indexOf ( " %- " ) > = 0 ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> % <20> <> DA<44> <41> <EFBFBD> <EFBFBD> %- <20> <> <EFBFBD> <EFBFBD> V_%0,49%_MAX
{
QStringList strHarm1 = strDVName . split ( ' % ' ) ;
if ( strHarm1 . count ( ) > = 2 ) //<2F> <> <EFBFBD> <EFBFBD> V_ | 0,49 | _MAX
{
strValueTemp = " % " + strHarm1 . at ( 1 ) + " % " ; //<2F> <> <EFBFBD> <EFBFBD> %0,49%
QStringList strHarm2 = strHarm1 . at ( 1 ) . split ( ' , ' ) ; //<2F> <> <EFBFBD> <EFBFBD> 0,49
if ( strHarm2 . count ( ) > = 2 )
{
nStart = ( strHarm2 . at ( 0 ) ) . toInt ( ) ; //г <> <D0B3> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 0
nEnd = ( strHarm2 . at ( 1 ) ) . toInt ( ) ; //г <> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 49
}
}
QString substring = strDAName . mid ( strDAName . indexOf ( " [ " ) + 1 , strDAName . indexOf ( " ] " ) - strDAName . indexOf ( " [ " ) - 1 ) ;
QStringList strDAList1 = substring . split ( ' - ' ) ;
int strDAoffset = ( strDAList1 . at ( 1 ) ) . toInt ( ) ;
for ( int i = nStart ; i < = nEnd ; i + + ) //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
QString strDVNameTemp = strDVName ; //<2F> <> ʱ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strDANameTemp = strDAName ; //<2F> <> ʱ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
CDataValue * dv1 = new CDataValue ( ) ; //ABC<42> <43> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> ָ<EFBFBD> <D6B8>
dv1 - > type = e_Value . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( e_Value . attributes ( ) . contains ( " Coefficient " ) ) {
dv1 - > strCoefficient = e_Value . attribute ( " Coefficient " ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv1 - > fCoefficient = e_Value . attribute ( " Coefficient " ) . toFloat ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
}
dv1 - > strOffset = e_Value . attribute ( " Offset " ) ; //<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ƫ<EFBFBD> <C6AB> <EFBFBD> <EFBFBD> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv1 - > iOffset = e_Value . attribute ( " Offset " ) . toInt ( ) ; //<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ƫ<EFBFBD> <C6AB> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> ) = <20> <> <EFBFBD> յ<EFBFBD> <D5B5> <EFBFBD> Ժ<EFBFBD> <D4BA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> - װ<> <D7B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʵ<EFBFBD> <CAB5> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD>
dv1 - > DO = e_Value . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
dv1 - > strName = strDVNameTemp . replace ( strValueTemp , QString : : number ( i + e_Value . attribute ( " Offset " ) . toInt ( ) ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> %0,49%<25> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> SI_%0,49%<25> <> ΪSI_1
dv1 - > DA = strDANameTemp . replace ( substring , QString : : number ( i - strDAoffset ) ) ; //<2F> <> DA<44> <41> %-2<> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> phs*Har[1]$mag$f
//cout << dv1->strName.toAscii().data() << "--" << dv1->DA.toAscii().data() << " (" << dv1->iOffset << endl;
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( e_Value . attributes ( ) . contains ( " BaseFlag " ) )
{
dv1 - > BaseFlag = e_Value . attribute ( " BaseFlag " ) ;
if ( dv1 - > BaseFlag = = " 1 " ) {
dt - > BaseFlag1 + + ;
}
else {
dt - > BaseFlag0 + + ;
}
}
else
{
dt - > BaseFlag0 + + ;
dv1 - > BaseFlag = " 0 " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitUp " ) )
{
dv1 - > LimitUp = e_Value . attribute ( " LimitUp " ) ;
}
else
{
dv1 - > LimitUp = " not define " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitDown " ) )
{
dv1 - > LimitDown = e_Value . attribute ( " LimitDown " ) ;
}
else
{
dv1 - > LimitDown = " not define " ;
}
if ( ! dv1 - > DO . isEmpty ( ) & & ! dv1 - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
dv1 - > strFullName = dv1 - > DO + " $ " + dv1 - > DA ;
else
dv1 - > strFullName = " not define " ;
sq - > DataValueList . push_back ( dv1 ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (ABC<42> <43> <EFBFBD> <EFBFBD> )
} //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
//continue; //ABC<42> <43> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɺ<C9BA> <F3A3ACBC> <EFBFBD> <EFBFBD> <EFBFBD> ȡ<EFBFBD> <C8A1> һ <EFBFBD> ڵ<EFBFBD>
}
else //<2F> <> -<2D> ڷ<EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(ABC<42> <43> <EFBFBD> <EFBFBD> )-------------------------------
{
CDataValue * dv2 = new CDataValue ( ) ; //ABC<42> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> ָ<EFBFBD> <D6B8>
dv2 - > strName = e_Value . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > type = e_Value . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( e_Value . attributes ( ) . contains ( " Coefficient " ) ) {
dv2 - > strCoefficient = e_Value . attribute ( " Coefficient " ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv2 - > fCoefficient = e_Value . attribute ( " Coefficient " ) . toFloat ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
}
dv2 - > DO = e_Value . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > DA = strDAName ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( e_Value . attributes ( ) . contains ( " BaseFlag " ) )
{
dv2 - > BaseFlag = e_Value . attribute ( " BaseFlag " ) ;
if ( dv2 - > BaseFlag = = " 1 " ) {
dt - > BaseFlag1 + + ;
}
else {
dt - > BaseFlag0 + + ;
}
}
else
{
dt - > BaseFlag0 + + ;
dv2 - > BaseFlag = " 0 " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitUp " ) )
{
dv2 - > LimitUp = e_Value . attribute ( " LimitUp " ) ;
}
else
{
dv2 - > LimitUp = " not define " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitDown " ) )
{
dv2 - > LimitDown = e_Value . attribute ( " LimitDown " ) ;
}
else
{
dv2 - > LimitDown = " not define " ;
}
if ( ! e_Value . attribute ( " PltFlag " ) . isEmpty ( ) & & e_Value . attribute ( " PltFlag " ) = = " True " ) //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
dv2 - > bPlt = true ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
else
dv2 - > bPlt = false ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( ! dv2 - > DO . isEmpty ( ) & & ! dv2 - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
dv2 - > strFullName = dv2 - > DO + " $ " + dv2 - > DA ;
else
dv2 - > strFullName = " not define " ;
sq - > DataValueList . push_back ( dv2 ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (ABC<42> <43> <EFBFBD> <EFBFBD> )
}
} //<2F> <> ȡABC<42> <43> <EFBFBD> <EFBFBD> Value <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node5ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> Value<75> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
}
} //<2F> <> -<2D> ٶ<EFBFBD> ȡABC<42> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
if ( " 8 " = = strPhase ) //<2F> <> -<2D> ڶ<EFBFBD> ȡT<C8A1> <54> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
CSequence * sq = new CSequence ( ) ; //T<> <54> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
sq - > strSValue = node4 . toElement ( ) . attribute ( " value " ) ; //<2F> <> <EFBFBD> <EFBFBD> ֵ
sq - > type = node4 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
sq - > strSeq = strPhasic [ 3 ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
it - > SequenceList . push_back ( sq ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (T<> <54> )
QDomNodeList list5 = node4 . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Sequence<63> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i5 = 0 ; i5 < list5 . count ( ) ; i5 + + ) //<2F> <> <EFBFBD> <EFBFBD> T<> <54> Value<75> б <EFBFBD>
{
QDomNode node5 = list5 . at ( i5 ) ; //node5 <Value>
if ( node5 . isElement ( ) )
{
QDomElement e_Value = node5 . toElement ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> ΪԪ<CEAA> <D4AA>
QString strTag6 = e_Value . tagName ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Sequence<63> <65> <20> <> <EFBFBD> <EFBFBD> DataValue<75> ӽڵ<D3BD>
if ( " Value " = = strTag6 ) //<2F> <EFBFBD> ȡT<C8A1> <54> Value
{
//<2F> <> -<2D> <> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(T<> <54> ) ע<> <D7A2> T<EFBFBD> <54> û<EFBFBD> <C3BB> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//<2F> <> -<2D> ڷ<EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(T<> <54> )
CDataValue * dv2 = new CDataValue ( ) ; //T<> <54> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> ָ<EFBFBD> <D6B8>
dv2 - > strName = e_Value . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > type = e_Value . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( e_Value . attributes ( ) . contains ( " Coefficient " ) ) {
dv2 - > strCoefficient = e_Value . attribute ( " Coefficient " ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv2 - > fCoefficient = e_Value . attribute ( " Coefficient " ) . toFloat ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
}
dv2 - > DO = e_Value . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > DA = e_Value . attribute ( " DA " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( e_Value . attributes ( ) . contains ( " BaseFlag " ) )
{
dv2 - > BaseFlag = e_Value . attribute ( " BaseFlag " ) ;
if ( dv2 - > BaseFlag = = " 1 " ) {
dt - > BaseFlag1 + + ;
}
else {
dt - > BaseFlag0 + + ;
}
}
else
{
dt - > BaseFlag0 + + ;
dv2 - > BaseFlag = " 0 " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitUp " ) )
{
dv2 - > LimitUp = e_Value . attribute ( " LimitUp " ) ;
}
else
{
dv2 - > LimitUp = " not define " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitDown " ) )
{
dv2 - > LimitDown = e_Value . attribute ( " LimitDown " ) ;
}
else
{
dv2 - > LimitDown = " not define " ;
}
if ( ! dv2 - > DO . isEmpty ( ) & & ! dv2 - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
dv2 - > strFullName = dv2 - > DO + " $ " + dv2 - > DA ;
else
dv2 - > strFullName = " not define " ;
sq - > DataValueList . push_back ( dv2 ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (ABC<42> <43> <EFBFBD> <EFBFBD> )
} //<2F> <> ȡT<C8A1> <54> Value <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node5ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> T<EFBFBD> <54> Value<75> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> -<2D> ڶ<EFBFBD> ȡT<C8A1> <54> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node4ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> Sequence<63> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Item <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node3ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> Item<65> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡMonitor<6F> ڵ<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node2ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> Monitor<6F> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DataType <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> nodeΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡTopic<69> ڵ<EFBFBD> HISDATA<54> <41> RTDATA <20> <> <EFBFBD> <EFBFBD>
else if ( " Topic " = = strTag & & " RTDATASOE " = = topic - > strTopic ) //SOE<4F> ¼<EFBFBD> -------------------------------------------------------
{
QDomNodeList list = e . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Topic<69> <63> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i = 0 ; i < list . count ( ) ; i + + ) //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD>
{
QDomNode node = list . at ( i ) ; //node1 <DataType>
if ( node . isElement ( ) )
{
CDataType * dt = new CDataType ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
dt - > iDataType = node . toElement ( ) . attribute ( " value " ) . toInt ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ(1-<2D> <> ̬SOE<4F> <45> 2-<2D> <> <EFBFBD> <EFBFBD> SOE<4F> <45> 3-<2D> <> ̬SOE)
dt - > type = node . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
topic - > DataTypeList . push_back ( dt ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag2 = node . toElement ( ) . tagName ( ) ; //DataType<70> ڵ<EFBFBD>
if ( " DataType " = = strTag2 ) //<2F> ڶ<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DataType
{
QDomNodeList list2 = node . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> DataType<70> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i2 = 0 ; i2 < list2 . count ( ) ; i2 + + ) //<2F> <> <EFBFBD> <EFBFBD> SOE<4F> б <EFBFBD>
{
QDomNode node2 = list2 . at ( i2 ) ; //node2 <SOE>
if ( node2 . isElement ( ) )
{
CEventData * ed = new CEventData ( ) ; //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> ָ<EFBFBD> <D6B8>
ed - > triggerFlag = node2 . toElement ( ) . attribute ( " TriggerFlag " ) ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
ed - > DO = node2 . toElement ( ) . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
ed - > DA = node2 . toElement ( ) . attribute ( " DA " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed - > type = node2 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
if ( ! ed - > DO . isEmpty ( ) & & ! ed - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
ed - > strFullName = ed - > DO + " $ " + ed - > DA ;
else
ed - > strFullName = " not define " ;
dt - > SOEList . push_back ( ed ) ; //<2F> <> <EFBFBD> <EFBFBD> SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node2ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> SOE<4F> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DataType<70> ڵ<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> nodeΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //Topic<69> ڵ<EFBFBD> RTDATASOE <20> <> <EFBFBD> <EFBFBD>
else if ( " Topic " = = strTag & & " SOEDATA " = = topic - > strTopic )
{
QDomNodeList list = e . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Topic<69> <63> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i = 0 ; i < list . count ( ) ; i + + ) //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD>
{
QDomNode node = list . at ( i ) ; //node1 <DataType>
if ( node . isElement ( ) )
{
CEventData * ed = new CEventData ( ) ; //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> ָ<EFBFBD> <D6B8>
ed - > triggerFlag = node . toElement ( ) . attribute ( " name " ) ; //SOE<4F> <45> <EFBFBD> <EFBFBD>
ed - > DO = node . toElement ( ) . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
ed - > DA = node . toElement ( ) . attribute ( " DA " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed - > type = node . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
if ( ! ed - > DO . isEmpty ( ) & & ! ed - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
ed - > strFullName = ed - > DO + " $ " + ed - > DA ;
else
ed - > strFullName = " not define " ;
//cout << ed->triggerFlag.toAscii().data() << "=====" << ed->strFullName.toAscii().data() << endl;
cfg - > SOEList . push_back ( ed ) ;
}
}
}
}
if ( " ReportMap " = = strTag ) //zw<7A> <EFBFBD> 2023 - 8 - 15 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ľ<EFBFBD> <C4BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> XML ԭ<> <D4AD> <EFBFBD> <EFBFBD> RptLogCfg.iniȡ<69> <C8A1>
{
//cout << "ReportMap" << endl;
}
if ( " Topic " ! = strTag & & " ReportMap " ! = strTag ) //zw<7A> <EFBFBD> 2023 - 8 - 14 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֽڵ<D6BD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD>
{
if ( " WavePhasic " = = strTag )
{
cfg - > WavePhasicFlag . append ( e . attribute ( " Flag " ) ) ;
if ( cfg - > WavePhasicFlag = = " 1 " ) {
cfg - > WavePhasicA . append ( e . attribute ( " A " ) ) ;
cfg - > WavePhasicB . append ( e . attribute ( " B " ) ) ;
cfg - > WavePhasicC . append ( e . attribute ( " C " ) ) ;
}
}
if ( " UnitOfTime " = = strTag )
{
cfg - > UnitOfTimeUnit . append ( e . attribute ( " Unit " ) ) ;
}
if ( " ValueOfTime " = = strTag )
{
cfg - > ValueOfTimeUnit . append ( e . attribute ( " Unit " ) ) ;
}
if ( " ComtradeFile " = = strTag )
{
cfg - > WaveTimeFlag . append ( e . attribute ( " WaveTimeFlag " ) ) ;
//cout << xmlcfg->WaveTimeFlag.toAscii().data() << endl;
}
if ( " IED " = = strTag )
{
cfg - > IEDname . append ( e . attribute ( " name " ) ) ;
//cout << xmlcfg->IEDname.toAscii().data() << endl;
}
if ( " LDevice " = = strTag )
{
cfg - > LDevicePrefix . append ( e . attribute ( " Prefix " ) ) ;
//cout<<xmlcfg->LDevicePrefix.toAscii().data() <<endl;
}
}
} //<2F> ж<EFBFBD> nΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
n = n . nextSibling ( ) ; //<2F> <> ȡ<EFBFBD> <C8A1> һ <EFBFBD> <D2BB> <EFBFBD> ֵܽڵ<DCBD> (HISDATA <20> <> > RTDATA <20> <> > RTDATASOE)
} //while (!n.isNull) <20> <> <EFBFBD> <EFBFBD>
2025-01-16 16:17:01 +08:00
2025-02-14 16:44:38 +08:00
return true ;
2025-01-16 16:17:01 +08:00
}
# endif
2025-02-14 16:44:38 +08:00
//lnk2024-8-16 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͽ<EFBFBD> <CDBD> <EFBFBD>
bool ParseXMLConfig2 ( int xml_flag , XmlConfig * cfg , list < CTopic * > * ctopiclist , QString path ) //<2F> <> <EFBFBD> <EFBFBD> JiangSu_Config.xml<6D> <6C> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD>
2025-01-16 16:17:01 +08:00
{
//cfg = new XmlConfig();
//ע<> <D7A2> <EFBFBD> <EFBFBD> #7#<23> <> <EFBFBD> <EFBFBD> ͨ<EFBFBD> <CDA8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͨ<EFBFBD> <CDA8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 8421<32> 룬8-CP95 4-<2D> <> С ֵ 2-<2D> <> <EFBFBD> <EFBFBD> ֵ 1-ƽ <> <C6BD> ֵ
// <20> <> %2,50%<25> <> <EFBFBD> <EFBFBD> ͨ<EFBFBD> <CDA8> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͨ<EFBFBD> <CDA8> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݣ<EFBFBD> <DDA3> <EFBFBD> <EFBFBD> ÷<EFBFBD> Χ <EFBFBD> <CEA7> <EFBFBD> 룬<EFBFBD> <EBA3AC> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> ֱ<EFBFBD> ʾ г <CABE> <D0B3> <EFBFBD> <EFBFBD> ʼ <EFBFBD> ţ<EFBFBD> <C5A3> ڶ<EFBFBD> <DAB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> <> SEQ=<3D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> 8421<32> <31> 8-T 4-C 2-B 1-A
//ע<> <D7A2> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD> 11-ʵʱSOE<4F> ¼<EFBFBD>
QString strPhasic [ 4 ] = { " A " , " B " , " C " , " T " } ; //<2F> <> <EFBFBD> <EFBFBD> ö<EFBFBD> <C3B6> <20> <> <EFBFBD> <EFBFBD> (A-T)
2025-02-14 16:44:38 +08:00
QString strLine [ 4 ] = { " AB " , " BC " , " CA " , " T " } ; //lnk2024-8-14<31> <34> <EFBFBD> <EFBFBD> ö<EFBFBD> <C3B6> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (AB-T)
2025-01-16 16:17:01 +08:00
int nStart = 1 , nEnd = 1 ; //г <> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֹ<EFBFBD> <D6B9> <EFBFBD> <EFBFBD>
QString strValueTemp ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ַ<EFBFBD> <D6B7> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> %0,49% <20> <> %2,50%
//<2F> <> <EFBFBD> <EFBFBD> JiangSu_Config.xml<6D> <6C> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD>
//QString xml_dir = QString("D:/")+QString("PQD-9k/config/"); //<2F> <> <EFBFBD> <EFBFBD> ·<EFBFBD> <C2B7> <EFBFBD> <EFBFBD> ȡxmlʧ<6C> ܣ<EFBFBD> <DCA3> ˴ <EFBFBD> <CBB4> <EFBFBD> <EFBFBD> þ<EFBFBD> <C3BE> <EFBFBD> ·<EFBFBD> <C2B7> <EFBFBD> <EFBFBD> zl 2018-11-14 15:43:34
QDomDocument doc ; //<2F> ½<EFBFBD> QDomDocument<6E> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> XML<4D> ĵ<EFBFBD>
if ( " not define " = = path ) {
QString xml_dir = QString ( " ../ " ) + QString ( " etc/ " ) ; //Linux<75> µ<EFBFBD> <C2B5> <EFBFBD> ·<EFBFBD> <C2B7>
QFile file ( xml_dir + JSON_CONFIG_FN ) ;
if ( ! file . open ( QIODevice : : ReadOnly | QFile : : Text ) ) //<2F> <> ֻ<EFBFBD> <D6BB> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <CABD> <EFBFBD> <EFBFBD> xml
{
return 0 ;
}
if ( ! doc . setContent ( & file ) ) //<2F> <> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> doc<6F> <63>
{
file . close ( ) ;
return 0 ;
}
file . close ( ) ;
cout < < " not define xml " < < endl ;
}
else {
QString tmppath ;
tmppath . append ( " /FeProject/dat/ " ) . append ( path ) . append ( " .xml " ) ;
QFile file ( tmppath ) ;
if ( ! file . open ( QIODevice : : ReadOnly | QFile : : Text ) ) //<2F> <> ֻ<EFBFBD> <D6BB> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <CABD> <EFBFBD> <EFBFBD> xml
{
return 0 ;
}
if ( ! doc . setContent ( & file ) ) //<2F> <> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> doc<6F> <63>
{
file . close ( ) ;
return 0 ;
}
file . close ( ) ;
cout < < " define xml " < < endl ;
}
//<2F> <> xml<6D> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> doc<6F> <63>
QDomNode firstNode = doc . firstChild ( ) ; //<2F> <> <EFBFBD> ڵ<EFBFBD> "JSConfigTemplate"
QDomElement docElem = doc . documentElement ( ) ; //<2F> <> <EFBFBD> ظ<EFBFBD> <D8B8> ڵ<EFBFBD> Ԫ<EFBFBD> <D4AA>
QDomNode n = docElem . firstChild ( ) ; //<2F> <> <EFBFBD> <EFBFBD> doc<6F> ĵ<EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> ڵ㣬<DAB5> <E3A3AC> "Topic"
while ( ! n . isNull ( ) ) //<2F> <> <EFBFBD> <EFBFBD> Topic<69> ڵ㲻Ϊ<E3B2BB> <CEAA>
{
if ( n . isElement ( ) )
{
QDomElement e = n . toElement ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> ΪԪ<CEAA> <D4AA>
QString strTag = e . tagName ( ) ; //Topic<69> ڵ<EFBFBD>
if ( " Topic " = = strTag ) //zw<7A> <EFBFBD> 2023 - 8 - 14 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> topic<69> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ<EFBFBD> <DAB5> Ľ<EFBFBD> <C4BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
CTopic * topic = new CTopic ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
topic - > strTopic = e . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ctopiclist - > push_back ( topic ) ; //<2F> <> <EFBFBD> <EFBFBD> Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( " Topic " = = strTag & & ( " HISDATA " = = topic - > strTopic | | " RTDATA " = = topic - > strTopic ) ) //<2F> ٶ<EFBFBD> ȡTopic<69> <63> HISDATA<54> <41> RTDATA<54> <41> <EFBFBD> <EFBFBD> ---------------------------------------------------
{
QDomNodeList list = e . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Topic<69> <63> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i = 0 ; i < list . count ( ) ; i + + ) //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD>
{
QDomNode node = list . at ( i ) ; //node1 <DataType>
if ( node . isElement ( ) )
{
CDataType * dt = new CDataType ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
dt - > iDataType = node . toElement ( ) . attribute ( " value " ) . toInt ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ(1-ʵʱ/<2F> <> ʷ<EFBFBD> <CAB7> ̬<EFBFBD> <CCAC> 2-ʵʱ/<2F> <> ʷ<EFBFBD> <CAB7> <EFBFBD> 䡢3-ʵʱ/<2F> <> ʷ<EFBFBD> <CAB7> ̬<EFBFBD> <CCAC> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̬<EFBFBD> <CCAC> 5-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䡢6-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̬)
dt - > type = node . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
dt - > BaseFlag0 = 0 ;
dt - > BaseFlag1 = 0 ;
topic - > DataTypeList . push_back ( dt ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag2 = node . toElement ( ) . tagName ( ) ; //DataType<70> ڵ<EFBFBD>
if ( " DataType " = = strTag2 ) //<2F> ڶ<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DataType
{
QDomNodeList list2 = node . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> DataType<70> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i2 = 0 ; i2 < list2 . count ( ) ; i2 + + ) //<2F> <> <EFBFBD> <EFBFBD> Monitor<6F> б <EFBFBD>
{
QDomNode node2 = list2 . at ( i2 ) ; //node2 <Monitor>
if ( node2 . isElement ( ) )
{
CMonitor * mt = new CMonitor ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
mt - > strMonitor = node2 . toElement ( ) . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ע<> <D7A2> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> Ҫ<EFBFBD> <D2AA> Rpt<70> <74> <EFBFBD> <EFBFBD> <EFBFBD> л<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
mt - > type = node2 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
dt - > MonitorList . push_back ( mt ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag3 = node2 . toElement ( ) . tagName ( ) ; //Monitor<6F> ڵ<EFBFBD>
if ( " Monitor " = = strTag3 ) //<2F> ۶<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Monitor
{
QDomNodeList list3 = node2 . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Monitor<6F> <72> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i3 = 0 ; i3 < list3 . count ( ) ; i3 + + ) //<2F> <> <EFBFBD> <EFBFBD> Item<65> б <EFBFBD>
{
QDomNode node3 = list3 . at ( i3 ) ; //node3 <Item>
if ( node3 . isElement ( ) )
{
CItem * it = new CItem ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
it - > strItemName = node3 . toElement ( ) . attribute ( " name " ) ; //FLAG<41> <47> TIME<4D> <45> V<EFBFBD> <56> I<EFBFBD> <49> PQ
it - > type = node3 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( " FLAG " = = it - > strItemName ) //<2F> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> (1<> <31> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <DEB3> <EFBFBD> 0<EFBFBD> <30> <EFBFBD> <EFBFBD> <DEB3> <EFBFBD> Ĭ<EFBFBD> <C4AC> <EFBFBD> <EFBFBD> )
it - > strItemValue = node3 . toElement ( ) . attribute ( " value " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
mt - > ItemList . push_back ( it ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag4 = node3 . toElement ( ) . tagName ( ) ; //Item<65> ڵ<EFBFBD>
if ( " Item " = = strTag4 ) //<2F> ܶ<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Item
{
QDomNodeList list4 = node3 . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Item<65> <6D> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i4 = 0 ; i4 < list4 . count ( ) ; i4 + + ) //<2F> <> <EFBFBD> <EFBFBD> Sequence<63> б <EFBFBD>
{
QDomNode node4 = list4 . at ( i4 ) ; //node4 <Sequence>
if ( node4 . isElement ( ) )
{
QString strPhase = node4 . toElement ( ) . attribute ( " value " ) ; //<2F> <> <EFBFBD> <EFBFBD>
2025-02-14 16:44:38 +08:00
if ( ( ! xml_flag | | " V " ! = it - > strItemName ) & & " 7 " = = strPhase ) //<2F> <> -<2D> ٶ<EFBFBD> ȡABC<42> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> //lnk2024-8-14 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD>
2025-01-16 16:17:01 +08:00
{
for ( int n = 0 ; n < 3 ; n + + ) //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (ABC<42> <43> <EFBFBD> <EFBFBD> )
{
CSequence * sq = new CSequence ( ) ; //ABC<42> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
sq - > strSValue = node4 . toElement ( ) . attribute ( " value " ) ; //<2F> <> <EFBFBD> <EFBFBD> ֵ(7<> <37> ABC<42> <43> <EFBFBD> ࡢ8<E0A1A2> <38> T<EFBFBD> <54> )
sq - > type = node4 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
sq - > strSeq = strPhasic [ n ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <20> <> <EFBFBD> <EFBFBD> A<EFBFBD> <41> B<EFBFBD> <42> C
it - > SequenceList . push_back ( sq ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag5 = node4 . toElement ( ) . tagName ( ) ; //Sequence<63> ڵ<EFBFBD>
if ( " Sequence " = = strTag5 ) //<2F> ݶ<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> Sequence
{
QDomNodeList list5 = node4 . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Sequence<63> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i5 = 0 ; i5 < list5 . count ( ) ; i5 + + ) //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> Value<75> б <EFBFBD>
{
QDomNode node5 = list5 . at ( i5 ) ; //node5 <Value>
if ( node5 . isElement ( ) )
{
QDomElement e_Value = node5 . toElement ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> ΪԪ<CEAA> <D4AA>
QString strTag6 = e_Value . tagName ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Sequence<63> <65> <20> <> <EFBFBD> <EFBFBD> DataValue<75> ӽڵ<D3BD>
if ( " Value " = = strTag6 ) //<2F> <EFBFBD> ȡABC<42> <43> <EFBFBD> <EFBFBD> Value
{
QString strDVName = e_Value . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strDAName = e_Value . attribute ( " DA " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2025-02-21 16:24:41 +08:00
if ( strDAName . indexOf ( " l_phs* " ) > = 0 ) { //DA<44> <41> <EFBFBD> <EFBFBD> "l_phs*"//lnk20250221<32> <31> <EFBFBD> ν <EFBFBD> <CEBD> <EFBFBD> Ҳ<EFBFBD> <D2B2> <EFBFBD> Խ<EFBFBD> <D4BD> <EFBFBD> PPV
strDAName = strDAName . replace ( " l_phs " , " phs " ) ;
strDAName = strDAName . replace ( " * " , strLine [ n ] ) ;
2025-02-27 16:28:04 +08:00
//qDebug() << "strDAName:" << strDAName << endl;//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2025-02-21 16:24:41 +08:00
} //<2F> <> DA<44> <41> <EFBFBD> <EFBFBD> *<2A> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (AB<41> <42> BC<42> <43> CA) <20> <> <EFBFBD> <EFBFBD> phsAB$cVal$mag$f
else if ( strDAName . indexOf ( " phs* " ) > = 0 ) { //DA<44> <41> <EFBFBD> <EFBFBD> "phs*"
strDAName = strDAName . replace ( " * " , sq - > strSeq ) ; } //<2F> <> DA<44> <41> <EFBFBD> <EFBFBD> *<2A> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (A<> <41> B<EFBFBD> <42> C) <20> <> <EFBFBD> <EFBFBD> phsA$cVal$mag$f
//<2F> <> -<2D> <> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(ABC<42> <43> <EFBFBD> <EFBFBD> )-------------------------------------
2025-01-16 16:17:01 +08:00
if ( strDVName . indexOf ( " % " ) > = 0 & & strDAName . indexOf ( " %- " ) > = 0 ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> % <20> <> DA<44> <41> <EFBFBD> <EFBFBD> %- <20> <> <EFBFBD> <EFBFBD> V_%0,49%_MAX
{
QStringList strHarm1 = strDVName . split ( ' % ' ) ;
if ( strHarm1 . count ( ) > = 2 ) //<2F> <> <EFBFBD> <EFBFBD> V_ | 0,49 | _MAX
{
strValueTemp = " % " + strHarm1 . at ( 1 ) + " % " ; //<2F> <> <EFBFBD> <EFBFBD> %0,49%
QStringList strHarm2 = strHarm1 . at ( 1 ) . split ( ' , ' ) ; //<2F> <> <EFBFBD> <EFBFBD> 0,49
if ( strHarm2 . count ( ) > = 2 )
{
nStart = ( strHarm2 . at ( 0 ) ) . toInt ( ) ; //г <> <D0B3> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 0
nEnd = ( strHarm2 . at ( 1 ) ) . toInt ( ) ; //г <> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 49
}
}
QString substring = strDAName . mid ( strDAName . indexOf ( " [ " ) + 1 , strDAName . indexOf ( " ] " ) - strDAName . indexOf ( " [ " ) - 1 ) ;
QStringList strDAList1 = substring . split ( ' - ' ) ;
int strDAoffset = ( strDAList1 . at ( 1 ) ) . toInt ( ) ;
for ( int i = nStart ; i < = nEnd ; i + + ) //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
QString strDVNameTemp = strDVName ; //<2F> <> ʱ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strDANameTemp = strDAName ; //<2F> <> ʱ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
CDataValue * dv1 = new CDataValue ( ) ; //ABC<42> <43> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> ָ<EFBFBD> <D6B8>
dv1 - > type = e_Value . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( e_Value . attributes ( ) . contains ( " Coefficient " ) ) {
dv1 - > strCoefficient = e_Value . attribute ( " Coefficient " ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv1 - > fCoefficient = e_Value . attribute ( " Coefficient " ) . toFloat ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
}
dv1 - > strOffset = e_Value . attribute ( " Offset " ) ; //<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ƫ<EFBFBD> <C6AB> <EFBFBD> <EFBFBD> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv1 - > iOffset = e_Value . attribute ( " Offset " ) . toInt ( ) ; //<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ƫ<EFBFBD> <C6AB> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> ) = <20> <> <EFBFBD> յ<EFBFBD> <D5B5> <EFBFBD> Ժ<EFBFBD> <D4BA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> - װ<> <D7B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʵ<EFBFBD> <CAB5> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD>
dv1 - > DO = e_Value . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
dv1 - > strName = strDVNameTemp . replace ( strValueTemp , QString : : number ( i + e_Value . attribute ( " Offset " ) . toInt ( ) ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> %0,49%<25> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> SI_%0,49%<25> <> ΪSI_1
dv1 - > DA = strDANameTemp . replace ( substring , QString : : number ( i - strDAoffset ) ) ; //<2F> <> DA<44> <41> %-2<> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> phs*Har[1]$mag$f
//cout << dv1->strName.toAscii().data() << "--" << dv1->DA.toAscii().data() << " (" << dv1->iOffset << endl;
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( e_Value . attributes ( ) . contains ( " BaseFlag " ) )
{
dv1 - > BaseFlag = e_Value . attribute ( " BaseFlag " ) ;
if ( dv1 - > BaseFlag = = " 1 " ) {
dt - > BaseFlag1 + + ;
}
else {
dt - > BaseFlag0 + + ;
}
}
else
{
dt - > BaseFlag0 + + ;
dv1 - > BaseFlag = " 0 " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitUp " ) )
{
dv1 - > LimitUp = e_Value . attribute ( " LimitUp " ) ;
}
else
{
dv1 - > LimitUp = " not define " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitDown " ) )
{
dv1 - > LimitDown = e_Value . attribute ( " LimitDown " ) ;
}
else
{
dv1 - > LimitDown = " not define " ;
}
if ( ! dv1 - > DO . isEmpty ( ) & & ! dv1 - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
dv1 - > strFullName = dv1 - > DO + " $ " + dv1 - > DA ;
else
dv1 - > strFullName = " not define " ;
sq - > DataValueList . push_back ( dv1 ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (ABC<42> <43> <EFBFBD> <EFBFBD> )
} //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
//continue; //ABC<42> <43> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɺ<C9BA> <F3A3ACBC> <EFBFBD> <EFBFBD> <EFBFBD> ȡ<EFBFBD> <C8A1> һ <EFBFBD> ڵ<EFBFBD>
}
else //<2F> <> -<2D> ڷ<EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(ABC<42> <43> <EFBFBD> <EFBFBD> )-------------------------------
{
CDataValue * dv2 = new CDataValue ( ) ; //ABC<42> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> ָ<EFBFBD> <D6B8>
dv2 - > strName = e_Value . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > type = e_Value . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( e_Value . attributes ( ) . contains ( " Coefficient " ) ) {
dv2 - > strCoefficient = e_Value . attribute ( " Coefficient " ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv2 - > fCoefficient = e_Value . attribute ( " Coefficient " ) . toFloat ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
}
dv2 - > DO = e_Value . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > DA = strDAName ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( e_Value . attributes ( ) . contains ( " BaseFlag " ) )
{
dv2 - > BaseFlag = e_Value . attribute ( " BaseFlag " ) ;
if ( dv2 - > BaseFlag = = " 1 " ) {
dt - > BaseFlag1 + + ;
}
else {
dt - > BaseFlag0 + + ;
}
}
else
{
dt - > BaseFlag0 + + ;
dv2 - > BaseFlag = " 0 " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitUp " ) )
{
dv2 - > LimitUp = e_Value . attribute ( " LimitUp " ) ;
}
else
{
dv2 - > LimitUp = " not define " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitDown " ) )
{
dv2 - > LimitDown = e_Value . attribute ( " LimitDown " ) ;
}
else
{
dv2 - > LimitDown = " not define " ;
}
if ( ! e_Value . attribute ( " PltFlag " ) . isEmpty ( ) & & e_Value . attribute ( " PltFlag " ) = = " True " ) //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
dv2 - > bPlt = true ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
else
dv2 - > bPlt = false ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( ! dv2 - > DO . isEmpty ( ) & & ! dv2 - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
dv2 - > strFullName = dv2 - > DO + " $ " + dv2 - > DA ;
else
dv2 - > strFullName = " not define " ;
sq - > DataValueList . push_back ( dv2 ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (ABC<42> <43> <EFBFBD> <EFBFBD> )
}
} //<2F> <> ȡABC<42> <43> <EFBFBD> <EFBFBD> Value <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node5ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> Value<75> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
}
} //<2F> <> -<2D> ٶ<EFBFBD> ȡABC<42> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2025-02-14 16:44:38 +08:00
if ( xml_flag & & " V " = = it - > strItemName & & " 112 " = = strPhase ) //lnk2024-8-13<31> <33> <EFBFBD> <EFBFBD>
{
for ( int n = 0 ; n < 3 ; n + + ) //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> (AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> )
{
CSequence * sq = new CSequence ( ) ; //AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
sq - > strSValue = node4 . toElement ( ) . attribute ( " value " ) ; //<2F> <> <EFBFBD> <EFBFBD> ֵ(7<> <37> ABC<42> <43> <EFBFBD> ࡢ112:<3A> <> AB,BC,CA 8<> <38> T<EFBFBD> <54> )
sq - > type = node4 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
sq - > strSeq = strLine [ n ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <20> <> <EFBFBD> <EFBFBD> AB<41> <42> BC<42> <43> CA
it - > SequenceList . push_back ( sq ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag5 = node4 . toElement ( ) . tagName ( ) ; //Sequence<63> ڵ<EFBFBD>
if ( " Sequence " = = strTag5 ) //<2F> ݶ<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> Sequence
{
QDomNodeList list5 = node4 . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Sequence<63> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i5 = 0 ; i5 < list5 . count ( ) ; i5 + + ) //<2F> <> <EFBFBD> <EFBFBD> AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> Value<75> б <EFBFBD>
{
QDomNode node5 = list5 . at ( i5 ) ; //node5 <Value>
if ( node5 . isElement ( ) )
{
QDomElement e_Value = node5 . toElement ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> ΪԪ<CEAA> <D4AA>
QString strTag6 = e_Value . tagName ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Sequence<63> <65> <20> <> <EFBFBD> <EFBFBD> DataValue<75> ӽڵ<D3BD>
if ( " Value " = = strTag6 ) //<2F> <EFBFBD> ȡAB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> Value
{
QString strDVName = e_Value . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strDAName = e_Value . attribute ( " DA " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( strDAName . indexOf ( " phs* " ) > = 0 ) //DA<44> <41> <EFBFBD> <EFBFBD> "phs*"
strDAName = strDAName . replace ( " * " , sq - > strSeq ) ; //<2F> <> DA<44> <41> <EFBFBD> <EFBFBD> *<2A> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (AB<41> <42> BC<42> <43> CA) <20> <> <EFBFBD> <EFBFBD> phsAB$cVal$mag$f
//<2F> <> -<2D> <> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> )-------------------------------------
if ( strDVName . indexOf ( " % " ) > = 0 & & strDAName . indexOf ( " %- " ) > = 0 ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> % <20> <> DA<44> <41> <EFBFBD> <EFBFBD> %- <20> <> <EFBFBD> <EFBFBD> V_%0,49%_MAX
{
QStringList strHarm1 = strDVName . split ( ' % ' ) ;
if ( strHarm1 . count ( ) > = 2 ) //<2F> <> <EFBFBD> <EFBFBD> %0,49%
{
strValueTemp = " % " + strHarm1 . at ( 1 ) + " % " ; //<2F> <> <EFBFBD> <EFBFBD> %0,49%
QStringList strHarm2 = strHarm1 . at ( 1 ) . split ( ' , ' ) ; //<2F> <> <EFBFBD> <EFBFBD> 0,49
if ( strHarm2 . count ( ) > = 2 )
{
nStart = ( strHarm2 . at ( 0 ) ) . toInt ( ) ; //г <> <D0B3> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 0
nEnd = ( strHarm2 . at ( 1 ) ) . toInt ( ) ; //г <> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> 49
}
}
QString substring = strDAName . mid ( strDAName . indexOf ( " [ " ) + 1 , strDAName . indexOf ( " ] " ) - strDAName . indexOf ( " [ " ) - 1 ) ;
QStringList strDAList1 = substring . split ( ' - ' ) ;
int strDAoffset = ( strDAList1 . at ( 1 ) ) . toInt ( ) ;
for ( int i = nStart ; i < = nEnd ; i + + ) //<2F> <> <EFBFBD> <EFBFBD> AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
QString strDVNameTemp = strDVName ; //<2F> <> ʱ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strDANameTemp = strDAName ; //<2F> <> ʱ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
CDataValue * dv1 = new CDataValue ( ) ; //AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> ָ<EFBFBD> <D6B8>
dv1 - > type = e_Value . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( e_Value . attributes ( ) . contains ( " Coefficient " ) ) {
dv1 - > strCoefficient = e_Value . attribute ( " Coefficient " ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv1 - > fCoefficient = e_Value . attribute ( " Coefficient " ) . toFloat ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
}
dv1 - > strOffset = e_Value . attribute ( " Offset " ) ; //<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ƫ<EFBFBD> <C6AB> <EFBFBD> <EFBFBD> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv1 - > iOffset = e_Value . attribute ( " Offset " ) . toInt ( ) ; //<2F> <> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> ƫ<EFBFBD> <C6AB> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> ) = <20> <> <EFBFBD> յ<EFBFBD> <D5B5> <EFBFBD> Ժ<EFBFBD> <D4BA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> - װ<> <D7B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʵ<EFBFBD> <CAB5> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD>
dv1 - > DO = e_Value . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
std : : cout < < " !!!!!!!!!!!!!ppv!!!!!!!!!!!!!!!!!!!!!!!!!!ppv!!!!!!!!!!!!!!!!!!!!!! " < < std : : endl ;
std : : cout < < dv1 - > DO . toUtf8 ( ) . constData ( ) < < std : : endl ; //lnk <20> <> <EFBFBD> <EFBFBD> ppv
std : : cout < < " !!!!!!!!!!!!!ppv!!!!!!!!!!!!!!!!!!!!!!!!!!ppv!!!!!!!!!!!!!!!!!!!!!! " < < std : : endl ;
dv1 - > strName = strDVNameTemp . replace ( strValueTemp , QString : : number ( i + e_Value . attribute ( " Offset " ) . toInt ( ) ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> %0,49%<25> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> SI_%0,49%<25> <> ΪSI_1
dv1 - > DA = strDANameTemp . replace ( substring , QString : : number ( i - strDAoffset ) ) ; //<2F> <> DA<44> <41> %-2<> 滻Ϊ<E6BBBB> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> phs*Har[1]$mag$f
//cout << dv1->strName.toAscii().data() << "--" << dv1->DA.toAscii().data() << " (" << dv1->iOffset << endl;
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( e_Value . attributes ( ) . contains ( " BaseFlag " ) )
{
dv1 - > BaseFlag = e_Value . attribute ( " BaseFlag " ) ;
if ( dv1 - > BaseFlag = = " 1 " ) {
dt - > BaseFlag1 + + ;
}
else {
dt - > BaseFlag0 + + ;
}
}
else
{
dt - > BaseFlag0 + + ;
dv1 - > BaseFlag = " 0 " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitUp " ) )
{
dv1 - > LimitUp = e_Value . attribute ( " LimitUp " ) ;
}
else
{
dv1 - > LimitUp = " not define " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitDown " ) )
{
dv1 - > LimitDown = e_Value . attribute ( " LimitDown " ) ;
}
else
{
dv1 - > LimitDown = " not define " ;
}
if ( ! dv1 - > DO . isEmpty ( ) & & ! dv1 - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
dv1 - > strFullName = dv1 - > DO + " $ " + dv1 - > DA ;
else
dv1 - > strFullName = " not define " ;
sq - > DataValueList . push_back ( dv1 ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> )
} //<2F> <> <EFBFBD> <EFBFBD> ABC<42> <43> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
//continue; //AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɺ<C9BA> <F3A3ACBC> <EFBFBD> <EFBFBD> <EFBFBD> ȡ<EFBFBD> <C8A1> һ <EFBFBD> ڵ<EFBFBD>
}
else //<2F> <> -<2D> ڷ<EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> )-------------------------------
{
CDataValue * dv2 = new CDataValue ( ) ; //ABC<42> <43> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> ָ<EFBFBD> <D6B8>
dv2 - > strName = e_Value . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > type = e_Value . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( e_Value . attributes ( ) . contains ( " Coefficient " ) ) {
dv2 - > strCoefficient = e_Value . attribute ( " Coefficient " ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv2 - > fCoefficient = e_Value . attribute ( " Coefficient " ) . toFloat ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
}
dv2 - > DO = e_Value . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > DA = strDAName ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( e_Value . attributes ( ) . contains ( " BaseFlag " ) )
{
dv2 - > BaseFlag = e_Value . attribute ( " BaseFlag " ) ;
if ( dv2 - > BaseFlag = = " 1 " ) {
dt - > BaseFlag1 + + ;
}
else {
dt - > BaseFlag0 + + ;
}
}
else
{
dt - > BaseFlag0 + + ;
dv2 - > BaseFlag = " 0 " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitUp " ) )
{
dv2 - > LimitUp = e_Value . attribute ( " LimitUp " ) ;
}
else
{
dv2 - > LimitUp = " not define " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitDown " ) )
{
dv2 - > LimitDown = e_Value . attribute ( " LimitDown " ) ;
}
else
{
dv2 - > LimitDown = " not define " ;
}
if ( ! e_Value . attribute ( " PltFlag " ) . isEmpty ( ) & & e_Value . attribute ( " PltFlag " ) = = " True " ) //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
dv2 - > bPlt = true ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
else
dv2 - > bPlt = false ; //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <20> <> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( ! dv2 - > DO . isEmpty ( ) & & ! dv2 - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
dv2 - > strFullName = dv2 - > DO + " $ " + dv2 - > DA ;
else
dv2 - > strFullName = " not define " ;
sq - > DataValueList . push_back ( dv2 ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> )
}
} //<2F> <> ȡAB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> Value <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node5ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> Value<75> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> AB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
}
} //<2F> <> -<2D> ٶ<EFBFBD> ȡAB<41> <42> BC<42> <43> CA<43> <41> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
2025-01-16 16:17:01 +08:00
if ( " 8 " = = strPhase ) //<2F> <> -<2D> ڶ<EFBFBD> ȡT<C8A1> <54> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
CSequence * sq = new CSequence ( ) ; //T<> <54> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
sq - > strSValue = node4 . toElement ( ) . attribute ( " value " ) ; //<2F> <> <EFBFBD> <EFBFBD> ֵ
sq - > type = node4 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
sq - > strSeq = strPhasic [ 3 ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
it - > SequenceList . push_back ( sq ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (T<> <54> )
QDomNodeList list5 = node4 . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Sequence<63> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i5 = 0 ; i5 < list5 . count ( ) ; i5 + + ) //<2F> <> <EFBFBD> <EFBFBD> T<> <54> Value<75> б <EFBFBD>
{
QDomNode node5 = list5 . at ( i5 ) ; //node5 <Value>
if ( node5 . isElement ( ) )
{
QDomElement e_Value = node5 . toElement ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> ΪԪ<CEAA> <D4AA>
QString strTag6 = e_Value . tagName ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Sequence<63> <65> <20> <> <EFBFBD> <EFBFBD> DataValue<75> ӽڵ<D3BD>
if ( " Value " = = strTag6 ) //<2F> <EFBFBD> ȡT<C8A1> <54> Value
{
//<2F> <> -<2D> <> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(T<> <54> ) ע<> <D7A2> T<EFBFBD> <54> û<EFBFBD> <C3BB> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//<2F> <> -<2D> ڷ<EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> ȡ(T<> <54> )
CDataValue * dv2 = new CDataValue ( ) ; //T<> <54> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> ָ<EFBFBD> <D6B8>
dv2 - > strName = e_Value . attribute ( " name " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > type = e_Value . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
if ( e_Value . attributes ( ) . contains ( " Coefficient " ) ) {
dv2 - > strCoefficient = e_Value . attribute ( " Coefficient " ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> ַ<EFBFBD> <D6B7> <EFBFBD> )
dv2 - > fCoefficient = e_Value . attribute ( " Coefficient " ) . toFloat ( ) ; //<2F> <> <EFBFBD> <EFBFBD> ϵ<EFBFBD> <CFB5> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
}
dv2 - > DO = e_Value . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
dv2 - > DA = e_Value . attribute ( " DA " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//zw<7A> <EFBFBD> 2023 - 8 - 14 Ϊ<> <CEAA> ʷ<EFBFBD> <CAB7> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> Value<75> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> -BaseFlag LimitUp LimitDown
if ( e_Value . attributes ( ) . contains ( " BaseFlag " ) )
{
dv2 - > BaseFlag = e_Value . attribute ( " BaseFlag " ) ;
if ( dv2 - > BaseFlag = = " 1 " ) {
dt - > BaseFlag1 + + ;
}
else {
dt - > BaseFlag0 + + ;
}
}
else
{
dt - > BaseFlag0 + + ;
dv2 - > BaseFlag = " 0 " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitUp " ) )
{
dv2 - > LimitUp = e_Value . attribute ( " LimitUp " ) ;
}
else
{
dv2 - > LimitUp = " not define " ;
}
if ( e_Value . attributes ( ) . contains ( " LimitDown " ) )
{
dv2 - > LimitDown = e_Value . attribute ( " LimitDown " ) ;
}
else
{
dv2 - > LimitDown = " not define " ;
}
if ( ! dv2 - > DO . isEmpty ( ) & & ! dv2 - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
dv2 - > strFullName = dv2 - > DO + " $ " + dv2 - > DA ;
else
dv2 - > strFullName = " not define " ;
sq - > DataValueList . push_back ( dv2 ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> (ABC<42> <43> <EFBFBD> <EFBFBD> )
} //<2F> <> ȡT<C8A1> <54> Value <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node5ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> T<EFBFBD> <54> Value<75> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> -<2D> ڶ<EFBFBD> ȡT<C8A1> <54> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node4ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> Sequence<63> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Item <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node3ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> Item<65> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡMonitor<6F> ڵ<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node2ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> Monitor<6F> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DataType <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> nodeΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡTopic<69> ڵ<EFBFBD> HISDATA<54> <41> RTDATA <20> <> <EFBFBD> <EFBFBD>
else if ( " Topic " = = strTag & & " RTDATASOE " = = topic - > strTopic ) //SOE<4F> ¼<EFBFBD> -------------------------------------------------------
{
QDomNodeList list = e . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Topic<69> <63> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i = 0 ; i < list . count ( ) ; i + + ) //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD>
{
QDomNode node = list . at ( i ) ; //node1 <DataType>
if ( node . isElement ( ) )
{
CDataType * dt = new CDataType ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8>
dt - > iDataType = node . toElement ( ) . attribute ( " value " ) . toInt ( ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ(1-<2D> <> ̬SOE<4F> <45> 2-<2D> <> <EFBFBD> <EFBFBD> SOE<4F> <45> 3-<2D> <> ̬SOE)
dt - > type = node . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD>
topic - > DataTypeList . push_back ( dt ) ; //<2F> <> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString strTag2 = node . toElement ( ) . tagName ( ) ; //DataType<70> ڵ<EFBFBD>
if ( " DataType " = = strTag2 ) //<2F> ڶ<EFBFBD> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DataType
{
QDomNodeList list2 = node . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> DataType<70> <65> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i2 = 0 ; i2 < list2 . count ( ) ; i2 + + ) //<2F> <> <EFBFBD> <EFBFBD> SOE<4F> б <EFBFBD>
{
QDomNode node2 = list2 . at ( i2 ) ; //node2 <SOE>
if ( node2 . isElement ( ) )
{
CEventData * ed = new CEventData ( ) ; //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> ָ<EFBFBD> <D6B8>
ed - > triggerFlag = node2 . toElement ( ) . attribute ( " TriggerFlag " ) ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
ed - > DO = node2 . toElement ( ) . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
ed - > DA = node2 . toElement ( ) . attribute ( " DA " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed - > type = node2 . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
if ( ! ed - > DO . isEmpty ( ) & & ! ed - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
ed - > strFullName = ed - > DO + " $ " + ed - > DA ;
else
ed - > strFullName = " not define " ;
dt - > SOEList . push_back ( ed ) ; //<2F> <> <EFBFBD> <EFBFBD> SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> node2ΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> SOE<4F> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> ȡ<EFBFBD> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> DataType<70> ڵ<EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //<2F> ж<EFBFBD> nodeΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD> <20> <> <EFBFBD> <EFBFBD>
} //Topic<69> ڵ<EFBFBD> RTDATASOE <20> <> <EFBFBD> <EFBFBD>
else if ( " Topic " = = strTag & & " SOEDATA " = = topic - > strTopic )
{
QDomNodeList list = e . childNodes ( ) ; //<2F> <> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> Topic<69> <63> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> <DAB5> <EFBFBD> <EFBFBD> б <EFBFBD>
for ( int i = 0 ; i < list . count ( ) ; i + + ) //<2F> <> <EFBFBD> <EFBFBD> DataType<70> б <EFBFBD>
{
QDomNode node = list . at ( i ) ; //node1 <DataType>
if ( node . isElement ( ) )
{
CEventData * ed = new CEventData ( ) ; //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> ָ<EFBFBD> <D6B8>
ed - > triggerFlag = node . toElement ( ) . attribute ( " name " ) ; //SOE<4F> <45> <EFBFBD> <EFBFBD>
ed - > DO = node . toElement ( ) . attribute ( " DO " ) ; //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD>
ed - > DA = node . toElement ( ) . attribute ( " DA " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
ed - > type = node . toElement ( ) . attribute ( " type " ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ȼ<EFBFBD> type<70> <65> <EFBFBD> ͣ<EFBFBD> 0-DataType 1-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 2-<2D> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD> 3-<2D> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD> 4-<2D> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 5-<2D> <> λ 6-ֵ<> <D6B5> <EFBFBD> <EFBFBD> 9-ʵʱSOE<4F> ¼<EFBFBD>
if ( ! ed - > DO . isEmpty ( ) & & ! ed - > DA . isEmpty ( ) ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
ed - > strFullName = ed - > DO + " $ " + ed - > DA ;
else
ed - > strFullName = " not define " ;
//cout << ed->triggerFlag.toAscii().data() << "=====" << ed->strFullName.toAscii().data() << endl;
cfg - > SOEList . push_back ( ed ) ;
}
}
}
}
if ( " ReportMap " = = strTag ) //zw<7A> <EFBFBD> 2023 - 8 - 15 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ľ<EFBFBD> <C4BD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> XML ԭ<> <D4AD> <EFBFBD> <EFBFBD> RptLogCfg.iniȡ<69> <C8A1>
{
//cout << "ReportMap" << endl;
}
if ( " Topic " ! = strTag & & " ReportMap " ! = strTag ) //zw<7A> <EFBFBD> 2023 - 8 - 14 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֽڵ<D6BD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD>
{
if ( " WavePhasic " = = strTag )
{
cfg - > WavePhasicFlag . append ( e . attribute ( " Flag " ) ) ;
if ( cfg - > WavePhasicFlag = = " 1 " ) {
cfg - > WavePhasicA . append ( e . attribute ( " A " ) ) ;
cfg - > WavePhasicB . append ( e . attribute ( " B " ) ) ;
cfg - > WavePhasicC . append ( e . attribute ( " C " ) ) ;
}
}
if ( " UnitOfTime " = = strTag )
{
cfg - > UnitOfTimeUnit . append ( e . attribute ( " Unit " ) ) ;
}
if ( " ValueOfTime " = = strTag )
{
cfg - > ValueOfTimeUnit . append ( e . attribute ( " Unit " ) ) ;
}
if ( " ComtradeFile " = = strTag )
{
cfg - > WaveTimeFlag . append ( e . attribute ( " WaveTimeFlag " ) ) ;
//cout << xmlcfg->WaveTimeFlag.toAscii().data() << endl;
}
if ( " IED " = = strTag )
{
cfg - > IEDname . append ( e . attribute ( " name " ) ) ;
//cout << xmlcfg->IEDname.toAscii().data() << endl;
}
if ( " LDevice " = = strTag )
{
cfg - > LDevicePrefix . append ( e . attribute ( " Prefix " ) ) ;
//cout<<xmlcfg->LDevicePrefix.toAscii().data() <<endl;
}
}
} //<2F> ж<EFBFBD> nΪԪ<CEAA> <D4AA> <20> <> <EFBFBD> <EFBFBD>
n = n . nextSibling ( ) ; //<2F> <> ȡ<EFBFBD> <C8A1> һ <EFBFBD> <D2BB> <EFBFBD> ֵܽڵ<DCBD> (HISDATA <20> <> > RTDATA <20> <> > RTDATASOE)
} //while (!n.isNull) <20> <> <EFBFBD> <EFBFBD>
return true ;
}
/// <summary>
/// czy 2023-11-23 <20> <> <EFBFBD> <EFBFBD> json<6F> <6E> װ<EFBFBD> ü<EFBFBD> <C3BC> <EFBFBD> Ƶ,<2C> <> ӡǰ̨
/// </summary>
/// <param name="flag">1<> <31> ,2<> <32> ,3<> <33> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> interval</param>
/// <param name="interval">1<> <31> ,2<> <32> ,3<> <33> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> interval</param>
void print_interval ( int flag , int interval ) {
if ( flag = = 1 ) {
cout < < " interval!!dont't contain mp_id ,interval=1 " < < endl ;
}
else if ( flag = = 2 ) {
cout < < " interval!!contain mp_id but interval=0, set interval=1 " < < endl ;
}
else
{
cout < < " interval!!contain mp_id , find interval= " < < interval < < endl ;
}
}
2025-02-14 16:44:38 +08:00
/// <summary>
/// czy kafka<6B> <61> json<6F> н<EFBFBD> <D0BD> ߵ <EFBFBD> ѹת<D1B9> <D7AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѹ
/// </summary>
/// <param name="pSequence"></param>
/// <returns></returns>
QString line_to_phasic ( QString qstrSeq ) {
if ( qstrSeq = = " A " | | qstrSeq = = " AB " ) {
return " A " ;
}
else if ( qstrSeq = = " B " | | qstrSeq = = " BC " ) {
return " B " ;
}
else if ( qstrSeq = = " C " | | qstrSeq = = " CA " ) {
return " C " ;
}
else {
return qstrSeq ;
}
}
//20250214<31> <34> <EFBFBD> ӽ<EFBFBD> <D3BD> ͽ<EFBFBD> <CDBD> ߴ <EFBFBD> <DFB4> <EFBFBD>
int transfer_json_block_data ( char v_wiring_type [ ] , json_block_data * data ) //json<6F> <6E> <EFBFBD> ɺ<EFBFBD> <C9BA> <EFBFBD> zw<7A> <EFBFBD> 2023-8-11 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> json<6F> ṹ Ŀǰ<C4BF> <C7B0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> ̬<EFBFBD> <CCAC> <EFBFBD> <EFBFBD>
2025-01-16 16:17:01 +08:00
{
list < CTopic * > ctopic_list ;
2025-02-14 16:44:38 +08:00
#if 0
2025-01-16 16:17:01 +08:00
if ( xmlinfo_list . contains ( data - > dev_type ) ) {
cout < < " transfer_json_block_data contain data->dev_type " < < endl ;
ctopic_list = xmlinfo_list [ data - > dev_type ] - > topicList ;
}
else {
cout < < " transfer_json_block_data not contain data->dev_type " < < endl ;
ctopic_list = topicList ;
}
2025-02-14 16:44:38 +08:00
# endif
2025-02-17 16:58:14 +08:00
2025-02-14 16:44:38 +08:00
////lnk2024-8-15 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ,<2C> <> <EFBFBD> ͽ<EFBFBD> <CDBD> <EFBFBD>
2025-02-17 16:58:14 +08:00
if ( strcmp ( v_wiring_type , " 1 " ) = = 0 ) //lnk2024-8-15 <20> <> <EFBFBD> ͽ<EFBFBD> <CDBD> <EFBFBD>
2025-02-14 16:44:38 +08:00
{
2025-02-17 16:58:14 +08:00
cout < < " 1 report v_wiring_type is " < < v_wiring_type < < endl ;
2025-02-14 16:44:38 +08:00
if ( xmlinfo_list . contains ( data - > dev_type ) ) {
cout < < " transfer_json_block_data contain data->dev_type " < < endl ;
ctopic_list = xmlinfo_list [ data - > dev_type ] - > topicList ;
}
else {
2025-02-17 16:58:14 +08:00
cout < < " transfer_json_block_data not contain data->dev_type: " < < data - > dev_type . toStdString ( ) < < " !!!! " < < endl ;
2025-02-14 16:44:38 +08:00
ctopic_list = topicList ;
}
}
else //lnk2024-8-15 <20> <> <EFBFBD> ͽ<EFBFBD> <CDBD> <EFBFBD>
{
2025-02-17 16:58:14 +08:00
cout < < " 2 report v_wiring_type is " < < v_wiring_type < < endl ;
2025-02-14 16:44:38 +08:00
if ( xmlinfo_list2 . contains ( data - > dev_type ) ) {
cout < < " transfer_json_block_data contain data->dev_type " < < endl ;
ctopic_list = xmlinfo_list2 [ data - > dev_type ] - > topicList ;
}
else {
2025-02-17 16:58:14 +08:00
cout < < " transfer_json_block_data not contain data->dev_type: " < < data - > dev_type . toStdString ( ) < < " !!!! " < < endl ;
2025-02-14 16:44:38 +08:00
ctopic_list = topicList ;
}
}
2025-01-16 16:17:01 +08:00
//list<CTopic*>* tmp;
bool shortjumpflag = false ;
bool longjumpflag = false ;
//zw<7A> <EFBFBD> 2023-8-28 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ־<EFBFBD> <D6BE> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD>
//bool data_match_flag = false, data_integrity_flag = true, data_reason_flag = false;//ƥ<> <C6A5> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ־<EFBFBD> <D6BE> ¼<EFBFBD> <C2BC> ־
QMap < QString , MP_RATIONALITY * > data_reason_map ; //<2F> <> <EFBFBD> ݺ<EFBFBD> <DDBA> <EFBFBD> <EFBFBD> <EFBFBD> map
QMap < QString , QDateTime > data_match_map_1 ; //<2F> <> <EFBFBD> <EFBFBD> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> map <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QMap < QString , QDateTime > data_match_map_2 ; //<2F> <> <EFBFBD> <EFBFBD> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> map <20> ǻ<EFBFBD> <C7BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//zw<7A> <EFBFBD> end
if ( ! inited ) //<2F> <> ʼ <EFBFBD> <CABC> JiangSu_Config.xml
{
//ParseXMLConfig(); //<2F> <> <EFBFBD> <EFBFBD> ParseXMLConfig() <20> <> <EFBFBD> <EFBFBD> JiangSu_Config.xml<6D> <6C> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD>
inited = true ;
}
if ( NULL = = data ) //jsonƴ<6E> Ӳ<EFBFBD> <D3B2> <EFBFBD> <EFBFBD> <EFBFBD> ָ<EFBFBD> <D6B8> Ϊ<EFBFBD> <CEAA>
return 0 ;
if ( 100 = = data - > func_type ) //һ <> <D2BB> <EFBFBD> <EFBFBD> ̬/ͳ<> <CDB3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> > MMS_Client
{
list < CTopic * > : : iterator tp = ctopic_list . begin ( ) ;
while ( tp ! = ctopic_list . end ( ) ) //<2F> ٱ<EFBFBD> <D9B1> <EFBFBD> Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
CTopic * pTopic = * tp + + ;
if ( " HISDATA " = = pTopic - > strTopic ) //Topic<69> <63> <EFBFBD> <EFBFBD> HISDATA
{
list < CDataType * > : : iterator dt = pTopic - > DataTypeList . begin ( ) ; //<2F> ڱ<EFBFBD> <DAB1> <EFBFBD> DataTypeList
while ( dt ! = pTopic - > DataTypeList . end ( ) )
{
bool isJump = false ; //<2F> Ƿ<EFBFBD> <C7B7> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )ѭ<> <D1AD>
CDataType * pDataType = * dt + + ;
if ( 2 = = pDataType - > iDataType ) //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " PST " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
long long time_sec ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" " ) . arg ( pDataType - > iDataType , 2 , 10 , QChar ( ' 0 ' ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> "02"
KafkaData . strText . append ( QString ( " , \" Monitor \" : \" %1 \" " ) . arg ( data - > mp_id ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "1100"
list < CMonitor * > : : iterator mt = pDataType - > MonitorList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> MonitorList
int countflag = 0 , num = 0 ;
while ( mt ! = pDataType - > MonitorList . end ( ) )
{
CMonitor * pMonitor = * mt + + ;
KafkaData . strText . append ( QString ( " , \" %1 \" :{ " ) . arg ( " Value " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CItem * > : : iterator it = pMonitor - > ItemList . begin ( ) ; //<2F> ܱ<EFBFBD> <DCB1> <EFBFBD> ItemList
list < CItem * > : : iterator itEnd = pMonitor - > ItemList . end ( ) ; //ItemList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( it ! = pMonitor - > ItemList . end ( ) )
{
CItem * pItem = * it + + ;
2025-03-06 15:24:49 +08:00
//////////////////////////////////////////////////////////lnk20250306Ϊ<36> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⣬<EFBFBD> <E2A3AC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> FLAG
if ( " FLAG " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" FLAG \" :%1, " ) . arg ( data - > flag ) ) ; //ƴ<> <C6B4> json<6F> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> ǣ<EFBFBD> 1<EFBFBD> <31> <EFBFBD> <EFBFBD> <DEB3> <EFBFBD> 0<EFBFBD> <EFBFBD> <DEB3> <EFBFBD> Ĭ<EFBFBD> <C4AC> <EFBFBD> <EFBFBD>
continue ;
}
//////////////////////////////////////////////////////////
2025-01-16 16:17:01 +08:00
if ( " TIME " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
time_sec = data - > time / 1000 ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
continue ;
}
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pItem - > strItemName ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> F
list < CSequence * > : : iterator sq = pItem - > SequenceList . begin ( ) ; //<2F> ݱ<EFBFBD> <DDB1> <EFBFBD> SequenceList
list < CSequence * > : : iterator sqEnd = pItem - > SequenceList . end ( ) ; //SequenceList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( sq ! = pItem - > SequenceList . end ( ) )
{
CSequence * pSequence = * sq + + ;
//KafkaData.strText.append(QString("{\"SEQ\":\"%1\", ").arg(pSequence->strSeq)); //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43>
2025-02-14 16:44:38 +08:00
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( line_to_phasic ( pSequence - > strSeq ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-01-16 16:17:01 +08:00
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
list < CDataValue * > : : iterator dvEnd = pSequence - > DataValueList . end ( ) ; //DataValueList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
num = num + pSequence - > DataValueList . size ( ) ;
while ( dv ! = pSequence - > DataValueList . end ( ) )
{
CDataValue * pDataValue = * dv + + ;
if ( " NOT DEFINE " = = pDataValue - > strFullName | | " not define " = = pDataValue - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
{
countflag + + ;
continue ;
}
if ( ! data - > mms_str_map . contains ( pDataValue - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
{
isJump = false ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
countflag + + ;
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" :%2, " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
else
KafkaData . strText . append ( QString ( " \" %1 \" :%2 " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
continue ;
}
try
{
double dTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) * pDataValue - > fCoefficient ; //<2F> ӿ<EFBFBD> <D3BF> <EFBFBD> <EFBFBD> <EFBFBD> * ϵ<> <CFB5>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
}
catch ( exception & e )
{
cout < < " <EFBFBD> <EFBFBD> ʷ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //DataValueList <20> <> <EFBFBD> <EFBFBD>
if ( ! KafkaData . strText . isEmpty ( ) ) {
if ( KafkaData . strText [ KafkaData . strText . length ( ) - 1 ] = = ' , ' ) {
KafkaData . strText = KafkaData . strText . remove ( KafkaData . strText . size ( ) - 1 , 1 ) ;
KafkaData . strText . append ( " " ) ;
cout < < " KafkaData.strText = KafkaData.strText.chopped(1) " < < endl ;
}
}
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( sq ! = sqEnd ) //<2F> <> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //SequenceList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( it ! = itEnd ) //<2F> <> V<> <56> I<EFBFBD> <49> PQ<50> <51> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //ItemList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
} //MonitorList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) continue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
cout < < countflag < < " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!send name= \" DATA_TYPE \" value= \" 02 \" " < < num < < endl ;
cout < < KafkaData . strText . toAscii ( ) . data ( ) < < endl ;
if ( countflag < num ) {
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
shortjumpflag = true ;
}
} //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------------------------
//20241204<30> <34> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> Ϊ3
if ( 3 = = pDataType - > iDataType ) //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " PLT " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
long long time_sec ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" " ) . arg ( pDataType - > iDataType , 2 , 10 , QChar ( ' 0 ' ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> "02"
KafkaData . strText . append ( QString ( " , \" Monitor \" : \" %1 \" " ) . arg ( data - > mp_id ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "1100"
list < CMonitor * > : : iterator mt = pDataType - > MonitorList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> MonitorList
int countflag = 0 , num = 0 ;
while ( mt ! = pDataType - > MonitorList . end ( ) )
{
CMonitor * pMonitor = * mt + + ;
KafkaData . strText . append ( QString ( " , \" %1 \" :{ " ) . arg ( " Value " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CItem * > : : iterator it = pMonitor - > ItemList . begin ( ) ; //<2F> ܱ<EFBFBD> <DCB1> <EFBFBD> ItemList
list < CItem * > : : iterator itEnd = pMonitor - > ItemList . end ( ) ; //ItemList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( it ! = pMonitor - > ItemList . end ( ) )
{
CItem * pItem = * it + + ;
2025-03-06 15:24:49 +08:00
//////////////////////////////////////////////////////////lnk20250306Ϊ<36> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ⣬<EFBFBD> <E2A3AC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> FLAG
if ( " FLAG " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" FLAG \" :%1, " ) . arg ( data - > flag ) ) ; //ƴ<> <C6B4> json<6F> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> ǣ<EFBFBD> 1<EFBFBD> <31> <EFBFBD> <EFBFBD> <DEB3> <EFBFBD> 0<EFBFBD> <EFBFBD> <DEB3> <EFBFBD> Ĭ<EFBFBD> <C4AC> <EFBFBD> <EFBFBD>
continue ;
}
//////////////////////////////////////////////////////////
2025-01-16 16:17:01 +08:00
if ( " TIME " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
time_sec = data - > time / 1000 ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
continue ;
}
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pItem - > strItemName ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> F
list < CSequence * > : : iterator sq = pItem - > SequenceList . begin ( ) ; //<2F> ݱ<EFBFBD> <DDB1> <EFBFBD> SequenceList
list < CSequence * > : : iterator sqEnd = pItem - > SequenceList . end ( ) ; //SequenceList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( sq ! = pItem - > SequenceList . end ( ) )
{
CSequence * pSequence = * sq + + ;
//KafkaData.strText.append(QString("{\"SEQ\":\"%1\", ").arg(pSequence->strSeq)); //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43>
2025-02-14 16:44:38 +08:00
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( line_to_phasic ( pSequence - > strSeq ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-01-16 16:17:01 +08:00
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
list < CDataValue * > : : iterator dvEnd = pSequence - > DataValueList . end ( ) ; //DataValueList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
num = num + pSequence - > DataValueList . size ( ) ;
while ( dv ! = pSequence - > DataValueList . end ( ) )
{
CDataValue * pDataValue = * dv + + ;
if ( " NOT DEFINE " = = pDataValue - > strFullName | | " not define " = = pDataValue - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
{
countflag + + ;
continue ;
}
if ( ! data - > mms_str_map . contains ( pDataValue - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
{
isJump = false ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
countflag + + ;
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" :%2, " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
else
KafkaData . strText . append ( QString ( " \" %1 \" :%2 " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
continue ;
}
try
{
if ( 0 = = time_sec % 7200 ) //2С ʱ<D0A1> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD>
{
double dTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) * pDataValue - > fCoefficient ; //<2F> ӿ<EFBFBD> <D3BF> <EFBFBD> <EFBFBD> <EFBFBD> * ϵ<> <CFB5>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
}
}
catch ( exception & e )
{
cout < < " <EFBFBD> <EFBFBD> ʷ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //DataValueList <20> <> <EFBFBD> <EFBFBD>
if ( ! KafkaData . strText . isEmpty ( ) ) {
if ( KafkaData . strText [ KafkaData . strText . length ( ) - 1 ] = = ' , ' ) {
KafkaData . strText = KafkaData . strText . remove ( KafkaData . strText . size ( ) - 1 , 1 ) ;
KafkaData . strText . append ( " " ) ;
cout < < " KafkaData.strText = KafkaData.strText.chopped(1) " < < endl ;
}
}
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( sq ! = sqEnd ) //<2F> <> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //SequenceList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( it ! = itEnd ) //<2F> <> V<> <56> I<EFBFBD> <49> PQ<50> <51> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //ItemList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
} //MonitorList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) continue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
cout < < countflag < < " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!send name= \" DATA_TYPE \" value= \" 04 \" " < < num < < endl ;
cout < < KafkaData . strText . toAscii ( ) . data ( ) < < endl ;
if ( countflag < num & & 0 = = time_sec % 7200 ) {
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
longjumpflag = true ;
}
if ( longjumpflag = = true | | shortjumpflag = = true ) {
return 1 ;
}
//return 1; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------------------------
if ( 1 = = pDataType - > iDataType ) //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> ̬<EFBFBD> <CCAC> <EFBFBD> <EFBFBD> -----------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " HISDATA " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" " ) . arg ( pDataType - > iDataType , 2 , 10 , QChar ( ' 0 ' ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> ̬ "01"
KafkaData . strText . append ( QString ( " , \" Monitor \" : \" %1 \" " ) . arg ( data - > mp_id ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "1100"
list < CMonitor * > : : iterator mt = pDataType - > MonitorList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> MonitorList
while ( mt ! = pDataType - > MonitorList . end ( ) )
{
CMonitor * pMonitor = * mt + + ;
KafkaData . strText . append ( QString ( " , \" %1 \" :{ " ) . arg ( " Value " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CItem * > : : iterator it = pMonitor - > ItemList . begin ( ) ; //<2F> ܱ<EFBFBD> <DCB1> <EFBFBD> ItemList
list < CItem * > : : iterator itEnd = pMonitor - > ItemList . end ( ) ; //ItemList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( it ! = pMonitor - > ItemList . end ( ) )
{
CItem * pItem = * it + + ;
if ( " FLAG " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" FLAG \" :%1, " ) . arg ( data - > flag ) ) ; //ƴ<> <C6B4> json<6F> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> ǣ<EFBFBD> 1<EFBFBD> <31> <EFBFBD> <EFBFBD> <DEB3> <EFBFBD> 0<EFBFBD> <EFBFBD> <DEB3> <EFBFBD> Ĭ<EFBFBD> <C4AC> <EFBFBD> <EFBFBD>
continue ;
}
if ( " TIME " = = pItem - > strItemName ) //<2F> <EFBFBD> "TIME"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" TIME \" :%1, " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
if ( ! data_timespan_list . contains ( data - > mp_id ) ) {
KafkaData . strText . append ( QString ( " \" interval \" :%1, " ) . arg ( 3 ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
}
else if ( data_timespan_list [ data - > mp_id ] - > msspan = = 0 )
{
KafkaData . strText . append ( QString ( " \" interval \" :%1, " ) . arg ( 3 ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
}
else {
KafkaData . strText . append ( QString ( " \" interval \" :%1, " ) . arg ( data_timespan_list [ data - > mp_id ] - > msspan ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
}
continue ;
}
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pItem - > strItemName ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> V<> <56> I<EFBFBD> <49> PQ
list < CSequence * > : : iterator sq = pItem - > SequenceList . begin ( ) ; //<2F> ݱ<EFBFBD> <DDB1> <EFBFBD> SequenceList
list < CSequence * > : : iterator sqEnd = pItem - > SequenceList . end ( ) ; //SequenceList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( sq ! = pItem - > SequenceList . end ( ) )
{
CSequence * pSequence = * sq + + ;
//KafkaData.strText.append(QString("{\"SEQ\":\"%1\", ").arg(pSequence->strSeq)); //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-02-14 16:44:38 +08:00
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( line_to_phasic ( pSequence - > strSeq ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-01-16 16:17:01 +08:00
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
list < CDataValue * > : : iterator dvEnd = pSequence - > DataValueList . end ( ) ; //DataValueList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( dv ! = pSequence - > DataValueList . end ( ) )
{
CDataValue * pDataValue = * dv + + ;
if ( " NOT DEFINE " = = pDataValue - > strFullName | | " not define " = = pDataValue - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pDataValue - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
{
isJump = false ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
//zw<7A> <EFBFBD> 2023-8-28 <20> <> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" :%2, " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
else
KafkaData . strText . append ( QString ( " \" %1 \" :%2 " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
if ( pDataValue - > BaseFlag = = " 1 " ) {
2025-02-21 16:24:41 +08:00
//errorlog_datamatch(pDataValue->strFullName, &data_match_map_1);//lnkɾ<6B> <C9BE>
2025-01-16 16:17:01 +08:00
}
else {
2025-02-21 16:24:41 +08:00
//errorlog_datamatch(pDataValue->strFullName, &data_match_map_2);//lnkɾ<6B> <C9BE>
2025-01-16 16:17:01 +08:00
}
continue ;
}
try
{
if ( pDataValue - > strFullName . indexOf ( " $ang$f " ) ! = - 1 ) //<2F> <> <EFBFBD> <EFBFBD> 61850<35> <30> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> к<EFBFBD> <D0BA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǵĶ<C7B5> <C4B6> <EFBFBD>
{
double dAngleTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) ; //<2F> Ƕ<EFBFBD> ֵ(-180<38> <30> ~ 180<38> <30> )
dAngleTemp = dAngleTemp > 180.0f ? dAngleTemp - 360.0f : dAngleTemp ;
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dAngleTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dAngleTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
//zw<7A> <EFBFBD> 2023 - 8 - 23 <20> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> жϺ <D0B6> <CFBA> <EFBFBD> <20> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ʵ<> <CAB5> ֵ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ѹ<EFBFBD> ȼ<EFBFBD>
2025-02-21 16:24:41 +08:00
//errorlog_num(pDataValue, dAngleTemp, data->voltage_level, &data_reason_map, data->time);
2025-01-16 16:17:01 +08:00
}
else
{
double dTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) * pDataValue - > fCoefficient ; //<2F> ӿ<EFBFBD> <D3BF> <EFBFBD> <EFBFBD> <EFBFBD> * ϵ<> <CFB5>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> ǽǶ<C7BD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> ǽǶ<C7BD> ֵ)
//zw<7A> <EFBFBD> 2023 - 8 - 23 <20> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> жϺ <D0B6> <CFBA> <EFBFBD> <20> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ʵ<> <CAB5> ֵ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ѹ<EFBFBD> ȼ<EFBFBD>
2025-02-21 16:24:41 +08:00
//(pDataValue, dTemp, data->voltage_level, &data_reason_map, data->time);
2025-01-16 16:17:01 +08:00
}
}
catch ( exception & e )
{
cout < < " <EFBFBD> <EFBFBD> ʷ<EFBFBD> <EFBFBD> ̬<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //DataValueList <20> <> <EFBFBD> <EFBFBD>
if ( ! KafkaData . strText . isEmpty ( ) ) {
if ( KafkaData . strText [ KafkaData . strText . length ( ) - 1 ] = = ' , ' ) {
KafkaData . strText = KafkaData . strText . remove ( KafkaData . strText . size ( ) - 1 , 1 ) ;
KafkaData . strText . append ( " " ) ;
cout < < " KafkaData.strText = KafkaData.strText.chopped(1) " < < endl ;
}
}
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( sq ! = sqEnd ) //<2F> <> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //SequenceList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( it ! = itEnd ) //<2F> <> V<> <56> I<EFBFBD> <49> PQ<50> <51> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //ItemList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
} //MonitorList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) continue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
//lnk20241122<32> <32> <EFBFBD> <EFBFBD> ¼<EFBFBD> <C2BC> Щ
if ( false ) //zw<7A> <EFBFBD> 2023-8-28 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ƥ<> <C6A5> <EFBFBD> <EFBFBD> <20> <> ־<EFBFBD> <D6BE> ¼ִ<C2BC> <D6B4> <EFBFBD> ж<EFBFBD> <D0B6> <EFBFBD>
{
cout < < " !!!!!!!!!!!!!!!!!!!!!!=============== " < < data_match_map_1 . count ( ) < < " -------- " < < data_match_map_2 . count ( ) < < endl ;
cout < < " !!!!!!!!!!!!!!!!!!!!!!--------------- " < < data_reason_map . count ( ) < < endl ;
if ( data_match_map_1 . count ( ) + data_match_map_2 . count ( ) < = 1200 ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> Լ<EFBFBD> ¼ Ĭ<> <C4AC> Ϊtrue ֻҪ<D6BB> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> kafka<6B> <61> ¼<EFBFBD> <C2BC> ִ<EFBFBD> <D6B4>
{
errorlog_dataintegrity_timespanlist ( data - > mp_id , data - > time ) ;
errorlog_dataintegrity_timespanlist_2 ( data - > mp_id ) ;
QDateTime dataintegrity_time = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
QString tmp_chr2 = dataintegrity_time . toString ( " yyyy-MM-dd hh:mm:ss " ) ;
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> Լ<EFBFBD> ¼lnk202411-6
//cout << errorlog_dataintegrity_pgsql(tmp_chr1, tmp_chr2, data->mp_id,false).toAscii().data() << endl;
}
if ( data_reason_map . count ( ) ! = 0 ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> Լ<EFBFBD> ¼ ֻҪmap<61> <70> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> <20> <> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ־
{
QString reasonlog = errorlog_num_json ( data - > mp_id , data_reason_map ) ;
QDateTime savetime = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString Qfilename , Qsavename ;
Qfilename . append ( " comtrade/ " ) . append ( data - > mp_id ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMdd " ) ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _reason.log " ) ;
Qsavename . append ( " /FeProject/dat/ " ) . append ( data - > mp_id ) . append ( " _ " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _reason.log " ) ;
char file_name [ 256 ] ;
memset ( file_name , 0 , 256 ) ;
sprintf ( file_name , " %s " , Qfilename . toAscii ( ) . data ( ) ) ;
char save_name [ 256 ] ;
memset ( save_name , 0 , 256 ) ;
sprintf ( save_name , " %s " , Qsavename . toAscii ( ) . data ( ) ) ;
//cout << file_name << "!!!!!!!!!!!!!!!!!!!!!!!!!!" << save_name << endl;
//cout << reasonlog.toAscii().data() << endl;
oss_data_t OssData ;
OssData . filename = file_name ;
OssData . savename = save_name ;
OssData . data = reasonlog ;
QDateTime dataintegrity_time = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
OssData . id = data - > mp_id ;
OssData . time = tmp_chr1 ; //ʱ<> <CAB1>
OssData . list_num = data_reason_map . size ( ) ;
OssData . log_name = " reason " ;
if ( data - > time % 3600000 = = 0 ) {
oss_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
oss_data_list . append ( OssData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
oss_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
}
//std::ofstream file(save_name); // <20> <> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <F3A3ACB4> <EFBFBD> <EFBFBD> ļ<EFBFBD> example.txt
//if (file.is_open()) { // <20> ж<EFBFBD> <D0B6> ļ<EFBFBD> <C4BC> Ƿ<EFBFBD> <C7B7> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD>
// file << reasonlog.toAscii().data() << "\n";
// file.close(); // <20> ر<EFBFBD> <D8B1> ļ<EFBFBD>
//}
//else {
// cout << "Unable to open file\n" << endl;
//}
//PutOSS(file_name, save_name);
//std::remove(save_name);
/*QDateTime dataintegrity_time = QDateTime::fromTime_t(data->time / 1000);
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
QString pgsql ;
pgsql . append ( errorlog_num_pgsql ( data - > mp_id , tmp_chr1 , Qfilename , data_reason_map . size ( ) ) ) ;
cout < < pgsql . toAscii ( ) . data ( ) < < endl ; */
}
if ( data_match_map_1 . count ( ) ! = 0 | | data_match_map_2 . count ( ) ! = 0 ) //ƥ<> <C6A5> <EFBFBD> ʼ <EFBFBD> ¼ ֻҪmap<61> <70> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> <20> <> ¼<EFBFBD> <C2BC> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
{
QString matchlog = errorlog_datamatch_json ( data_match_map_1 , data_match_map_2 , data - > time ) ;
//cout << matchlog.toAscii().data() << endl;
QDateTime savetime = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString Qfilename , Qsavename ;
Qfilename . append ( " comtrade/ " ) . append ( data - > mp_id ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMdd " ) ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _match.log " ) ;
Qsavename . append ( " /FeProject/dat/ " ) . append ( data - > mp_id ) . append ( " _ " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _match.log " ) ;
char file_name [ 256 ] ;
memset ( file_name , 0 , 256 ) ;
sprintf ( file_name , " %s " , Qfilename . toAscii ( ) . data ( ) ) ;
char save_name [ 256 ] ;
memset ( save_name , 0 , 256 ) ;
sprintf ( save_name , " %s " , Qsavename . toAscii ( ) . data ( ) ) ;
cout < < file_name < < " !!!!!!!!!!!!!!!!!!!!!!!!!! " < < save_name < < endl ;
oss_data_t OssData ;
OssData . filename = file_name ;
OssData . savename = save_name ;
OssData . data = matchlog ;
QDateTime dataintegrity_time = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
OssData . id = data - > mp_id ;
OssData . time = tmp_chr1 ; //ʱ<> <CAB1>
//match_log
OssData . base_mat_num = pDataType - > BaseFlag1 ;
OssData . adv_mat_num = pDataType - > BaseFlag1 + pDataType - > BaseFlag0 ;
OssData . base_act_num = pDataType - > BaseFlag1 - data_match_map_1 . count ( ) ;
OssData . adv_act_num = pDataType - > BaseFlag1 + pDataType - > BaseFlag0 - data_match_map_1 . count ( ) - data_match_map_2 . count ( ) ;
OssData . log_name = " match " ;
if ( data - > time % 3600000 = = 0 ) {
oss_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
oss_data_list . append ( OssData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
oss_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
}
//std::ofstream file(save_name); // <20> <> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <F3A3ACB4> <EFBFBD> <EFBFBD> ļ<EFBFBD> example.txt
//if (file.is_open()) { // <20> ж<EFBFBD> <D0B6> ļ<EFBFBD> <C4BC> Ƿ<EFBFBD> <C7B7> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD>
// file << matchlog.toAscii().data() << "\n";
// file.close(); // <20> ر<EFBFBD> <D8B1> ļ<EFBFBD>
//}
//else {
// cout << "Unable to open file\n" << endl;
//}
//PutOSS(file_name, save_name);
//std::remove(save_name);
//GetOSS(file_name, savename);
/*QDateTime dataintegrity_time = QDateTime::fromTime_t(data->time / 1000);
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
QString pqsql ;
pqsql . append ( errorlog_datamatch_pgsql ( data - > mp_id , tmp_chr1 , pDataType - > BaseFlag1 , pDataType - > BaseFlag1 + pDataType - > BaseFlag0 , pDataType - > BaseFlag1 - data_match_map_1 . count ( ) , pDataType - > BaseFlag1 + pDataType - > BaseFlag0 - data_match_map_1 . count ( ) - data_match_map_2 . count ( ) , Qfilename ) ) ;
cout < < pqsql . toAscii ( ) . data ( ) < < endl ; */
}
QMap < QString , QDateTime > ( ) . swap ( data_match_map_1 ) ;
QMap < QString , QDateTime > ( ) . swap ( data_match_map_2 ) ;
QMap < QString , MP_RATIONALITY * > ( ) . swap ( data_reason_map ) ;
}
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------------------------
} //DataTypeList <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> HISDATA <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
} //TopicList <20> <> <EFBFBD> <EFBFBD>
} //һ <> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( 200 = = data - > func_type ) //<2F> <> <EFBFBD> <EFBFBD> 3<EFBFBD> <33> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> /ʵʱ<CAB5> <CAB1> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> > MMS_Assist
{
list < CTopic * > : : iterator tp = ctopic_list . begin ( ) ;
while ( tp ! = ctopic_list . end ( ) ) //<2F> ٱ<EFBFBD> <D9B1> <EFBFBD> Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
CTopic * pTopic = * tp + + ;
if ( " RTDATA " = = pTopic - > strTopic ) //Topic<69> <63> <EFBFBD> <EFBFBD> RTDATA------------------------------------------------------------
{
list < CDataType * > : : iterator dt = pTopic - > DataTypeList . begin ( ) ; //<2F> ڱ<EFBFBD> <DAB1> <EFBFBD> DataTypeList
while ( dt ! = pTopic - > DataTypeList . end ( ) )
{
bool isJump = false ; //<2F> Ƿ<EFBFBD> <C7B7> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )ѭ<> <D1AD>
CDataType * pDataType = * dt + + ;
if ( 1 = = pDataType - > iDataType ) //<2F> <> -<2D> <> ʵʱ3s<33> <73> <EFBFBD> <EFBFBD> --------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " RTDATA " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" " ) . arg ( pDataType - > iDataType , 2 , 10 , QChar ( ' 0 ' ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ʵʱ<CAB5> <CAB1> ̬ "01"
KafkaData . strText . append ( QString ( " , \" Monitor \" : \" %1 \" " ) . arg ( data - > mp_id ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "1100"
list < CMonitor * > : : iterator mt = pDataType - > MonitorList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> MonitorList
while ( mt ! = pDataType - > MonitorList . end ( ) )
{
CMonitor * pMonitor = * mt + + ;
KafkaData . strText . append ( QString ( " , \" %1 \" :{ " ) . arg ( " Value " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CItem * > : : iterator it = pMonitor - > ItemList . begin ( ) ; //<2F> ܱ<EFBFBD> <DCB1> <EFBFBD> ItemList
list < CItem * > : : iterator itEnd = pMonitor - > ItemList . end ( ) ; //ItemList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( it ! = pMonitor - > ItemList . end ( ) )
{
CItem * pItem = * it + + ;
if ( " FLAG " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" FLAG \" : \" %1 \" , " ) . arg ( data - > flag ) ) ; //ƴ<> <C6B4> json<6F> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> ǣ<EFBFBD> 1<EFBFBD> <31> <EFBFBD> <EFBFBD> <DEB3> <EFBFBD> 0<EFBFBD> <EFBFBD> <DEB3> <EFBFBD> Ĭ<EFBFBD> <C4AC> <EFBFBD> <EFBFBD>
continue ;
}
if ( " TIME " = = pItem - > strItemName ) //<2F> <EFBFBD> "TIME"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
continue ;
}
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pItem - > strItemName ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> V<> <56> I<EFBFBD> <49> PQ
list < CSequence * > : : iterator sq = pItem - > SequenceList . begin ( ) ; //<2F> ݱ<EFBFBD> <DDB1> <EFBFBD> SequenceList
list < CSequence * > : : iterator sqEnd = pItem - > SequenceList . end ( ) ; //SequenceList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( sq ! = pItem - > SequenceList . end ( ) )
{
CSequence * pSequence = * sq + + ;
//KafkaData.strText.append(QString("{\"SEQ\":\"%1\", ").arg(pSequence->strSeq)); //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-02-14 16:44:38 +08:00
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( line_to_phasic ( pSequence - > strSeq ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-01-16 16:17:01 +08:00
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
list < CDataValue * > : : iterator dvEnd = pSequence - > DataValueList . end ( ) ; //DataValueList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( dv ! = pSequence - > DataValueList . end ( ) )
{
CDataValue * pDataValue = * dv + + ;
if ( " NOT DEFINE " = = pDataValue - > strFullName | | " not define " = = pDataValue - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pDataValue - > strFullName ) & & pDataValueBegin - > strName = = pDataValue - > strName ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
{
isJump = true ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
break ;
}
try
{
if ( pDataValue - > strFullName . indexOf ( " $ang$f " ) ! = - 1 ) //<2F> <> <EFBFBD> <EFBFBD> 61850<35> <30> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> к<EFBFBD> <D0BA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǵĶ<C7B5> <C4B6> <EFBFBD>
{
double dAngleTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) ; //<2F> Ƕ<EFBFBD> ֵ(-180<38> <30> ~ 180<38> <30> )
dAngleTemp = dAngleTemp > 180.0f ? dAngleTemp - 360.0f : dAngleTemp ;
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dAngleTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dAngleTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
}
else
{
double dTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) * pDataValue - > fCoefficient ; //<2F> ӿ<EFBFBD> <D3BF> <EFBFBD> <EFBFBD> <EFBFBD> * ϵ<> <CFB5>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> ǽǶ<C7BD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> ǽǶ<C7BD> ֵ)
}
}
catch ( exception & e )
{
cout < < " ʵʱ3s<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //DataValueList <20> <> <EFBFBD> <EFBFBD>
if ( ! KafkaData . strText . isEmpty ( ) ) {
if ( KafkaData . strText [ KafkaData . strText . length ( ) - 1 ] = = ' , ' ) {
KafkaData . strText = KafkaData . strText . remove ( KafkaData . strText . size ( ) - 1 , 1 ) ;
KafkaData . strText . append ( " " ) ;
cout < < " KafkaData.strText = KafkaData.strText.chopped(1) " < < endl ;
}
}
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( sq ! = sqEnd ) //<2F> <> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //SequenceList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( it ! = itEnd ) //<2F> <> V<> <56> I<EFBFBD> <49> PQ<50> <51> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //ItemList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
} //MonitorList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) continue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> ʵʱ3s<33> <73> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ----------------------------------
if ( 2 = = pDataType - > iDataType ) //<2F> <> -<2D> <> ʵʱ<CAB5> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> -----------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " RTDATA " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
long long time_sec ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" " ) . arg ( pDataType - > iDataType , 2 , 10 , QChar ( ' 0 ' ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ʵʱ<CAB5> <CAB1> <EFBFBD> <EFBFBD> "02"
KafkaData . strText . append ( QString ( " , \" Monitor \" : \" %1 \" " ) . arg ( data - > mp_id ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "1100"
list < CMonitor * > : : iterator mt = pDataType - > MonitorList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> MonitorList
while ( mt ! = pDataType - > MonitorList . end ( ) )
{
CMonitor * pMonitor = * mt + + ;
KafkaData . strText . append ( QString ( " , \" %1 \" :{ " ) . arg ( " Value " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CItem * > : : iterator it = pMonitor - > ItemList . begin ( ) ; //<2F> ܱ<EFBFBD> <DCB1> <EFBFBD> ItemList
list < CItem * > : : iterator itEnd = pMonitor - > ItemList . end ( ) ; //ItemList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( it ! = pMonitor - > ItemList . end ( ) )
{
CItem * pItem = * it + + ;
if ( " TIME " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
time_sec = data - > time / 1000 ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
continue ;
}
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pItem - > strItemName ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> F
list < CSequence * > : : iterator sq = pItem - > SequenceList . begin ( ) ; //<2F> ݱ<EFBFBD> <DDB1> <EFBFBD> SequenceList
list < CSequence * > : : iterator sqEnd = pItem - > SequenceList . end ( ) ; //SequenceList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( sq ! = pItem - > SequenceList . end ( ) )
{
CSequence * pSequence = * sq + + ;
//KafkaData.strText.append(QString("{\"SEQ\":\"%1\", ").arg(pSequence->strSeq)); //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43>
2025-02-14 16:44:38 +08:00
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( line_to_phasic ( pSequence - > strSeq ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-01-16 16:17:01 +08:00
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
list < CDataValue * > : : iterator dvEnd = pSequence - > DataValueList . end ( ) ; //DataValueList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( dv ! = pSequence - > DataValueList . end ( ) )
{
CDataValue * pDataValue = * dv + + ;
if ( " NOT DEFINE " = = pDataValue - > strFullName | | " not define " = = pDataValue - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pDataValue - > strFullName ) & & pDataValueBegin - > strName = = pDataValue - > strName ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
{
isJump = true ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
break ;
}
try
{
if ( ! pDataValue - > bPlt ) //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD>
{
double dTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) * pDataValue - > fCoefficient ; //<2F> ӿ<EFBFBD> <D3BF> <EFBFBD> <EFBFBD> <EFBFBD> * ϵ<> <CFB5>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
}
else //<2F> <> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD>
{
if ( 0 = = time_sec % 7200 ) //2С ʱ<D0A1> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD>
{
double dTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) * pDataValue - > fCoefficient ; //<2F> ӿ<EFBFBD> <D3BF> <EFBFBD> <EFBFBD> <EFBFBD> * ϵ<> <CFB5>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> ǽǶ<C7BD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> ǽǶ<C7BD> ֵ)
}
}
}
catch ( exception & e )
{
cout < < " ʵʱ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //DataValueList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( sq ! = sqEnd ) //<2F> <> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //SequenceList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( it ! = itEnd ) //<2F> <> V<> <56> I<EFBFBD> <49> PQ<50> <51> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //ItemList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
} //MonitorList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) continue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> ʵʱ<CAB5> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------------------------
} //DataTypeList <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> RTDATA <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( " RTDATASOE " = = pTopic - > strTopic ) //Topic<69> <63> <EFBFBD> <EFBFBD> RTDATASOE----------------------------------------------------------
{
list < CDataType * > : : iterator dt = pTopic - > DataTypeList . begin ( ) ; //<2F> ڱ<EFBFBD> <DAB1> <EFBFBD> DataTypeList
while ( dt ! = pTopic - > DataTypeList . end ( ) )
{
int triggerCount = 0 ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
CDataType * pDataType = * dt + + ;
if ( 1 = = pDataType - > iDataType ) //<2F> <> -<2D> <> SOE<4F> <45> ̬<EFBFBD> ¼<EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " RTDATASOE " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" , " ) . arg ( pDataType - > iDataType ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " \" %1 \" :[ " ) . arg ( data - > mp_id ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CEventData * > : : iterator ed = pDataType - > SOEList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> SOEList
list < CEventData * > : : iterator edEnd = pDataType - > SOEList . end ( ) ; //SOEListβԪ<CEB2> <D4AA>
while ( ed ! = pDataType - > SOEList . end ( ) )
{
CEventData * pEventData = * ed + + ;
if ( " NOT DEFINE " = = pEventData - > strFullName | | " not define " = = pEventData - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pEventData - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
continue ;
try
{
double dTemp = data - > mms_str_map . value ( pEventData - > strFullName ) ;
if ( dTemp > = 0.9 ) //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
{
if ( 0 = = triggerCount ) //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
{
KafkaData . strText . append ( QString ( " \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
triggerCount + + ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
}
else
KafkaData . strText . append ( QString ( " , \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
}
}
catch ( exception & e )
{
cout < < " SOE<EFBFBD> <EFBFBD> ̬<EFBFBD> ¼<EFBFBD> ƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //SOEList <20> <> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " ]} " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> SOE<4F> <45> ̬<EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---------------------------------
if ( 1 = = pDataType - > iDataType ) //<2F> <> -<2D> <> SOE<4F> <45> ̬<EFBFBD> ¼<EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " RTDATASOE " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" , " ) . arg ( pDataType - > iDataType ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " \" %1 \" :[ " ) . arg ( data - > mp_id ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CEventData * > : : iterator ed = pDataType - > SOEList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> SOEList
list < CEventData * > : : iterator edEnd = pDataType - > SOEList . end ( ) ; //SOEListβԪ<CEB2> <D4AA>
while ( ed ! = pDataType - > SOEList . end ( ) )
{
CEventData * pEventData = * ed + + ;
if ( " NOT DEFINE " = = pEventData - > strFullName | | " not define " = = pEventData - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pEventData - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
continue ;
try
{
double dTemp = data - > mms_str_map . value ( pEventData - > strFullName ) ;
if ( dTemp > = 0.9 ) //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
{
if ( 0 = = triggerCount ) //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
{
KafkaData . strText . append ( QString ( " \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
triggerCount + + ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
}
else
KafkaData . strText . append ( QString ( " , \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
}
}
catch ( exception & e )
{
cout < < " SOE<EFBFBD> <EFBFBD> ̬<EFBFBD> ¼<EFBFBD> ƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //SOEList <20> <> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " ]} " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> SOE<4F> <45> ̬<EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---------------------------------
if ( 1 = = pDataType - > iDataType ) //<2F> <> -<2D> <> SOE״̬<D7B4> ¼<EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " RTDATASOE " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" , " ) . arg ( pDataType - > iDataType ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " \" %1 \" :[ " ) . arg ( data - > mp_id ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CEventData * > : : iterator ed = pDataType - > SOEList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> SOEList
list < CEventData * > : : iterator edEnd = pDataType - > SOEList . end ( ) ; //SOEListβԪ<CEB2> <D4AA>
while ( ed ! = pDataType - > SOEList . end ( ) )
{
CEventData * pEventData = * ed + + ;
if ( " NOT DEFINE " = = pEventData - > strFullName | | " not define " = = pEventData - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pEventData - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
continue ;
try
{
double dTemp = data - > mms_str_map . value ( pEventData - > strFullName ) ;
if ( dTemp > = 0.9 ) //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
{
if ( 0 = = triggerCount ) //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
{
KafkaData . strText . append ( QString ( " \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
triggerCount + + ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
}
else
KafkaData . strText . append ( QString ( " , \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
}
}
catch ( exception & e )
{
cout < < " SOE״̬<EFBFBD> ¼<EFBFBD> ƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //SOEList <20> <> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " ]} " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> SOE״̬<D7B4> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---------------------------------
} //DataTypeList <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> RTDATASOE <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
} //TopicList <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( 400 = = data - > func_type | | 500 = = data - > func_type | | 600 = = data - > func_type | | 700 = = data - > func_type ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> > MMS_Recall
{
list < CTopic * > : : iterator tp = ctopic_list . begin ( ) ;
while ( tp ! = ctopic_list . end ( ) ) //<2F> ٱ<EFBFBD> <D9B1> <EFBFBD> Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
{
CTopic * pTopic = * tp + + ;
if ( " HISDATA " = = pTopic - > strTopic ) //Topic<69> <63> <EFBFBD> <EFBFBD> HISDATA----------------------------------------------------------
{
list < CDataType * > : : iterator dt = pTopic - > DataTypeList . begin ( ) ; //<2F> ڱ<EFBFBD> <DAB1> <EFBFBD> DataTypeList
while ( dt ! = pTopic - > DataTypeList . end ( ) )
{
bool isJump = false ; //<2F> Ƿ<EFBFBD> <C7B7> <EFBFBD> <EFBFBD> <EFBFBD> (<28> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )ѭ<> <D1AD>
CDataType * pDataType = * dt + + ;
if ( 2 = = pDataType - > iDataType ) //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " PST " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
long long time_sec ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" " ) . arg ( pDataType - > iDataType , 2 , 10 , QChar ( ' 0 ' ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> "02"
KafkaData . strText . append ( QString ( " , \" Monitor \" : \" %1 \" " ) . arg ( data - > mp_id ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "1100"
list < CMonitor * > : : iterator mt = pDataType - > MonitorList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> MonitorList
int countflag = 0 , num = 0 ;
while ( mt ! = pDataType - > MonitorList . end ( ) )
{
CMonitor * pMonitor = * mt + + ;
KafkaData . strText . append ( QString ( " , \" %1 \" :{ " ) . arg ( " Value " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CItem * > : : iterator it = pMonitor - > ItemList . begin ( ) ; //<2F> ܱ<EFBFBD> <DCB1> <EFBFBD> ItemList
list < CItem * > : : iterator itEnd = pMonitor - > ItemList . end ( ) ; //ItemList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( it ! = pMonitor - > ItemList . end ( ) )
{
CItem * pItem = * it + + ;
if ( " TIME " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
time_sec = data - > time / 1000 ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
continue ;
}
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pItem - > strItemName ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> F
list < CSequence * > : : iterator sq = pItem - > SequenceList . begin ( ) ; //<2F> ݱ<EFBFBD> <DDB1> <EFBFBD> SequenceList
list < CSequence * > : : iterator sqEnd = pItem - > SequenceList . end ( ) ; //SequenceList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( sq ! = pItem - > SequenceList . end ( ) )
{
CSequence * pSequence = * sq + + ;
//KafkaData.strText.append(QString("{\"SEQ\":\"%1\", ").arg(pSequence->strSeq)); //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43>
2025-02-14 16:44:38 +08:00
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( line_to_phasic ( pSequence - > strSeq ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-01-16 16:17:01 +08:00
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
list < CDataValue * > : : iterator dvEnd = pSequence - > DataValueList . end ( ) ; //DataValueList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
num = num + pSequence - > DataValueList . size ( ) ;
while ( dv ! = pSequence - > DataValueList . end ( ) )
{
CDataValue * pDataValue = * dv + + ;
if ( " NOT DEFINE " = = pDataValue - > strFullName | | " not define " = = pDataValue - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
{
countflag + + ;
continue ;
}
if ( ! data - > mms_str_map . contains ( pDataValue - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
{
isJump = false ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
countflag + + ;
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" :%2, " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
else
KafkaData . strText . append ( QString ( " \" %1 \" :%2 " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
continue ;
}
try
{
double dTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) * pDataValue - > fCoefficient ; //<2F> ӿ<EFBFBD> <D3BF> <EFBFBD> <EFBFBD> <EFBFBD> * ϵ<> <CFB5>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
}
catch ( exception & e )
{
cout < < " <EFBFBD> <EFBFBD> ʷ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //DataValueList <20> <> <EFBFBD> <EFBFBD>
if ( ! KafkaData . strText . isEmpty ( ) ) {
if ( KafkaData . strText [ KafkaData . strText . length ( ) - 1 ] = = ' , ' ) {
KafkaData . strText = KafkaData . strText . remove ( KafkaData . strText . size ( ) - 1 , 1 ) ;
KafkaData . strText . append ( " " ) ;
cout < < " KafkaData.strText = KafkaData.strText.chopped(1) " < < endl ;
}
}
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( sq ! = sqEnd ) //<2F> <> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //SequenceList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( it ! = itEnd ) //<2F> <> V<> <56> I<EFBFBD> <49> PQ<50> <51> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //ItemList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
} //MonitorList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) continue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
cout < < countflag < < " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!send name= \" DATA_TYPE \" value= \" 02 \" " < < num < < endl ;
cout < < KafkaData . strText . toAscii ( ) . data ( ) < < endl ;
if ( countflag < num ) {
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
shortjumpflag = true ;
}
} //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------------------------
//20241204<30> <34> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> Ϊ3
if ( 3 = = pDataType - > iDataType ) //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " PLT " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
long long time_sec ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" " ) . arg ( pDataType - > iDataType , 2 , 10 , QChar ( ' 0 ' ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> "02"
KafkaData . strText . append ( QString ( " , \" Monitor \" : \" %1 \" " ) . arg ( data - > mp_id ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "1100"
list < CMonitor * > : : iterator mt = pDataType - > MonitorList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> MonitorList
int countflag = 0 , num = 0 ;
while ( mt ! = pDataType - > MonitorList . end ( ) )
{
CMonitor * pMonitor = * mt + + ;
KafkaData . strText . append ( QString ( " , \" %1 \" :{ " ) . arg ( " Value " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CItem * > : : iterator it = pMonitor - > ItemList . begin ( ) ; //<2F> ܱ<EFBFBD> <DCB1> <EFBFBD> ItemList
list < CItem * > : : iterator itEnd = pMonitor - > ItemList . end ( ) ; //ItemList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( it ! = pMonitor - > ItemList . end ( ) )
{
CItem * pItem = * it + + ;
if ( " TIME " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
time_sec = data - > time / 1000 ; //ʱ<> <CAB1> <EFBFBD> <EFBFBD> (<28> <> )
continue ;
}
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pItem - > strItemName ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> F
list < CSequence * > : : iterator sq = pItem - > SequenceList . begin ( ) ; //<2F> ݱ<EFBFBD> <DDB1> <EFBFBD> SequenceList
list < CSequence * > : : iterator sqEnd = pItem - > SequenceList . end ( ) ; //SequenceList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( sq ! = pItem - > SequenceList . end ( ) )
{
CSequence * pSequence = * sq + + ;
//KafkaData.strText.append(QString("{\"SEQ\":\"%1\", ").arg(pSequence->strSeq)); //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43>
2025-02-14 16:44:38 +08:00
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( line_to_phasic ( pSequence - > strSeq ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-01-16 16:17:01 +08:00
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
list < CDataValue * > : : iterator dvEnd = pSequence - > DataValueList . end ( ) ; //DataValueList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
num = num + pSequence - > DataValueList . size ( ) ;
while ( dv ! = pSequence - > DataValueList . end ( ) )
{
CDataValue * pDataValue = * dv + + ;
if ( " NOT DEFINE " = = pDataValue - > strFullName | | " not define " = = pDataValue - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
{
countflag + + ;
continue ;
}
if ( ! data - > mms_str_map . contains ( pDataValue - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
{
isJump = false ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
countflag + + ;
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" :%2, " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
else
KafkaData . strText . append ( QString ( " \" %1 \" :%2 " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
continue ;
}
try
{
if ( 0 = = time_sec % 7200 ) //2С ʱ<D0A1> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD>
{
double dTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) * pDataValue - > fCoefficient ; //<2F> ӿ<EFBFBD> <D3BF> <EFBFBD> <EFBFBD> <EFBFBD> * ϵ<> <CFB5>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
}
}
catch ( exception & e )
{
cout < < " <EFBFBD> <EFBFBD> ʷ<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //DataValueList <20> <> <EFBFBD> <EFBFBD>
if ( ! KafkaData . strText . isEmpty ( ) ) {
if ( KafkaData . strText [ KafkaData . strText . length ( ) - 1 ] = = ' , ' ) {
KafkaData . strText = KafkaData . strText . remove ( KafkaData . strText . size ( ) - 1 , 1 ) ;
KafkaData . strText . append ( " " ) ;
cout < < " KafkaData.strText = KafkaData.strText.chopped(1) " < < endl ;
}
}
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( sq ! = sqEnd ) //<2F> <> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //SequenceList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( it ! = itEnd ) //<2F> <> V<> <56> I<EFBFBD> <49> PQ<50> <51> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //ItemList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
} //MonitorList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) continue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
cout < < countflag < < " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!send name= \" DATA_TYPE \" value= \" 04 \" " < < num < < endl ;
cout < < KafkaData . strText . toAscii ( ) . data ( ) < < endl ;
if ( countflag < num & & 0 = = time_sec % 7200 ) {
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
longjumpflag = true ;
}
if ( longjumpflag = = true | | shortjumpflag = = true ) {
return 1 ;
}
//return 1; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------------------------
if ( 1 = = pDataType - > iDataType ) //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> ̬<EFBFBD> <CCAC> <EFBFBD> <EFBFBD> -----------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " HISDATA " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" " ) . arg ( pDataType - > iDataType , 2 , 10 , QChar ( ' 0 ' ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> ̬ "01"
KafkaData . strText . append ( QString ( " , \" Monitor \" : \" %1 \" " ) . arg ( data - > mp_id ) ) ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> "1100"
list < CMonitor * > : : iterator mt = pDataType - > MonitorList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> MonitorList
while ( mt ! = pDataType - > MonitorList . end ( ) )
{
CMonitor * pMonitor = * mt + + ;
KafkaData . strText . append ( QString ( " , \" %1 \" :{ " ) . arg ( " Value " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CItem * > : : iterator it = pMonitor - > ItemList . begin ( ) ; //<2F> ܱ<EFBFBD> <DCB1> <EFBFBD> ItemList
list < CItem * > : : iterator itEnd = pMonitor - > ItemList . end ( ) ; //ItemList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( it ! = pMonitor - > ItemList . end ( ) )
{
CItem * pItem = * it + + ;
if ( " FLAG " = = pItem - > strItemName ) //<2F> <EFBFBD> "FLAG"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" FLAG \" :%1, " ) . arg ( data - > flag ) ) ; //ƴ<> <C6B4> json<6F> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> ǣ<EFBFBD> 1<EFBFBD> <31> <EFBFBD> <EFBFBD> <DEB3> <EFBFBD> 0<EFBFBD> <EFBFBD> <DEB3> <EFBFBD> Ĭ<EFBFBD> <C4AC> <EFBFBD> <EFBFBD>
continue ;
}
if ( " TIME " = = pItem - > strItemName ) //<2F> <EFBFBD> "TIME"<22> <> <EFBFBD> <EFBFBD> ֹsq<73> <71> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4> <EFBFBD> ָ<EFBFBD> <D6B8>
{
KafkaData . strText . append ( QString ( " \" TIME \" :%1, " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
if ( ! data_timespan_list . contains ( data - > mp_id ) ) {
KafkaData . strText . append ( QString ( " \" interval \" :%1, " ) . arg ( 3 ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
}
else if ( data_timespan_list [ data - > mp_id ] - > msspan = = 0 )
{
KafkaData . strText . append ( QString ( " \" interval \" :%1, " ) . arg ( 3 ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
}
else {
KafkaData . strText . append ( QString ( " \" interval \" :%1, " ) . arg ( data_timespan_list [ data - > mp_id ] - > msspan ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> ̣<EFBFBD> <CCA3> <EFBFBD> <EFBFBD> <EFBFBD>
}
continue ;
}
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pItem - > strItemName ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> V<> <56> I<EFBFBD> <49> PQ
list < CSequence * > : : iterator sq = pItem - > SequenceList . begin ( ) ; //<2F> ݱ<EFBFBD> <DDB1> <EFBFBD> SequenceList
list < CSequence * > : : iterator sqEnd = pItem - > SequenceList . end ( ) ; //SequenceList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( sq ! = pItem - > SequenceList . end ( ) )
{
CSequence * pSequence = * sq + + ;
//KafkaData.strText.append(QString("{\"SEQ\":\"%1\", ").arg(pSequence->strSeq)); //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-02-14 16:44:38 +08:00
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( line_to_phasic ( pSequence - > strSeq ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
2025-01-16 16:17:01 +08:00
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
list < CDataValue * > : : iterator dvEnd = pSequence - > DataValueList . end ( ) ; //DataValueList<73> <74> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
while ( dv ! = pSequence - > DataValueList . end ( ) )
{
CDataValue * pDataValue = * dv + + ;
if ( " NOT DEFINE " = = pDataValue - > strFullName | | " not define " = = pDataValue - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pDataValue - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
{
isJump = false ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
//zw<7A> <EFBFBD> 2023-8-28 <20> <> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" :%2, " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
else
KafkaData . strText . append ( QString ( " \" %1 \" :%2 " ) . arg ( pDataValue - > strName ) . arg ( " null " ) ) ; //ƴ<> <C6B4>
if ( pDataValue - > BaseFlag = = " 1 " ) {
2025-02-21 16:24:41 +08:00
//errorlog_datamatch(pDataValue->strFullName, &data_match_map_1);//lnkɾ<6B> <C9BE>
2025-01-16 16:17:01 +08:00
}
else {
2025-02-21 16:24:41 +08:00
//errorlog_datamatch(pDataValue->strFullName, &data_match_map_2);//lnkɾ<6B> <C9BE>
2025-01-16 16:17:01 +08:00
}
continue ;
}
try
{
if ( pDataValue - > strFullName . indexOf ( " $ang$f " ) ! = - 1 ) //<2F> <> <EFBFBD> <EFBFBD> 61850<35> <30> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> к<EFBFBD> <D0BA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǵĶ<C7B5> <C4B6> <EFBFBD>
{
double dAngleTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) ; //<2F> Ƕ<EFBFBD> ֵ(-180<38> <30> ~ 180<38> <30> )
dAngleTemp = dAngleTemp > 180.0f ? dAngleTemp - 360.0f : dAngleTemp ;
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dAngleTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dAngleTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> Ƕ<EFBFBD> ֵ)
//zw<7A> <EFBFBD> 2023 - 8 - 23 <20> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> жϺ <D0B6> <CFBA> <EFBFBD> <20> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ʵ<> <CAB5> ֵ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ѹ<EFBFBD> ȼ<EFBFBD>
2025-02-21 16:24:41 +08:00
//errorlog_num(pDataValue, dAngleTemp, data->voltage_level, &data_reason_map, data->time);
2025-01-16 16:17:01 +08:00
}
else
{
double dTemp = data - > mms_str_map . value ( pDataValue - > strFullName ) * pDataValue - > fCoefficient ; //<2F> ӿ<EFBFBD> <D3BF> <EFBFBD> <EFBFBD> <EFBFBD> * ϵ<> <CFB5>
if ( dv ! = dvEnd ) //<2F> ǵ<EFBFBD> <C7B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵԪ<D6B5> <D4AA>
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" , " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> ǽǶ<C7BD> ֵ)
else
KafkaData . strText . append ( QString ( " \" %1 \" : \" %2 \" " ) . arg ( pDataValue - > strName ) . arg ( QString : : number ( dTemp , 10 , 6 ) ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ֵ(<28> ǽǶ<C7BD> ֵ)
//zw<7A> <EFBFBD> 2023 - 8 - 23 <20> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> жϺ <D0B6> <CFBA> <EFBFBD> <20> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> ʵ<> <CAB5> ֵ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> ѹ<EFBFBD> ȼ<EFBFBD>
2025-02-21 16:24:41 +08:00
//errorlog_num(pDataValue, dTemp, data->voltage_level, &data_reason_map, data->time);
2025-01-16 16:17:01 +08:00
}
}
catch ( exception & e )
{
cout < < " <EFBFBD> <EFBFBD> ʷ<EFBFBD> <EFBFBD> ̬<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //DataValueList <20> <> <EFBFBD> <EFBFBD>
if ( ! KafkaData . strText . isEmpty ( ) ) {
if ( KafkaData . strText [ KafkaData . strText . length ( ) - 1 ] = = ' , ' ) {
KafkaData . strText = KafkaData . strText . remove ( KafkaData . strText . size ( ) - 1 , 1 ) ;
KafkaData . strText . append ( " " ) ;
cout < < " KafkaData.strText = KafkaData.strText.chopped(1) " < < endl ;
}
}
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( sq ! = sqEnd ) //<2F> <> A<EFBFBD> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //SequenceList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
if ( it ! = itEnd ) //<2F> <> V<> <56> I<EFBFBD> <49> PQ<50> <51> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA>
KafkaData . strText . append ( " }, " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
else
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β
} //ItemList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) break ; //<2F> <> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
} //MonitorList <20> <> <EFBFBD> <EFBFBD>
if ( isJump ) continue ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ<EFBFBD> <D1AD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
//lnk20241122<32> <32> <EFBFBD> <EFBFBD> ¼<EFBFBD> <C2BC> Щ
if ( false ) //zw<7A> <EFBFBD> 2023-8-28 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ƥ<> <C6A5> <EFBFBD> <EFBFBD> <20> <> ־<EFBFBD> <D6BE> ¼ִ<C2BC> <D6B4> <EFBFBD> ж<EFBFBD> <D0B6> <EFBFBD>
{
cout < < " !!!!!!!!!!!!!!!!!!!!!!=============== " < < data_match_map_1 . count ( ) < < " -------- " < < data_match_map_2 . count ( ) < < endl ;
cout < < " !!!!!!!!!!!!!!!!!!!!!!--------------- " < < data_reason_map . count ( ) < < endl ;
if ( data_match_map_1 . count ( ) + data_match_map_2 . count ( ) < = 1200 ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> Լ<EFBFBD> ¼ Ĭ<> <C4AC> Ϊtrue ֻҪ<D6BB> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> kafka<6B> <61> ¼<EFBFBD> <C2BC> ִ<EFBFBD> <D6B4>
{
errorlog_dataintegrity_timespanlist ( data - > mp_id , data - > time ) ;
errorlog_dataintegrity_timespanlist_2 ( data - > mp_id ) ;
QDateTime dataintegrity_time = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
QString tmp_chr2 = dataintegrity_time . toString ( " yyyy-MM-dd hh:mm:ss " ) ;
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> Լ<EFBFBD> ¼lnk202411-6
//cout << errorlog_dataintegrity_pgsql(tmp_chr1, tmp_chr2, data->mp_id,true).toAscii().data() << endl;
}
if ( data_reason_map . count ( ) ! = 0 ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> Լ<EFBFBD> ¼ ֻҪmap<61> <70> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> <20> <> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ־
{
QString reasonlog = errorlog_num_json ( data - > mp_id , data_reason_map ) ;
QDateTime savetime = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString Qfilename , Qsavename ;
Qfilename . append ( " comtrade/ " ) . append ( data - > mp_id ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMdd " ) ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _reason.log " ) ;
Qsavename . append ( " /FeProject/dat/ " ) . append ( data - > mp_id ) . append ( " _ " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _reason.log " ) ;
char file_name [ 256 ] ;
memset ( file_name , 0 , 256 ) ;
sprintf ( file_name , " %s " , Qfilename . toAscii ( ) . data ( ) ) ;
char save_name [ 256 ] ;
memset ( save_name , 0 , 256 ) ;
sprintf ( save_name , " %s " , Qsavename . toAscii ( ) . data ( ) ) ;
cout < < file_name < < " !!!!!!!!!!!!!!!!!!!!!!!!!! " < < save_name < < endl ;
oss_data_t OssData ;
OssData . filename = file_name ;
OssData . savename = save_name ;
OssData . data = reasonlog ;
QDateTime dataintegrity_time = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
OssData . id = data - > mp_id ;
OssData . time = tmp_chr1 ; //ʱ<> <CAB1>
OssData . list_num = data_reason_map . size ( ) ;
OssData . log_name = " reason " ;
if ( data - > time % 3600000 = = 0 ) {
oss_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
oss_data_list . append ( OssData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
oss_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
}
//std::ofstream file(save_name); // <20> <> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <F3A3ACB4> <EFBFBD> <EFBFBD> ļ<EFBFBD> example.txt
//if (file.is_open()) { // <20> ж<EFBFBD> <D0B6> ļ<EFBFBD> <C4BC> Ƿ<EFBFBD> <C7B7> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD>
// file << reasonlog.toAscii().data() << "\n";
// file.close(); // <20> ر<EFBFBD> <D8B1> ļ<EFBFBD>
//}
//else {
// cout << "Unable to open file\n" << endl;
//}
//PutOSS(file_name, save_name);
//std::remove(save_name);
/*QDateTime dataintegrity_time = QDateTime::fromTime_t(data->time / 1000);
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
QString pgsql ;
pgsql . append ( errorlog_num_pgsql ( data - > mp_id , tmp_chr1 , Qfilename , data_reason_map . size ( ) ) ) ;
cout < < pgsql . toAscii ( ) . data ( ) < < endl ; */
}
if ( data_match_map_1 . count ( ) ! = 0 | | data_match_map_2 . count ( ) ! = 0 ) //ƥ<> <C6A5> <EFBFBD> ʼ <EFBFBD> ¼ ֻҪmap<61> <70> <EFBFBD> <EFBFBD> Ԫ<EFBFBD> <D4AA> <20> <> ¼<EFBFBD> <C2BC> ƥ<EFBFBD> <C6A5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
{
QString matchlog = errorlog_datamatch_json ( data_match_map_1 , data_match_map_2 , data - > time ) ;
//cout << matchlog.toAscii().data() << endl;
QDateTime savetime = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString Qfilename , Qsavename ;
Qfilename . append ( " comtrade/ " ) . append ( data - > mp_id ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMdd " ) ) . append ( " / " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _match.log " ) ;
Qsavename . append ( " /FeProject/dat/ " ) . append ( data - > mp_id ) . append ( " _ " ) . append ( savetime . toString ( " yyyyMMddhhmmss " ) ) . append ( " _match.log " ) ;
char file_name [ 256 ] ;
memset ( file_name , 0 , 256 ) ;
sprintf ( file_name , " %s " , Qfilename . toAscii ( ) . data ( ) ) ;
char save_name [ 256 ] ;
memset ( save_name , 0 , 256 ) ;
sprintf ( save_name , " %s " , Qsavename . toAscii ( ) . data ( ) ) ;
cout < < file_name < < " !!!!!!!!!!!!!!!!!!!!!!!!!! " < < save_name < < endl ;
oss_data_t OssData ;
OssData . filename = file_name ;
OssData . savename = save_name ;
OssData . data = matchlog ;
QDateTime dataintegrity_time = QDateTime : : fromTime_t ( data - > time / 1000 ) ;
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
OssData . id = data - > mp_id ;
OssData . time = tmp_chr1 ; //ʱ<> <CAB1>
//match_log
OssData . base_mat_num = pDataType - > BaseFlag1 ;
OssData . adv_mat_num = pDataType - > BaseFlag1 + pDataType - > BaseFlag0 ;
OssData . base_act_num = pDataType - > BaseFlag1 - data_match_map_1 . count ( ) ;
OssData . adv_act_num = pDataType - > BaseFlag1 + pDataType - > BaseFlag0 - data_match_map_1 . count ( ) - data_match_map_2 . count ( ) ;
OssData . log_name = " match " ;
if ( data - > time % 3600000 = = 0 ) {
oss_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
oss_data_list . append ( OssData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
oss_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
}
//std::ofstream file(save_name); // <20> <> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <F3A3ACB4> <EFBFBD> <EFBFBD> ļ<EFBFBD> example.txt
//if (file.is_open()) { // <20> ж<EFBFBD> <D0B6> ļ<EFBFBD> <C4BC> Ƿ<EFBFBD> <C7B7> ɹ<EFBFBD> <C9B9> <EFBFBD> <EFBFBD> <EFBFBD>
// file << matchlog.toAscii().data() << "\n";
// file.close(); // <20> ر<EFBFBD> <D8B1> ļ<EFBFBD>
//}
//else {
// cout << "Unable to open file\n" << endl;
//}
/*PutOSS(file_name, save_name);
std : : remove ( save_name ) ; */
//GetOSS(file_name, savename);
/*QDateTime dataintegrity_time = QDateTime::fromTime_t(data->time / 1000);
QString tmp_chr1 = dataintegrity_time . toString ( " yyyy-MM-dd " ) ;
QString pqsql ;
pqsql . append ( errorlog_datamatch_pgsql ( data - > mp_id , tmp_chr1 , pDataType - > BaseFlag1 , pDataType - > BaseFlag1 + pDataType - > BaseFlag0 , pDataType - > BaseFlag1 - data_match_map_1 . count ( ) , pDataType - > BaseFlag1 + pDataType - > BaseFlag0 - data_match_map_1 . count ( ) - data_match_map_2 . count ( ) , Qfilename ) ) ;
cout < < pqsql . toAscii ( ) . data ( ) < < endl ; */
}
QMap < QString , QDateTime > ( ) . swap ( data_match_map_1 ) ;
QMap < QString , QDateTime > ( ) . swap ( data_match_map_2 ) ;
QMap < QString , MP_RATIONALITY * > ( ) . swap ( data_reason_map ) ;
}
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> --------------------------------
} //DataTypeList <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> HISDATA <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( " RTDATASOE " = = pTopic - > strTopic ) //Topic<69> <63> <EFBFBD> <EFBFBD> RTDATASOE----------------------------------------------------------
{
list < CDataType * > : : iterator dt = pTopic - > DataTypeList . begin ( ) ; //<2F> ڱ<EFBFBD> <DAB1> <EFBFBD> DataTypeList
while ( dt ! = pTopic - > DataTypeList . end ( ) )
{
int triggerCount = 0 ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
CDataType * pDataType = * dt + + ;
if ( 1 = = pDataType - > iDataType ) //<2F> <> -<2D> <> SOE<4F> <45> ̬<EFBFBD> ¼<EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " RTDATASOE " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" , " ) . arg ( pDataType - > iDataType ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " \" %1 \" :[ " ) . arg ( data - > mp_id ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CEventData * > : : iterator ed = pDataType - > SOEList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> SOEList
list < CEventData * > : : iterator edEnd = pDataType - > SOEList . end ( ) ; //SOEListβԪ<CEB2> <D4AA>
while ( ed ! = pDataType - > SOEList . end ( ) )
{
CEventData * pEventData = * ed + + ;
if ( " NOT DEFINE " = = pEventData - > strFullName | | " not define " = = pEventData - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pEventData - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
continue ;
try
{
double dTemp = data - > mms_str_map . value ( pEventData - > strFullName ) ;
if ( dTemp > = 0.9 ) //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
{
if ( 0 = = triggerCount ) //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
{
KafkaData . strText . append ( QString ( " \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
triggerCount + + ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
}
else
KafkaData . strText . append ( QString ( " , \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
}
}
catch ( exception & e )
{
cout < < " SOE<EFBFBD> <EFBFBD> ̬<EFBFBD> ¼<EFBFBD> ƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //SOEList <20> <> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " ]} " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> SOE<4F> <45> ̬<EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---------------------------------
if ( 1 = = pDataType - > iDataType ) //<2F> <> -<2D> <> SOE<4F> <45> ̬<EFBFBD> ¼<EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " RTDATASOE " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" , " ) . arg ( pDataType - > iDataType ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " \" %1 \" :[ " ) . arg ( data - > mp_id ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CEventData * > : : iterator ed = pDataType - > SOEList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> SOEList
list < CEventData * > : : iterator edEnd = pDataType - > SOEList . end ( ) ; //SOEListβԪ<CEB2> <D4AA>
while ( ed ! = pDataType - > SOEList . end ( ) )
{
CEventData * pEventData = * ed + + ;
if ( " NOT DEFINE " = = pEventData - > strFullName | | " not define " = = pEventData - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pEventData - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
continue ;
try
{
double dTemp = data - > mms_str_map . value ( pEventData - > strFullName ) ;
if ( dTemp > = 0.9 ) //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
{
if ( 0 = = triggerCount ) //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
{
KafkaData . strText . append ( QString ( " \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
triggerCount + + ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
}
else
KafkaData . strText . append ( QString ( " , \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
}
}
catch ( exception & e )
{
cout < < " SOE<EFBFBD> <EFBFBD> ̬<EFBFBD> ¼<EFBFBD> ƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //SOEList <20> <> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " ]} " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> SOE<4F> <45> ̬<EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---------------------------------
if ( 1 = = pDataType - > iDataType ) //<2F> <> -<2D> <> SOE״̬<D7B4> ¼<EFBFBD> ------------------------------------------------------------
{
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = data - > monitorId ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ID
KafkaData . mp_id = data - > mp_id ;
KafkaData . strTopic = " RTDATASOE " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText = " " ; //kafka<6B> <61> <EFBFBD> ͵<EFBFBD> json<6F> ַ<EFBFBD> <D6B7> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( QString ( " \" DATA_TYPE \" : \" %1 \" , " ) . arg ( pDataType - > iDataType ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" TIME \" : \" %1 \" , " ) . arg ( data - > time ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " \" %1 \" :[ " ) . arg ( data - > mp_id ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
list < CEventData * > : : iterator ed = pDataType - > SOEList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> SOEList
list < CEventData * > : : iterator edEnd = pDataType - > SOEList . end ( ) ; //SOEListβԪ<CEB2> <D4AA>
while ( ed ! = pDataType - > SOEList . end ( ) )
{
CEventData * pEventData = * ed + + ;
if ( " NOT DEFINE " = = pEventData - > strFullName | | " not define " = = pEventData - > strFullName ) //<2F> <> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD> <EFBFBD> <EFBFBD> $ <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> ƴ<EFBFBD> <C6B4> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
continue ;
if ( ! data - > mms_str_map . contains ( pEventData - > strFullName ) ) //ȷ<> <C8B7> <EFBFBD> ֵ<EFBFBD> <D6B5> ﲻ<EFBFBD> <EFB2BB> <EFBFBD> и<EFBFBD> key
continue ;
try
{
double dTemp = data - > mms_str_map . value ( pEventData - > strFullName ) ;
if ( dTemp > = 0.9 ) //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD>
{
if ( 0 = = triggerCount ) //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
{
KafkaData . strText . append ( QString ( " \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
triggerCount + + ; //SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD>
}
else
KafkaData . strText . append ( QString ( " , \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ; //ƴ<> <C6B4> json SOE<4F> <45> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʶ
}
}
catch ( exception & e )
{
cout < < " SOE״̬<EFBFBD> ¼<EFBFBD> ƴ<EFBFBD> <EFBFBD> json<EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <EFBFBD> : " < < e . what ( ) < < endl ;
return false ;
}
} //SOEList <20> <> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " ]} " ) ; //ƴ<> <C6B4> json<6F> <6E> ̬<EFBFBD> <CCAC> <EFBFBD> ݽ<EFBFBD> β
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return 1 ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ú<EFBFBD> <C3BA> <EFBFBD> <EFBFBD> <EFBFBD> ֹͣ<CDA3> <D6B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
} //<2F> <> -<2D> <> SOE״̬<D7B4> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ---------------------------------
} //DataTypeList <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> RTDATASOE <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
} //TopicList <20> <> <EFBFBD> <EFBFBD>
} //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
return 1 ;
}
2025-02-14 16:44:38 +08:00
2025-01-16 16:17:01 +08:00
/*//<2F> <> <EFBFBD> <EFBFBD> json<6F> <6E> ̬<EFBFBD> <CCAC> Ϣ zw<7A> <EFBFBD> 2023-8-25 <20> <> <EFBFBD> <EFBFBD> json<6F> ṹ
int transfer_json_qvvr_data ( unsigned int func_type , int monitor_id , float mag , float dur , long long start_tm , long long end_tm , int dis_kind , char * uuid_cfg , char * uuid_dat , char * mp_id , char * Qvvr_rptname , char * devtype ) //<2F> <> <EFBFBD> <EFBFBD> json<6F> <6E> ̬<EFBFBD> <CCAC> Ϣ <20> <> <EFBFBD> <EFBFBD> > MMS_Wave
{
XmlConfig c_xmlcfg ;
if ( xmlinfo_list . contains ( devtype ) ) {
c_xmlcfg = xmlinfo_list [ devtype ] - > xmlcfg ;
}
else {
c_xmlcfg = xmlcfg ;
}
//if (0 == monitor_id) //jsonƴ<6E> Ӽ<EFBFBD> <D3BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA>
// return 0;
if ( strlen ( mp_id ) = = 0 ) {
return 0 ;
}
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = monitor_id ;
KafkaData . mp_id = mp_id ;
// if (400 == func_type) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> > MMS_Recall
// KafkaData.strTopic = "HISDATA"; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
// else
// KafkaData.strTopic = "RTDATA";
KafkaData . strTopic = " Event " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
if ( 400 = = func_type | | 500 = = func_type | | 600 = = func_type | | 700 = = func_type ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> > MMS_Recall
KafkaData . strText . append ( " \" DATA_TYPE \" : \" 04 \" , " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
else
KafkaData . strText . append ( " \" DATA_TYPE \" : \" 04 \" , " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" Monitor \" : \" %1 \" , " ) . arg ( mp_id ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" Value \" :{ " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" FLAG \" :%1, " ) . arg ( 1 ) ) ; //ƴ<> <C6B4> <20> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" TIME \" :%1, " ) . arg ( start_tm ) ) ; //ƴ<> <C6B4> ʱ<> <CAB1>
KafkaData . strText . append ( " \" VOLTAGE \" :{ " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> VOLTAGE
KafkaData . strText . append ( QString ( " \" MAG \" :%1 " ) . arg ( mag ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѹ<EFBFBD> <D1B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
KafkaData . strText . append ( QString ( " , \" DUR \" :%1 " ) . arg ( dur * 1000 ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " , \" STARTTIME \" :%1 " ) . arg ( start_tm ) ) ; //ƴ<> <C6B4> <20> <> ʼ ʱ<CABC> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " , \" ENDTIME \" :%1 " ) . arg ( end_tm ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " , \" DISKIND \" : \" %1%2 \" " ) . arg ( " 0 " ) . arg ( dis_kind ) ) ; //ƴ<> <C6B4> <20> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> (1210001-<2D> <> <EFBFBD> <EFBFBD> 1210002-<2D> ݽ<EFBFBD> 1210004-<2D> ж<EFBFBD> 1210003-<2D> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " , \" CFG_FILE \" : \" %1 \" " ) . arg ( uuid_cfg ) ) ; //ƴ<> <C6B4> cfg<66> <67> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " , \" DAT_FILE \" : \" %1 \" " ) . arg ( uuid_dat ) ) ; //ƴ<> <C6B4> dat<61> <74> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD>
if ( c_xmlcfg . WavePhasicFlag = = " 1 " ) {
QString Qvvr_Rptname ;
Qvvr_Rptname . append ( Qvvr_rptname ) ;
if ( Qvvr_Rptname . indexOf ( c_xmlcfg . WavePhasicA ) ! = - 1 ) {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " A " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
else if ( Qvvr_Rptname . indexOf ( c_xmlcfg . WavePhasicB ) ! = - 1 ) {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " B " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
else if ( Qvvr_Rptname . indexOf ( c_xmlcfg . WavePhasicC ) ! = - 1 ) {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " C " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
else {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " unknow " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
}
else {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " unknow " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD>
printf ( " transfer json qvvr data: %s==%s \n " , KafkaData . strText . toStdString ( ) . c_str ( ) , Qvvr_rptname ) ;
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//if (400 != func_type) { //<2F> Dz<EFBFBD> <C7B2> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD>
// KafkaData.strTopic = "Event";
// kafka_data_list.append(KafkaData);
//}
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return 1 ;
} */
void processGGIO_start_data_end ( char * mp_id , char * fullname , double v , long long time , char * devtype , int monitor_id )
{
XmlConfig c_xmlcfg ;
if ( xmlinfo_list . contains ( devtype ) ) {
c_xmlcfg = xmlinfo_list [ devtype ] - > xmlcfg ;
}
else {
c_xmlcfg = xmlcfg ;
}
QString Full_name ;
Full_name . append ( fullname ) ;
Ckafka_data_t KafkaData ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = monitor_id ;
KafkaData . mp_id = mp_id ;
KafkaData . strTopic = " Alm " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
KafkaData . strText . append ( " \" DATA_TYPE \" : \" 05 \" , " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" Monitor \" : \" %1 \" , " ) . arg ( mp_id ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" Value \" :{ " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" FLAG \" :%1, " ) . arg ( 1 ) ) ; //ƴ<> <C6B4> <20> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" TIME \" :%1, " ) . arg ( time ) ) ; //ƴ<> <C6B4> ʱ<> <CAB1>
KafkaData . strText . append ( QString ( " \" SOE \" :[ " ) ) ; //ƴ<> <C6B4> SOE
list < CEventData * > : : iterator ed = c_xmlcfg . SOEList . begin ( ) ; //<2F> ۱ <EFBFBD> <DBB1> <EFBFBD> SOEList
while ( ed ! = c_xmlcfg . SOEList . end ( ) )
{
CEventData * pEventData = * ed + + ;
if ( pEventData - > strFullName . indexOf ( Full_name ) ! = - 1 )
{
KafkaData . strText . append ( QString ( " \" %1 \" " ) . arg ( pEventData - > triggerFlag ) ) ;
break ;
}
}
KafkaData . strText . append ( QString ( " ] " ) ) ; //ƴ<> <C6B4> SOE<4F> <45> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> value<75> <65> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD>
printf ( " transfer json ggio data: %s==%s \n " , KafkaData . strText . toStdString ( ) . c_str ( ) , fullname ) ;
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
}
//zw<7A> <EFBFBD> 2023-8-31 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> list<73> <74> <EFBFBD> <EFBFBD> д<> <D0B4> xml<6D> <6C> <EFBFBD> ݿ<EFBFBD> <DDBF> <EFBFBD> Ϣ ģ<> ͱ<EFBFBD> <CDB1> <EFBFBD> <20> ն<EFBFBD> <D5B6> ͺ <EFBFBD> <20> ն˳<D5B6> <CBB3> <EFBFBD> oss<73> 洢·<E6B4A2> <C2B7> ʱ<> <CAB1>
//lnk<6E> <EFBFBD> 2024-10-28 ȥ<> <C8A5> <EFBFBD> ն˳<D5B6> <CBB3> ң<EFBFBD> <D2A3> <EFBFBD> <EFBFBD> <EFBFBD> Զ<EFBFBD> <D4B6> ģ<EFBFBD> <C4A3> <EFBFBD> ļ<EFBFBD> ·<EFBFBD> <C2B7>
//void Set_xml_databaseinfo(char* MODEL_ID, char* TMNL_TYPE, char* TMNL_FACTORY, char* FILE_NAME, int year, int month, int day, int hour, int minute, int second)
void Set_xml_databaseinfo ( char * MODEL_ID , char * TMNL_TYPE , char * FILE_PATH , char * FILE_NAME , int year , int month , int day , int hour , int minute , int second )
{
if ( MODEL_ID = = NULL | | TMNL_TYPE = = NULL | | FILE_PATH = = NULL | | FILE_NAME = = NULL )
{
cout < < " Function Set_xml_databaseinfo Error! " < < endl ;
return ;
}
cout < < " Function Set_xml_databaseinfo Start! " < < endl ;
QString id , type , filepath , name ;
id . append ( MODEL_ID ) ;
type . append ( TMNL_TYPE ) ;
filepath . append ( FILE_PATH ) ;
name . append ( FILE_NAME ) ;
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> lnk20241125
cout < < " setxmldatabase: " < < TMNL_TYPE < < endl ;
2025-02-08 17:04:39 +08:00
if ( ! xmlinfo_list . contains ( type ) ) //<2F> <> <EFBFBD> ն<EFBFBD> <D5B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> б <EFBFBD> <D0B1> <EFBFBD> û<EFBFBD> 鵽
2025-01-16 16:17:01 +08:00
{
2025-01-17 17:10:18 +08:00
Xmldata * config = new Xmldata ( ) ; //û<> ҵ<EFBFBD> <D2B5> Ͳ<EFBFBD> <CDB2> <EFBFBD> <EFBFBD> µ<EFBFBD> <C2B5> ն<EFBFBD> <D5B6> <EFBFBD> <EFBFBD> ͵<EFBFBD> <CDB5> б <EFBFBD> <D0B1> <EFBFBD>
2025-01-16 16:17:01 +08:00
xmlinfo_list . insert ( type , config ) ;
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> lnk20241125
cout < < " xmlinfo_list insert type: " < < type . toStdString ( ) < < endl ;
}
2025-02-08 17:04:39 +08:00
else //<2F> 鵽<EFBFBD> <EFBFBD> <CDB8> ¸ <EFBFBD> <C2B8> <EFBFBD>
2025-01-16 16:17:01 +08:00
{
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> lnk20241125
cout < < " xmlinfo_list type contain: " < < type . toStdString ( ) < < endl ;
QDateTime time ( QDate ( year , month , day ) , QTime ( hour , minute , second ) ) ;
2025-01-17 17:10:18 +08:00
if ( xmlinfo_list [ type ] - > xmlbase . datetime = = time ) { //<2F> ն<EFBFBD> <D5B6> ͺ Ÿ<CDBA> <C5B8> ±<EFBFBD> ־<EFBFBD> <D6BE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͺ Ŵ<CDBA> <C5B4> <EFBFBD> <F3A3ACB5> <EFBFBD> ʵ<EFBFBD> <CAB5> <EFBFBD> õ<EFBFBD> ӳ<EFBFBD> <D3B3> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ߸<EFBFBD> <DFB8> <EFBFBD> <EFBFBD> <EFBFBD> ԭ<EFBFBD> <D4AD> <EFBFBD> <EFBFBD> ӳ<EFBFBD> <D3B3> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ܳ<EFBFBD> <DCB3> <EFBFBD> <EFBFBD> ⡣<EFBFBD> <E2A1A3> <EFBFBD> ݿ<EFBFBD> <DDBF> <EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> ͺ ź<CDBA> ӳ<EFBFBD> <D3B3> <EFBFBD> ļ<EFBFBD> ʱҪע<D2AA> <D7A2>
2025-02-13 11:51:05 +08:00
xmlinfo_list [ type ] - > updataflag = false ; //ʱ<> <CAB1> ֵһ <D6B5> <D2BB> ˵<EFBFBD> <CBB5> <EFBFBD> <EFBFBD> û<EFBFBD> и<EFBFBD> <D0B8> £<EFBFBD> <C2A3> <EFBFBD> ǰҵ<C7B0> <D2B5> <EFBFBD> в<EFBFBD> <D0B2> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ÿ<EFBFBD> ζ<EFBFBD> <CEB6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2025-01-16 16:17:01 +08:00
}
else {
xmlinfo_list [ type ] - > updataflag = true ;
}
2025-02-08 17:04:39 +08:00
//lnk20250208<30> <38> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʹ <EFBFBD> <CDB4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ<EFBFBD> <D6B4>
2025-01-16 16:17:01 +08:00
}
2025-02-08 17:04:39 +08:00
//lnk20250208<30> <38> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> <EFBFBD> Ǹ<EFBFBD> <C7B8> Ƕ<EFBFBD> <C7B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <D7B7>
//xmlinfo_list[type]->xmlbase.MODEL_ID.append(id);
//xmlinfo_list[type]->xmlbase.TMNL_TYPE.append(type);
//xmlinfo_list[type]->xmlbase.FILE_PATH.append(filepath);
//xmlinfo_list[type]->xmlbase.FILE_NAME.append(name);
xmlinfo_list [ type ] - > xmlbase . MODEL_ID = id ;
xmlinfo_list [ type ] - > xmlbase . TMNL_TYPE = type ;
xmlinfo_list [ type ] - > xmlbase . FILE_PATH = filepath ;
xmlinfo_list [ type ] - > xmlbase . FILE_NAME = name ;
2025-01-16 16:17:01 +08:00
QDateTime time ( QDate ( year , month , day ) , QTime ( hour , minute , second ) ) ;
xmlinfo_list [ type ] - > xmlbase . datetime = time ;
2025-02-14 16:44:38 +08:00
cout < < " ##################################isdelta_flag is " < < isdelta_flag < < endl ;
/*lnk2024-8-14 <20> <> <EFBFBD> <EFBFBD> isdelta_flag ѡ <> <D1A1> xmllist*/
if ( isdelta_flag ) {
cout < < " xmllist2 create " < < endl ;
if ( ! xmlinfo_list2 . contains ( type ) )
{
Xmldata * config2 = new Xmldata ( ) ;
xmlinfo_list2 . insert ( type , config2 ) ;
}
else
{
QDateTime time ( QDate ( year , month , day ) , QTime ( hour , minute , second ) ) ;
if ( xmlinfo_list2 [ type ] - > xmlbase . datetime = = time ) {
xmlinfo_list2 [ type ] - > updataflag = false ;
}
else {
xmlinfo_list2 [ type ] - > updataflag = true ;
}
}
xmlinfo_list2 [ type ] - > xmlbase . MODEL_ID = id ;
xmlinfo_list2 [ type ] - > xmlbase . TMNL_TYPE = type ;
xmlinfo_list2 [ type ] - > xmlbase . FILE_PATH = filepath ;
xmlinfo_list2 [ type ] - > xmlbase . FILE_NAME = name ;
xmlinfo_list2 [ type ] - > xmlbase . datetime = time ;
}
/*lnk2024-8-14*/
2025-01-16 16:17:01 +08:00
char file_name [ 256 ] ;
memset ( file_name , 0 , 256 ) ;
sprintf ( file_name , " %s " , FILE_NAME ) ;
QString Qsavename ;
Qsavename . append ( " /FeProject/dat/ " ) . append ( id ) . append ( " .xml " ) ; //<2F> <> <EFBFBD> ر<EFBFBD> <D8B1> <EFBFBD> ·<EFBFBD> <C2B7>
char save_name [ 256 ] ;
memset ( save_name , 0 , 256 ) ;
sprintf ( save_name , " %s " , Qsavename . toAscii ( ) . data ( ) ) ;
cout < < file_name < < " !!!!!!!!!!!!!!!!!!!!!!!!!! " < < save_name < < endl ;
//20241028 lnk <20> 滻Ϊ<E6BBBB> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD> web<65> ӿ<EFBFBD>
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> ؽӿڲ<D3BF> <DAB2> <EFBFBD>
//<2F> ӿ<EFBFBD> ʾ <EFBFBD> <CABE> http://192.168.1.125:10215/file/download?filePath=/path/xxx.txt
// <20> <> <EFBFBD> <EFBFBD> web<65> <62> ȡ<EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD>
char * fileContent = NULL ;
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//char downpath[128] = {"/home/pq/FeProject/src/pt61850netd_pqfe_lnk/download/123.txt"};
//char download[128] = {"{\"filename\":\"file_test.txt\"}"};
//SendJsonAPI_web("http://192.168.1.149:8091/file/download", "", download, &fileContent);
std : : string fullPath = std : : string ( " filePath= " ) + std : : string ( FILE_PATH ) ;
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
std : : cout < < " fullpath " < < fullPath < < std : : endl ;
SendJsonAPI_web ( WEB_FILEDOWNLOAD , fullPath . c_str ( ) , " " , & fileContent ) ;
if ( fileContent ! = NULL ) {
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD>
//<2F> <> <EFBFBD> <EFBFBD>
//std::ofstream outFile(downpath, std::ios::binary);//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> Ƶķ<C6B5> ʽ <EFBFBD> <CABD> <EFBFBD> <EFBFBD>
std : : ofstream outFile ( save_name , std : : ios : : out ) ; //<2F> ı <EFBFBD> ģʽ <C4A3> <CABD> <EFBFBD> <EFBFBD>
if ( outFile . is_open ( ) ) {
// <20> <> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> д<EFBFBD> <D0B4> <EFBFBD> ļ<EFBFBD>
outFile . write ( fileContent , strlen ( fileContent ) ) ;
outFile . close ( ) ;
std : : cout < < " File saved successfully! " < < std : : endl ;
} else {
std : : cerr < < " Error: Unable to open file for writing. " < < std : : endl ;
}
// <20> ͷŷ<CDB7> <C5B7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ<EFBFBD>
free ( fileContent ) ;
} else {
std : : cerr < < " Error: Unable to download file. " < < std : : endl ;
}
/*if (FILE_FLAG == 1) {
GetOSS ( file_name , save_name ) ;
}
else if ( FILE_FLAG = = 2 ) {
OBSFile ( save_name , file_name , " getObject " ) ;
}
else if ( FILE_FLAG = = 3 ) {
//OBSFile(save_name, file_name, "getObject");
}
else {
} */
2025-02-17 16:58:14 +08:00
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( xmlinfo_list . contains ( type ) ) {
std : : cout < < " xmlinfo_list.contains " < < type . toStdString ( ) < < std : : endl ;
}
else {
std : : cout < < " ??????????????????xmlinfo_list not contains " < < type . toStdString ( ) < < std : : endl ;
}
2025-01-16 16:17:01 +08:00
}
//zw<7A> <EFBFBD> 2023-9-4 <20> <> ȡװ<C8A1> <D7B0> <EFBFBD> <EFBFBD> <EFBFBD> Ͷ<EFBFBD> Ӧ<EFBFBD> <D3A6> xml<6D> ļ<EFBFBD>
void Set_xml_nodeinfo ( )
{
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧxml<6D> ļ<EFBFBD> ʱ<EFBFBD> <CAB1> Ĭ<EFBFBD> Ͻ<EFBFBD> <CFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( ! inited ) //<2F> <> ʼ <EFBFBD> <CABC> JiangSu_Config.xml
{
QString path ;
path . append ( " not define " ) ;
2025-02-14 16:44:38 +08:00
ParseXMLConfig2 ( 0 , & xmlcfg , & topicList , path ) ; //<2F> <> <EFBFBD> <EFBFBD> ParseXMLConfig() <20> <> <EFBFBD> <EFBFBD> JiangSu_Config.xml<6D> <6C> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD>
if ( isdelta_flag ) {
ParseXMLConfig2 ( 1 , & xmlcfg2 , & topicList2 , path ) ; //lnk2024-8-13<31> <33> <EFBFBD> ͽ<EFBFBD> <CDBD> <EFBFBD>
}
2025-01-16 16:17:01 +08:00
inited = true ;
}
if ( xmlinfo_list . size ( ) ! = 0 )
{
cout < < " !!!!!!!!!! xmlinfo_list.size() != 0 !!!!!!!!!!! " < < endl ;
for ( QMap < QString , Xmldata * > : : iterator it2 = xmlinfo_list . begin ( ) ; it2 ! = xmlinfo_list . end ( ) ; + + it2 )
{
QString key2 = it2 . key ( ) ;
Xmldata * value2 = it2 . value ( ) ;
if ( value2 - > updataflag = = true ) {
2025-02-14 16:44:38 +08:00
ParseXMLConfig2 ( 0 , & ( value2 - > xmlcfg ) , & ( value2 - > topicList ) , value2 - > xmlbase . MODEL_ID ) ;
}
}
//lnk2024-8-14 ѡ <> <D1A1> <EFBFBD> <EFBFBD> <EFBFBD> ͽ<EFBFBD> <CDBD> <EFBFBD>
if ( isdelta_flag ) {
for ( QMap < QString , Xmldata * > : : iterator it3 = xmlinfo_list2 . begin ( ) ; it3 ! = xmlinfo_list2 . end ( ) ; + + it3 )
{
QString key3 = it3 . key ( ) ;
Xmldata * value3 = it3 . value ( ) ; //
if ( value3 - > updataflag = = true ) {
ParseXMLConfig2 ( 1 , & ( value3 - > xmlcfg ) , & ( value3 - > topicList ) , value3 - > xmlbase . MODEL_ID ) ;
}
2025-01-16 16:17:01 +08:00
}
}
}
else {
cout < < " !!!!!!!!!! xmlinfo_list.size() == 0 !!!!!!!!!!! " < < endl ;
}
}
//zw<7A> <EFBFBD> 2023-9-4 <20> <> ȡxml·<6C> <C2B7>
char * Get_xmlpath ( char * devtype )
{
QString type ;
type . append ( devtype ) ;
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> lnk20241125
std : : cout < < type . toStdString ( ) < < std : : endl ;
if ( xmlinfo_list . contains ( type ) ) {
cout < < " !!!!!!!!!! xmlinfo_list.contains(devtype) == 1 !!!!!!!!!!! " < < endl ;
QByteArray byteArray = xmlinfo_list [ devtype ] - > xmlbase . MODEL_ID . toLocal8Bit ( ) ;
2025-03-05 17:47:47 +08:00
char * charArray = new char [ byteArray . size ( ) + 1 ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ڴ<EFBFBD> ʱ+1<> <31> ֹ<EFBFBD> ڴ<EFBFBD> й©lnk20250305
2025-01-16 16:17:01 +08:00
memcpy ( charArray , byteArray . data ( ) , byteArray . size ( ) ) ;
charArray [ byteArray . size ( ) ] = ' \0 ' ;
return charArray ;
}
else {
cout < < " !!!!!!!!!! xmlinfo_list.contains(devtype) == 0 !!!!!!!!!!! " < < endl ;
return NULL ;
}
}
//zw<7A> <EFBFBD> 2023-9-5 <20> <> ȡIEDģ<44> <C4A3>
char * Get_IED ( char * devtype )
{
QString type ;
type . append ( devtype ) ;
if ( xmlinfo_list . contains ( type ) ) {
2025-02-08 17:04:39 +08:00
cout < < " !!!!!!!!!! Get_IED xmlinfo_list.contains(devtype) == 1 !!!!!!!!!!! " < < endl ;
2025-01-16 16:17:01 +08:00
QString ied ;
ied . append ( xmlinfo_list [ devtype ] - > xmlcfg . IEDname ) ; //PQMonitor
ied . append ( xmlinfo_list [ devtype ] - > xmlcfg . LDevicePrefix ) ;
ied . append ( " %d " ) ;
QByteArray byteArray = ied . toLocal8Bit ( ) ;
2025-03-05 17:47:47 +08:00
char * charArray = new char [ byteArray . size ( ) + 1 ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ڴ<EFBFBD> ʱ+1<> <31> ֹ<EFBFBD> ڴ<EFBFBD> й©lnk20250305
2025-01-16 16:17:01 +08:00
memcpy ( charArray , byteArray . data ( ) , byteArray . size ( ) ) ;
charArray [ byteArray . size ( ) ] = ' \0 ' ;
return charArray ;
}
else {
2025-02-08 17:04:39 +08:00
cout < < " !!!!!!!!!! Get_IED xmlinfo_list.contains(devtype) == 0 !!!!!!!!!!! " < < endl ;
2025-01-16 16:17:01 +08:00
//cout << "ttttttttttttttt" << topicList.size() << endl;
//cout << "ttttttttttttttt" << xmlcfg.IEDname.toAscii().data() << endl;
QString ied ;
ied . append ( xmlcfg . IEDname ) ;
ied . append ( xmlcfg . LDevicePrefix ) ;
ied . append ( " %d " ) ;
QByteArray byteArray = ied . toLocal8Bit ( ) ;
2025-03-05 17:47:47 +08:00
char * charArray = new char [ byteArray . size ( ) + 1 ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ڴ<EFBFBD> ʱ+1<> <31> ֹ<EFBFBD> ڴ<EFBFBD> й©lnk20250305
2025-01-16 16:17:01 +08:00
memcpy ( charArray , byteArray . data ( ) , byteArray . size ( ) ) ;
charArray [ byteArray . size ( ) ] = ' \0 ' ;
return charArray ;
}
}
char * Get_LDevice ( char * devtype )
{
QString type ;
type . append ( devtype ) ;
if ( xmlinfo_list . contains ( type ) ) { //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> б <EFBFBD> <D0B1> а <EFBFBD> <D0B0> <EFBFBD> <EFBFBD> ն<EFBFBD> <D5B6> <EFBFBD> <EFBFBD> <EFBFBD>
QString ied ;
ied . append ( xmlinfo_list [ devtype ] - > xmlcfg . LDevicePrefix ) ; //ʹ <> ý<EFBFBD> <C3BD> <EFBFBD> <EFBFBD> б <EFBFBD> <D0B1> <EFBFBD> <EFBFBD> ն<EFBFBD> ǰ
ied . append ( " %d " ) ;
QByteArray byteArray = ied . toLocal8Bit ( ) ;
2025-03-05 17:47:47 +08:00
char * charArray = new char [ byteArray . size ( ) + 1 ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ڴ<EFBFBD> ʱ+1<> <31> ֹ<EFBFBD> ڴ<EFBFBD> й©lnk20250305
2025-01-16 16:17:01 +08:00
memcpy ( charArray , byteArray . data ( ) , byteArray . size ( ) ) ;
charArray [ byteArray . size ( ) ] = ' \0 ' ;
return charArray ;
}
else {
//cout << "ttttttttttttttt" << topicList.size() << endl;
//cout << "ttttttttttttttt" << xmlcfg.IEDname.toAscii().data() << endl;
QString ied ;
ied . append ( xmlcfg . LDevicePrefix ) ; //ʹ <> <CAB9> Ĭ<EFBFBD> Ͻ<EFBFBD> <CFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> õ<EFBFBD> <C3B5> ն<EFBFBD> ǰ
ied . append ( " %d " ) ;
QByteArray byteArray = ied . toLocal8Bit ( ) ;
2025-03-05 17:47:47 +08:00
char * charArray = new char [ byteArray . size ( ) + 1 ] ; //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ڴ<EFBFBD> ʱ+1<> <31> ֹ<EFBFBD> ڴ<EFBFBD> й©lnk20250305
2025-01-16 16:17:01 +08:00
memcpy ( charArray , byteArray . data ( ) , byteArray . size ( ) ) ;
charArray [ byteArray . size ( ) ] = ' \0 ' ;
return charArray ;
}
}
///////////////////////////////////////////////////lnk2024-10-21////////////////////////////////////////////////////////
void handleCommentResponse ( const std : : string & response ) {
// <20> <> <EFBFBD> <EFBFBD> JSON <20> <> Ӧ
cJSON * json_data = cJSON_Parse ( response . c_str ( ) ) ;
if ( json_data = = NULL ) {
std : : cerr < < " Error parsing response: " < < cJSON_GetErrorPtr ( ) < < std : : endl ;
return ;
}
// <20> <> ȡ<EFBFBD> ֶ<EFBFBD>
cJSON * codeItem = cJSON_GetObjectItem ( json_data , " code " ) ;
cJSON * msgItem = cJSON_GetObjectItem ( json_data , " msg " ) ;
cJSON * dataItem = cJSON_GetObjectItem ( json_data , " data " ) ;
if ( codeItem ) {
std : : string code = codeItem - > valuestring ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϣ
std : : cout < < " Response Code: " < < code < < std : : endl ;
std : : string msg = ( msgItem ! = NULL ) ? msgItem - > valuestring : " not found " ;
std : : cout < < " Message: " < < msg < < std : : endl ;
} else {
std : : cerr < < " Error: Missing expected fields in JSON response. " < < std : : endl ;
}
// <20> ͷ<EFBFBD> JSON <20> <> <EFBFBD> <EFBFBD>
cJSON_Delete ( json_data ) ;
}
std : : string boolToString ( bool value ) {
return value ? " 1 " : " 0 " ;
}
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ρ <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> ״̬lnk202411-4
void connectlog_pgsql ( char * id , char * datetime , int status )
{
/*QString pgsql;
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_comm_status_tr \" ( \" terminal_id \" , \" statistical_date \" , \" comm_status \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',1) " ) . arg ( id ) . arg ( QDateTime : : currentDateTime ( ) . toString ( " yyyyMMdd " ) ) ) ;
pgsql . append ( QString ( " on conflict( \" terminal_id \" , \" statistical_date \" ) do update set " ) ) ;
pgsql . append ( QString ( " \" comm_status \" = \" %1 \" . \" %2meas_pq_comm_status_tr \" . \" comm_status \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
//cout << pgsql.toAscii().data() << endl;*/
/*std::vector<std::string> codes;
codes . push_back ( " log " ) ;
codes . push_back ( std : : string ( id ) ) ;
codes . push_back ( QDateTime : : currentDateTime ( ) . toString ( " yyyyMMdd " ) . toStdString ( ) ) ;
parse_commstatus_write ( codes ) ;
codes . clear ( ) ; */
//<2F> <> <EFBFBD> <EFBFBD> ״̬<D7B4> <CCAC> <EFBFBD> µķ<C2B5> ʽ
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> <EFBFBD> <EFBFBD>
char * ptr = NULL ;
// <20> <> <EFBFBD> <EFBFBD> JSON <20> <> <EFBFBD> <EFBFBD>
cJSON * jsonObject = cJSON_CreateObject ( ) ;
if ( jsonObject = = NULL ) {
std : : cerr < < " Failed to create JSON object. " < < std : : endl ;
return ;
}
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ֶε<D6B6> JSON <20> <> <EFBFBD> <EFBFBD>
cJSON * id_item = cJSON_CreateString ( id ) ;
if ( ! id_item ) {
std : : cerr < < " Failed to create 'id' string. " < < std : : endl ;
cJSON_Delete ( jsonObject ) ;
return ;
}
cJSON_AddItemToObject ( jsonObject , " id " , id_item ) ;
cJSON * datetime_item = cJSON_CreateString ( datetime ) ;
if ( ! datetime_item ) {
std : : cerr < < " Failed to create 'Datetime' string. " < < std : : endl ;
cJSON_Delete ( jsonObject ) ;
return ;
}
cJSON_AddItemToObject ( jsonObject , " Datetime " , datetime_item ) ;
char statusStr [ 12 ] ; // <20> 㹻<EFBFBD> <E3B9BB> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ź<EFBFBD> '\0'<27> <>
sprintf ( statusStr , " %d " , status ) ; // ʹ <> <CAB9> sprintf <20> <> int ת<> <D7AA> Ϊ<EFBFBD> ַ<EFBFBD> <D6B7> <EFBFBD>
cJSON * status_item = cJSON_CreateString ( statusStr ) ;
if ( ! status_item ) {
std : : cerr < < " Failed to create 'status' string. " < < std : : endl ;
cJSON_Delete ( jsonObject ) ;
return ;
}
cJSON_AddItemToObject ( jsonObject , " status " , status_item ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӵ<EFBFBD> <D3B5> <EFBFBD> <EFBFBD> <EFBFBD>
//cJSON_AddItemToArray(jsonArray, jsonObject);
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> Ϊ<EFBFBD> ַ<EFBFBD> <D6B7> <EFBFBD>
//char* jsonString = cJSON_PrintUnformatted(jsonArray);
char * jsonString = cJSON_Print ( jsonObject ) ;
if ( jsonString = = NULL ) {
std : : cerr < < " Failed to print JSON object. " < < std : : endl ;
cJSON_Delete ( jsonObject ) ;
return ;
}
2025-02-27 16:28:04 +08:00
//std::cout << "jsonString: " << jsonString << std::endl;////<2F> <> <EFBFBD> ٶ<EFBFBD> <D9B6> <EFBFBD> <EFBFBD> Ĵ<EFBFBD> ӡ
2025-01-16 16:17:01 +08:00
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݵ<EFBFBD> Զ<EFBFBD> <D4B6>
2025-03-10 21:26:17 +08:00
SendJsonAPI_web ( WEB_COMFLAG , " " , jsonString , & ptr ) ; //<2F> <> ʹ <EFBFBD> ýӿ<C3BD> lnk20250310
//ʹ <> ö<EFBFBD> <C3B6> <EFBFBD>
//if()//<2F> <> ̬<EFBFBD> <CCAC> <EFBFBD> ϴ<EFBFBD>
2025-01-16 16:17:01 +08:00
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ص<EFBFBD> <D8B5> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> <> <EFBFBD> <EFBFBD> ptr <20> Ƿ<EFBFBD> Ϊ NULL<4C> <4C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> std::string <20> <> ʼ <EFBFBD> <CABC> ʧ<EFBFBD> <CAA7>
if ( ptr ! = NULL ) {
2025-02-27 16:28:04 +08:00
//handleCommentResponse(std::string(ptr));//<2F> <> <EFBFBD> ٶ<EFBFBD> <D9B6> <EFBFBD> <EFBFBD> Ĵ<EFBFBD> ӡ
2025-01-16 16:17:01 +08:00
free ( ptr ) ; // <20> <> <EFBFBD> <EFBFBD> SendJsonAPI_web <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ棬<DAB4> ǵ<EFBFBD> <C7B5> ͷ<EFBFBD>
} else {
// <20> <> <EFBFBD> <EFBFBD> ptr Ϊ NULL <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ־<EFBFBD> <D6BE> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
std : : cout < < " Error: Received NULL response " < < std : : endl ;
}
// ת<> <D7AA> Ϊ QString
QString result = QString : : fromStdString ( jsonString ) ;
// <20> ͷ<EFBFBD> <CDB7> ڴ<EFBFBD>
cJSON_Delete ( jsonObject ) ;
free ( jsonString ) ; // cJSON_PrintUnformattedʹ <64> <CAB9> malloc<6F> <63> <EFBFBD> <EFBFBD> <EFBFBD> ڴ<EFBFBD>
}
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> 쳣<EFBFBD> ¼<EFBFBD> pgsql<71> <6C> װ<EFBFBD> <D7B0> <EFBFBD> <EFBFBD> <20> ն<EFBFBD> id <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <20> 洢<EFBFBD> ļ<EFBFBD> ·<EFBFBD> <C2B7>
void errorlog_pgsql ( char * id , QString time , QString filename )
{
/*QString pgsql;//<2F> <> <EFBFBD> <EFBFBD> װ<EFBFBD> <D7B0> pgsql<71> <6C> <EFBFBD> <EFBFBD>
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_comm_error_tr \" ( \" terminal_id \" , \" statistical_date \" , \" comm_status \" , \" file_name \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',1,'%3') " ) . arg ( id ) . arg ( time ) . arg ( filename ) ) ;
pgsql . append ( QString ( " on conflict( \" terminal_id \" , \" statistical_date \" ) do update set " ) ) ;
pgsql . append ( QString ( " \" comm_status \" = \" %1 \" . \" %2meas_pq_comm_error_tr \" . \" comm_status \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
cout < < " !!!!!!!!!!!!!!!!!!!!!!!!!! " < < pgsql . toAscii ( ) . data ( ) < < endl ; */
/*std::vector<std::string> codes;
codes . push_back ( " log " ) ;
codes . push_back ( std : : string ( id ) ) ;
codes . push_back ( time . toStdString ( ) ) ;
codes . push_back ( filename . toStdString ( ) ) ;
parse_commerror_write ( codes ) ;
codes . clear ( ) ; */
}
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ¼
void SoeRptSql ( char * id , int state , char * rpt )
{
/*QDateTime savetime = QDateTime::currentDateTime();
QString pgsql ; //<2F> <> <EFBFBD> <EFBFBD> װ<EFBFBD> <D7B0> pgsql<71> <6C> <EFBFBD> <EFBFBD>
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_comm_error_tr \" ( \" terminal_id \" , \" statistical_date \" , \" comm_status \" , \" file_name \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',%3,'%4') " ) . arg ( id ) . arg ( savetime . toString ( " yyyyMMdd " ) ) . arg ( state ) . arg ( rpt ) ) ;
pgsql . append ( QString ( " on conflict( \" terminal_id \" , \" statistical_date \" , \" file_name \" ) do update set " ) ) ;
pgsql . append ( QString ( " \" comm_status \" = %1; " ) . arg ( state ) ) ;
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD> */
/*std::vector<std::string> codes;
codes . push_back ( " soe " ) ;
codes . push_back ( std : : string ( id ) ) ;
codes . push_back ( QDateTime : : currentDateTime ( ) . toString ( " yyyyMMdd " ) . toStdString ( ) ) ;
codes . push_back ( intToString ( state ) ) ;
codes . push_back ( std : : string ( rpt ) ) ;
parse_commerror_write ( codes ) ;
codes . clear ( ) ; */
}
//lnk 20241210ɾ<30> <C9BE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> Ĵ<EFBFBD> <C4B4> <EFBFBD>
#if 0
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> pgsql<71> <6C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString errorlog_num_pgsql ( QString monitorId , QString datatime , QString filename , int count )
{
/*QString log_pqsql;//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> ɵ<EFBFBD> pgsql<71> <6C> <EFBFBD> <EFBFBD>
log_pqsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_measpoint_rationality_tr \" ( \" monitor_id \" , \" statistical_date \" , \" irrat_num \" , \" file_name \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
log_pqsql . append ( QString ( " values('%1',date'%2',%3,'%4') " ) . arg ( monitorId ) . arg ( datatime ) . arg ( count ) . arg ( filename ) ) ;
log_pqsql . append ( QString ( " on conflict( \" monitor_id \" , \" statistical_date \" ) do nothing; " ) ) ;
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( log_pqsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return log_pqsql ; */
/*std::vector<std::string> codes;
codes . push_back ( " log " ) ;
codes . push_back ( monitorId . toStdString ( ) ) ;
codes . push_back ( datatime . toStdString ( ) ) ;
codes . push_back ( intToString ( count ) ) ;
codes . push_back ( filename . toStdString ( ) ) ;
parse_rationality_write ( codes ) ;
codes . clear ( ) ; */
}
//<2F> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> pgsql<71> <6C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ն<EFBFBD> id <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
QString errorlog_dataintegrity_pgsql ( QString time , QString datatime , QString monitorId , bool recallflag )
{
/*int num = 480;
if ( data_timespan_list [ monitorId ] - > msspan ! = 0 ) {
num = 1440 / data_timespan_list [ monitorId ] - > msspan ;
}
QString pgsql ; //<2F> <> <EFBFBD> <EFBFBD> װ<EFBFBD> <D7B0> pgsql<71> <6C> <EFBFBD> <EFBFBD>
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_measpoint_intact_tr \" ( \" monitor_id \" , \" statistical_date \" , \" exp_num \" , \" act_num \" , \" value_time \" , \" last_value_time \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',480,1,array[TIMESTAMP'%3'],'%4') " ) . arg ( monitorId ) . arg ( time ) . arg ( datatime ) . arg ( datatime ) ) ;
pgsql . append ( QString ( " on conflict( \" monitor_id \" , \" statistical_date \" ) do update set " ) ) ;
//pgsql.append(QString("\"value_time\"=(array_cat(EXCLUDED.\"value_time\", \"%1\".\"%2meas_pq_measpoint_intact_tr\".\"value_time\"))[:1440] , \"exp_num\" = %3 , \"last_value_time\" = EXCLUDED.\"last_value_time\" ,\"act_num\"= \"%4\".\"%5meas_pq_measpoint_intact_tr\".\"act_num\" + 1;").arg(POSTGRES_SCHEMA).arg(POSTGRES_TABLEPREFIX).arg(num).arg(POSTGRES_SCHEMA).arg(POSTGRES_TABLEPREFIX));
if ( recallflag = = true ) {
if ( data_timespan_list [ monitorId ] - > msspan ! = 0 ) {
pgsql . append ( QString ( " \" value_time \" = ARRAY_APPEND( \" %1 \" . \" %2meas_pq_measpoint_intact_tr \" . \" value_time \" , '%3') , \" exp_num \" = %4 , \" last_value_time \" = EXCLUDED. \" last_value_time \" , \" act_num \" = \" %5 \" . \" %6meas_pq_measpoint_intact_tr \" . \" act_num \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) . arg ( datatime ) . arg ( num ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
}
else {
pgsql . append ( QString ( " \" value_time \" = ARRAY_APPEND( \" %1 \" . \" %2meas_pq_measpoint_intact_tr \" . \" value_time \" , '%3') , \" last_value_time \" = EXCLUDED. \" last_value_time \" , \" act_num \" = \" %4 \" . \" %5meas_pq_measpoint_intact_tr \" . \" act_num \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) . arg ( datatime ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
}
}
else {
pgsql . append ( QString ( " \" value_time \" = ARRAY_APPEND( \" %1 \" . \" %2meas_pq_measpoint_intact_tr \" . \" value_time \" , '%3') , \" exp_num \" = %4 , \" last_value_time \" = EXCLUDED. \" last_value_time \" , \" act_num \" = \" %5 \" . \" %6meas_pq_measpoint_intact_tr \" . \" act_num \" + 1; " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) . arg ( datatime ) . arg ( num ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
}
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return pgsql ; */
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> ô<EFBFBD> <C3B4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 202411-1lnk<6E> <6B> ֻ<EFBFBD> <D6BB> Ҫid<69> <64> ʱ<EFBFBD> <CAB1> <EFBFBD> 㣬<EFBFBD> <E3A3AC> <EFBFBD> <EFBFBD> <EFBFBD> ֲ<EFBFBD> <D6B2> к<EFBFBD> <D0BA> <EFBFBD> ̬<EFBFBD> <CCAC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫʱ<D2AA> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/*std::vector<std::string> codes;
codes . push_back ( " log " ) ;
codes . push_back ( time . toStdString ( ) ) ;
codes . push_back ( datatime . toStdString ( ) ) ;
codes . push_back ( monitorId . toStdString ( ) ) ;
codes . push_back ( boolToString ( recallflag ) ) ;
codes . push_back ( intToString ( data_timespan_list [ monitorId ] - > msspan ) ) ;
parse_dataintegrity_write ( codes ) ;
codes . clear ( ) ; */
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> <EFBFBD> <EFBFBD>
char * ptr = NULL ;
// <20> <> <EFBFBD> <EFBFBD> cJSON <20> <> <EFBFBD> <EFBFBD>
cJSON * jsonArray = cJSON_CreateArray ( ) ;
// <20> <> <EFBFBD> <EFBFBD> JSON <20> <> <EFBFBD> <EFBFBD>
cJSON * jsonObject = cJSON_CreateObject ( ) ;
cJSON_AddStringToObject ( jsonObject , " id " , monitorId . toStdString ( ) . c_str ( ) ) ;
cJSON_AddStringToObject ( jsonObject , " date " , datatime . toStdString ( ) . c_str ( ) ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӵ<EFBFBD> <D3B5> <EFBFBD> <EFBFBD> <EFBFBD>
cJSON_AddItemToArray ( jsonArray , jsonObject ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> Ϊ<EFBFBD> ַ<EFBFBD> <D6B7> <EFBFBD>
char * jsonString = cJSON_PrintUnformatted ( jsonArray ) ;
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݵ<EFBFBD> Զ<EFBFBD> <D4B6>
SendJsonAPI_web ( WEB_INTEGRITY , " " , jsonString , & ptr ) ;
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ص<EFBFBD> <D8B5> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> <> <EFBFBD> <EFBFBD> ptr <20> Ƿ<EFBFBD> Ϊ NULL<4C> <4C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> std::string <20> <> ʼ <EFBFBD> <CABC> ʧ<EFBFBD> <CAA7>
if ( ptr ! = NULL ) {
handleCommentResponse ( std : : string ( ptr ) ) ;
free ( ptr ) ; // <20> <> <EFBFBD> <EFBFBD> SendJsonAPI_web <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ棬<DAB4> ǵ<EFBFBD> <C7B5> ͷ<EFBFBD>
} else {
// <20> <> <EFBFBD> <EFBFBD> ptr Ϊ NULL <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ־<EFBFBD> <D6BE> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
std : : cout < < " Error: Received NULL response " < < std : : endl ;
}
// ת<> <D7AA> Ϊ QString
QString result = QString : : fromStdString ( jsonString ) ;
// <20> ͷ<EFBFBD> <CDB7> ڴ<EFBFBD>
cJSON_Delete ( jsonArray ) ;
free ( jsonString ) ; // cJSON_PrintUnformattedʹ <64> <CAB9> malloc<6F> <63> <EFBFBD> <EFBFBD> <EFBFBD> ڴ<EFBFBD>
return result ; //<2F> <> <EFBFBD> <EFBFBD> json<6F> <6E> ӡ<EFBFBD> <D3A1>
}
//<2F> <> ֵƥ<D6B5> <C6A5> <EFBFBD> <EFBFBD> <EFBFBD> ж<EFBFBD> <20> <> <EFBFBD> <EFBFBD> pgsql<71> <6C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> ն<EFBFBD> id <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> <20> <> <EFBFBD> <EFBFBD> Ӧ<EFBFBD> <D3A6> <20> <> <EFBFBD> <EFBFBD> ʵ<EFBFBD> <CAB5> <20> <> <EFBFBD> <EFBFBD> ʵ<EFBFBD> <CAB5>
QString errorlog_datamatch_pgsql ( QString id , QString time , int BASE_MAT_NUM , int ADV_MAT_NUM , int BASE_ACT_NUM , int ADV_ACT_NUM , QString filename )
{
/*QString pgsql;//<2F> <> <EFBFBD> <EFBFBD> װ<EFBFBD> <D7B0> pgsql<71> <6C> <EFBFBD> <EFBFBD>
pgsql . append ( QString ( " insert into \" %1 \" . \" %2meas_pq_measpoint_match_tr \" ( \" monitor_id \" , \" statistical_date \" , \" base_mat_num \" , \" adv_mat_num \" , \" base_act_num \" , \" adv_act_num \" , \" file_name \" ) " ) . arg ( POSTGRES_SCHEMA ) . arg ( POSTGRES_TABLEPREFIX ) ) ;
pgsql . append ( QString ( " values('%1',date'%2',%3,%4,%5,%6,'%7') " ) . arg ( id ) . arg ( time ) . arg ( BASE_MAT_NUM ) . arg ( ADV_MAT_NUM ) . arg ( BASE_ACT_NUM ) . arg ( ADV_ACT_NUM ) . arg ( filename ) ) ;
pgsql . append ( QString ( " on conflict( \" monitor_id \" , \" statistical_date \" ) do nothing; " ) ) ;
//pgsql.append(QString("\"BASE_ACT_NUM\"= %1 , \"ADV_ACT_NUM\"= %2;").arg(BASE_ACT_NUM).arg(ADV_ACT_NUM));
Sql_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
Sql_data_list . append ( pgsql ) ;
Sql_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
return pgsql ; */
/*std::vector<std::string> codes;
codes . push_back ( " log " ) ;
codes . push_back ( id . toStdString ( ) ) ;
codes . push_back ( time . toStdString ( ) ) ;
codes . push_back ( intToString ( BASE_MAT_NUM ) ) ;
codes . push_back ( intToString ( ADV_MAT_NUM ) ) ;
codes . push_back ( intToString ( BASE_ACT_NUM ) ) ;
codes . push_back ( intToString ( ADV_ACT_NUM ) ) ;
codes . push_back ( filename . toStdString ( ) ) ;
parse_match_write ( codes ) ;
codes . clear ( ) ; */
}
# endif
//lnk202411-5 <20> <> ̬<EFBFBD> <CCAC> <EFBFBD> ݲ<EFBFBD> <DDB2> <EFBFBD> ʹ <EFBFBD> <CAB9> kafka<6B> <61> <EFBFBD> ͣ<EFBFBD> <CDA3> ij<EFBFBD> http<74> ӿ<EFBFBD>
int transfer_json_qvvr_data ( unsigned int func_type , int monitor_id ,
float mag , float dur , long long start_tm , long long end_tm , int dis_kind , //<2F> <> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> 䣬<EFBFBD> <E4A3AC> ʼ ʱ<CABC> 䣬<EFBFBD> <E4A3AC> <EFBFBD> <EFBFBD> ʱ<EFBFBD> 䣬<EFBFBD> <E4A3AC> ̬<EFBFBD> <CCAC> <EFBFBD> <EFBFBD>
char * uuid_cfg , char * uuid_dat , //<2F> <> <EFBFBD> <EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> ļ<EFBFBD>
char * mp_id , char * Qvvr_rptname , char * devtype ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ţ<EFBFBD> <C5A3> <EFBFBD> ̬<EFBFBD> <CCAC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 豸<EFBFBD> <E8B1B8> <EFBFBD> <EFBFBD>
{
XmlConfig c_xmlcfg ;
if ( xmlinfo_list . contains ( devtype ) ) {
c_xmlcfg = xmlinfo_list [ devtype ] - > xmlcfg ; //<2F> <> <EFBFBD> <EFBFBD> ӳ<EFBFBD> <D3B3>
}
else {
c_xmlcfg = xmlcfg ;
}
if ( strlen ( mp_id ) = = 0 ) {
std : : cout < < " mp_id is null " < < std : : endl ;
return 0 ;
}
// <20> 洢 uuid_cfg <20> <> uuid_dat <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
//const char wave_paths[] = {"/comtrade/"};
// <20> <> ʼ <EFBFBD> <CABC> cJSON <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
cJSON * root = cJSON_CreateObject ( ) ;
// ƴ<> <C6B4> JSON <20> <> <EFBFBD> <EFBFBD>
//<2F> <> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͣ<EFBFBD> <CDA3> <EFBFBD> Ϊ<EFBFBD> <CEAA> http<74> ӿڲ<D3BF> <DAB2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݶ<EFBFBD> <DDB6> <EFBFBD>
cJSON_AddStringToObject ( root , " monitorId " , mp_id ) ;
cJSON_AddNumberToObject ( root , " amplitude " , mag ) ;
2025-03-10 21:26:17 +08:00
cJSON_AddNumberToObject ( root , " duration " , dur ) ;
2025-01-16 16:17:01 +08:00
cJSON_AddNumberToObject ( root , " eventType " , dis_kind ) ;
// <20> <> ʽ <EFBFBD> <CABD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA> <EFBFBD> <EFBFBD> <EFBFBD> ַ<EFBFBD> <D6B7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA> <EFBFBD> 룩
char start_time_str [ 25 ] ;
time_t start_sec = start_tm / 1000 ;
struct tm * time_info = localtime ( & start_sec ) ;
strftime ( start_time_str , sizeof ( start_time_str ) , " %Y-%m-%d %H:%M:%S " , time_info ) ;
// <20> <> <EFBFBD> Ӻ<EFBFBD> <D3BA> 벿<EFBFBD> <EBB2BF>
snprintf ( start_time_str + strlen ( start_time_str ) , sizeof ( start_time_str ) - strlen ( start_time_str ) , " .%03lld " , start_tm % 1000 ) ;
cJSON_AddStringToObject ( root , " startTime " , start_time_str ) ;
2025-03-10 21:26:17 +08:00
//cJSON_AddStringToObject(root, "wavePathcfg", uuid_cfg); // <20> <> ̬<EFBFBD> <CCAC> <EFBFBD> ò<EFBFBD> <C3B2> <EFBFBD> <EFBFBD> ļ<EFBFBD> ·<EFBFBD> <C2B7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD>
//cJSON_AddStringToObject(root, "wavePathdat", uuid_dat); // <20> <> ̬<EFBFBD> <CCAC> <EFBFBD> ò<EFBFBD> <C3B2> <EFBFBD> <EFBFBD> ļ<EFBFBD> ·<EFBFBD> <C2B7>
cJSON_AddStringToObject ( root , " wavePath " , uuid_dat ) ;
2025-01-16 16:17:01 +08:00
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( c_xmlcfg . WavePhasicFlag = = " 1 " ) {
QString Qvvr_Rptname ; //ת<> <D7AA> Ϊqstring<6E> <67> ʽ
Qvvr_Rptname . append ( Qvvr_rptname ) ;
if ( Qvvr_Rptname . indexOf ( c_xmlcfg . WavePhasicA ) ! = - 1 ) { //<2F> <> <EFBFBD> <EFBFBD> ӳ<EFBFBD> <D3B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ<EFBFBD> <C7B7> ڱ<EFBFBD> <DAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD>
cJSON_AddStringToObject ( root , " phase " , " A " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
else if ( Qvvr_Rptname . indexOf ( c_xmlcfg . WavePhasicB ) ! = - 1 ) {
cJSON_AddStringToObject ( root , " phase " , " B " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
else if ( Qvvr_Rptname . indexOf ( c_xmlcfg . WavePhasicC ) ! = - 1 ) {
cJSON_AddStringToObject ( root , " phase " , " C " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
else {
cJSON_AddStringToObject ( root , " phase " , " unknow " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
}
else {
cJSON_AddStringToObject ( root , " phase " , " unknow " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
// <20> <> cJSON <20> <> <EFBFBD> <EFBFBD> ת<EFBFBD> <D7AA> Ϊ<EFBFBD> ַ<EFBFBD> <D6B7> <EFBFBD>
char * json_string = cJSON_Print ( root ) ;
printf ( " %s \n " , json_string ) ; // <20> <> <EFBFBD> <EFBFBD> JSON <20> ַ<EFBFBD> <D6B7> <EFBFBD>
// <20> <> <EFBFBD> ͵<EFBFBD> <CDB5> <EFBFBD> ̬<EFBFBD> ӿ<EFBFBD>
char * ptr = NULL ;
SendJsonAPI_web ( WEB_EVENT , " " , json_string , & ptr ) ;
// <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ص<EFBFBD> <D8B5> <EFBFBD> <EFBFBD> <EFBFBD>
// <20> <> <EFBFBD> <EFBFBD> ptr <20> Ƿ<EFBFBD> Ϊ NULL<4C> <4C> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> std::string <20> <> ʼ <EFBFBD> <CABC> ʧ<EFBFBD> <CAA7>
if ( ptr ! = NULL ) {
handleCommentResponse ( std : : string ( ptr ) ) ;
free ( ptr ) ; // <20> <> <EFBFBD> <EFBFBD> SendJsonAPI_web <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ棬<DAB4> ǵ<EFBFBD> <C7B5> ͷ<EFBFBD>
} else {
// <20> <> <EFBFBD> <EFBFBD> ptr Ϊ NULL <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ־<EFBFBD> <D6BE> ¼<EFBFBD> <C2BC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
std : : cout < < " Error: Received NULL response " < < std : : endl ;
// <20> ͷ<EFBFBD> <CDB7> ڴ<EFBFBD>
cJSON_Delete ( root ) ;
free ( json_string ) ;
return 0 ;
}
// <20> ͷ<EFBFBD> <CDB7> ڴ<EFBFBD>
cJSON_Delete ( root ) ;
free ( json_string ) ;
/*Ckafka_data_t KafkaData; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽṹ<DDBD> <E1B9B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . monitor_id = monitor_id ;
KafkaData . mp_id = mp_id ;
KafkaData . strTopic = " Event " ; //kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " { " ) ; //ƴ<> <C6B4> json<6F> <6E> ʼ
if ( 400 = = func_type | | 500 = = func_type | | 600 = = func_type | | 700 = = func_type ) //<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʷ<EFBFBD> <CAB7> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> > MMS_Recall
KafkaData . strText . append ( " \" DATA_TYPE \" : \" 04 \" , " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
else
KafkaData . strText . append ( " \" DATA_TYPE \" : \" 04 \" , " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" Monitor \" : \" %1 \" , " ) . arg ( mp_id ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" Value \" :{ " ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" FLAG \" :%1, " ) . arg ( 1 ) ) ; //ƴ<> <C6B4> <20> <EFBFBD> <DEB3> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " \" TIME \" :%1, " ) . arg ( start_tm ) ) ; //ƴ<> <C6B4> ʱ<> <CAB1>
KafkaData . strText . append ( " \" VOLTAGE \" :{ " ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <20> <> <EFBFBD> <EFBFBD> VOLTAGE
KafkaData . strText . append ( QString ( " \" MAG \" :%1 " ) . arg ( mag ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѹ<EFBFBD> <D1B9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
KafkaData . strText . append ( QString ( " , \" DUR \" :%1 " ) . arg ( dur * 1000 ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " , \" STARTTIME \" :%1 " ) . arg ( start_tm ) ) ; //ƴ<> <C6B4> <20> <> ʼ ʱ<CABC> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " , \" ENDTIME \" :%1 " ) . arg ( end_tm ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> (<28> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " , \" DISKIND \" : \" %1%2 \" " ) . arg ( " 0 " ) . arg ( dis_kind ) ) ; //ƴ<> <C6B4> <20> ݽ<EFBFBD> <DDBD> <EFBFBD> <EFBFBD> <EFBFBD> (1210001-<2D> <> <EFBFBD> <EFBFBD> 1210002-<2D> ݽ<EFBFBD> 1210004-<2D> ж<EFBFBD> 1210003-<2D> <> <EFBFBD> <EFBFBD> )
KafkaData . strText . append ( QString ( " , \" CFG_FILE \" : \" %1 \" " ) . arg ( uuid_cfg ) ) ; //ƴ<> <C6B4> cfg<66> <67> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( QString ( " , \" DAT_FILE \" : \" %1 \" " ) . arg ( uuid_dat ) ) ; //ƴ<> <C6B4> dat<61> <74> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD>
if ( c_xmlcfg . WavePhasicFlag = = " 1 " ) {
QString Qvvr_Rptname ;
Qvvr_Rptname . append ( Qvvr_rptname ) ;
if ( Qvvr_Rptname . indexOf ( c_xmlcfg . WavePhasicA ) ! = - 1 ) {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " A " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
else if ( Qvvr_Rptname . indexOf ( c_xmlcfg . WavePhasicB ) ! = - 1 ) {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " B " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
else if ( Qvvr_Rptname . indexOf ( c_xmlcfg . WavePhasicC ) ! = - 1 ) {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " C " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
else {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " unknow " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
}
else {
KafkaData . strText . append ( QString ( " , \" PHASIC \" : \" %1 \" " ) . arg ( " unknow " ) ) ; //ƴ<> <C6B4> <20> <> <EFBFBD> <EFBFBD>
}
KafkaData . strText . append ( " } " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD>
KafkaData . strText . append ( " }} " ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD>
printf ( " transfer json qvvr data: %s==%s \n " , KafkaData . strText . toStdString ( ) . c_str ( ) , Qvvr_rptname ) ;
kafka_data_list_mutex . lock ( ) ; //<2F> <> <EFBFBD> <EFBFBD>
kafka_data_list . append ( KafkaData ) ; //<2F> <> <EFBFBD> <EFBFBD> kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
kafka_data_list_mutex . unlock ( ) ; //<2F> <> <EFBFBD> <EFBFBD> */
return 1 ;
}
void qvvr_test ( )
{
char uuid_cfg [ ] = { " /comtrade/ " } ;
char uuid_dat [ ] = { " /comtrade/ " } ;
char mp_id [ ] = { " 000cf2a27f3f13f330b9e8690641e7f2 " } ;
char Qvvr_rptname [ ] = { " unknow " } ;
char devtype [ ] = { " 01 " } ;
transfer_json_qvvr_data ( 1 , 123456789 , 220 , 180 , 1730894400.123 , 1730894580 , 1210001 , uuid_cfg , uuid_dat , mp_id , Qvvr_rptname , devtype ) ;
}
void comflag_test ( )
{
char id [ ] = { " 000cf2a27f3f13f330b9e8690641e7f2 " } ;
char datetime [ ] = { " 2024-11-6 15:15:15 " } ;
connectlog_pgsql ( id , datetime , 1 ) ;
}
///////////////////////////////////////////////////lnk2024-10-21////////////////////////////////////////////////////////
2025-02-13 11:51:05 +08:00
void clearXmlConfigAndTopicList ( Xmldata * data ) {
// <20> <> <EFBFBD> <EFBFBD> XmlConfig
data - > xmlcfg = XmlConfig ( ) ; // ͨ<> <CDA8> <EFBFBD> <EFBFBD> <EFBFBD> ¸ <EFBFBD> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> xmlcfg
// <20> <> <EFBFBD> <EFBFBD> topicList
list < CTopic * > : : iterator it ;
for ( it = data - > topicList . begin ( ) ; it ! = data - > topicList . end ( ) ; + + it ) {
delete * it ; // <20> ͷ<EFBFBD> <CDB7> ڴ<EFBFBD>
}
data - > topicList . clear ( ) ; // <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
}
//4-<2D> <> <EFBFBD> <EFBFBD> ӳ<EFBFBD> <D3B3> <EFBFBD> ļ<EFBFBD> //////////////////////////////
2025-01-17 17:10:18 +08:00
void Set_xml_nodeinfo_one ( char * dev_type )
{
bool ret = false ;
2025-02-13 11:51:05 +08:00
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̨<EFBFBD> ˲<EFBFBD> <CBB2> dz<EFBFBD> ʼ <EFBFBD> <CABC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> ٽ<EFBFBD> <D9BD> <EFBFBD> һ <EFBFBD> <D2BB> Ĭ<EFBFBD> <C4AC> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
/*
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ӧxml<6D> ļ<EFBFBD> ʱ<EFBFBD> <CAB1> Ĭ<EFBFBD> Ͻ<EFBFBD> <CFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
if ( ! inited ) //<2F> <> ʼ <EFBFBD> <CABC> JiangSu_Config.xml
{
QString path ;
path . append ( " not define " ) ;
ParseXMLConfig2 ( & xmlcfg , & topicList , path ) ; //<2F> <> <EFBFBD> <EFBFBD> ParseXMLConfig() <20> <> <EFBFBD> <EFBFBD> JiangSu_Config.xml<6D> <6C> <EFBFBD> <EFBFBD> <EFBFBD> ļ<EFBFBD>
inited = true ;
}
*/
if ( xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] ! = NULL ) { //ԭ<> <D4AD> <EFBFBD> Ѵ <EFBFBD> <D1B4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͵Ľڵ<C4BD>
if ( xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] - > updataflag = = true ) { //<2F> <> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD>
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xmlcfg<66> <67> topicListɾ<74> <C9BE>
clearXmlConfigAndTopicList ( xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] ) ;
2025-02-14 16:44:38 +08:00
ret = ParseXMLConfig2 ( 0 , & ( xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] - > xmlcfg ) , & ( xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] - > topicList ) , xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] - > xmlbase . MODEL_ID ) ;
2025-02-13 11:51:05 +08:00
if ( ! ret )
{
std : : cout < < " !!!! this ledger xml config fail!!!! " < < std : : endl ;
}
2025-01-17 17:10:18 +08:00
}
2025-02-13 11:51:05 +08:00
2025-01-17 17:10:18 +08:00
}
else {
std : : cout < < " xmlinfo_list not contain this devtype " < < std : : endl ;
}
2025-02-14 16:44:38 +08:00
//<2F> <> <EFBFBD> ӽ<EFBFBD> <D3BD> <EFBFBD>
if ( isdelta_flag ) {
if ( xmlinfo_list2 [ QString : : fromUtf8 ( dev_type ) ] ! = NULL ) { //ԭ<> <D4AD> <EFBFBD> Ѵ <EFBFBD> <D1B4> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͵Ľڵ<C4BD>
if ( xmlinfo_list2 [ QString : : fromUtf8 ( dev_type ) ] - > updataflag = = true ) { //<2F> <> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD>
2025-01-17 17:10:18 +08:00
2025-02-14 16:44:38 +08:00
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xmlcfg<66> <67> topicListɾ<74> <C9BE>
clearXmlConfigAndTopicList ( xmlinfo_list2 [ QString : : fromUtf8 ( dev_type ) ] ) ;
ret = ParseXMLConfig2 ( 1 , & ( xmlinfo_list2 [ QString : : fromUtf8 ( dev_type ) ] - > xmlcfg ) , & ( xmlinfo_list2 [ QString : : fromUtf8 ( dev_type ) ] - > topicList ) , xmlinfo_list2 [ QString : : fromUtf8 ( dev_type ) ] - > xmlbase . MODEL_ID ) ;
if ( ! ret )
{
std : : cout < < " !!!! this ledger xml config fail!!!! " < < std : : endl ;
}
}
}
else {
std : : cout < < " xmlinfo_list2 not contain this devtype " < < std : : endl ;
}
}
2025-01-17 17:10:18 +08:00
}
//4-<2D> <> <EFBFBD> <EFBFBD> ӳ<EFBFBD> <D3B3> <EFBFBD> ļ<EFBFBD> ///////////////////////////////////