@@ -45,6 +45,9 @@ QString JSON_CONFIG_FN = QString("JiangSu_Config.xml");
# define APR_EBADF 0
const string PhsSTR = " ABCT " ;
extern int FILE_FLAG ;
//lnk20250214
extern int isdelta_flag ;
//<2F> <> <EFBFBD> <EFBFBD> Kafka<6B> <61> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ඨ<EFBFBD> <E0B6A8> -------------------------------------------------------------/*
class CEventData //SOE<4F> ¼<EFBFBD> <C2BC> <EFBFBD>
{
@@ -215,6 +218,11 @@ XmlConfig xmlcfg;//zw
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> ʶ
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> ־
///////////////////////////////////////////////lnk20241021<32> 滻web<65> ӿ<EFBFBD> //////////////////////////////////
void connectlog_pgsql ( char * id , char * datetime , int status ) ;
void errorlog_pgsql ( char * id , QString time , QString filename ) ;
@@ -578,6 +586,7 @@ QString errorlog_datamatch_json(QMap<QString, QDateTime> data_match_map_1, QMap<
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();
@@ -1056,6 +1065,652 @@ bool ParseXMLConfig2(XmlConfig *cfg, list<CTopic*> *ctopiclist,QString path) //
return true;
}
#endif
//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>
{
//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)
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)
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>
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>
{
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 ( 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>
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>
@@ -1078,9 +1733,32 @@ void print_interval(int flag,int interval) {
}
}
int transfer_json_block_data ( 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>
/// <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>
{
list < CTopic * > ctopic_list ;
#if 0
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;
@@ -1089,6 +1767,34 @@ int transfer_json_block_data(json_block_data *data) //json
cout << "transfer_json_block_data not contain data->dev_type" << endl;
ctopic_list = topicList;
}
#endif
////lnk2024-8-15 <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ,<2C> <> <EFBFBD> ͽ<EFBFBD> <CDBD> <EFBFBD>
if ( strcmp ( v_wiring_type , " 01 " ) = = 0 ) //lnk2024-8-15 <20> <> <EFBFBD> ͽ<EFBFBD> <CDBD> <EFBFBD>
{
cout < < " report v_wiring_type is " < < v_wiring_type < < endl ;
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 ;
}
}
else //lnk2024-8-15 <20> <> <EFBFBD> ͽ<EFBFBD> <CDBD> <EFBFBD>
{
cout < < " report v_wiring_type is " < < v_wiring_type < < endl ;
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 {
cout < < " transfer_json_block_data not contain data->dev_type " < < endl ;
ctopic_list = topicList ;
}
}
//list<CTopic*>* tmp;
bool shortjumpflag = false ;
bool longjumpflag = false ;
@@ -1160,7 +1866,7 @@ int transfer_json_block_data(json_block_data *data) //json
{
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>
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pSequence - > strSeq ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
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>
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
@@ -1277,7 +1983,7 @@ int transfer_json_block_data(json_block_data *data) //json
{
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>
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pSequence - > strSeq ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
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>
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
@@ -1414,7 +2120,7 @@ int transfer_json_block_data(json_block_data *data) //json
{
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>
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pSequence - > strSeq ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
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>
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
@@ -1694,7 +2400,7 @@ int transfer_json_block_data(json_block_data *data) //json
{
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>
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pSequence - > strSeq ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
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>
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
@@ -1808,7 +2514,7 @@ int transfer_json_block_data(json_block_data *data) //json
{
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>
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pSequence - > strSeq ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
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>
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
@@ -2104,7 +2810,7 @@ int transfer_json_block_data(json_block_data *data) //json
{
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>
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pSequence - > strSeq ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
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>
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
@@ -2221,7 +2927,7 @@ int transfer_json_block_data(json_block_data *data) //json
{
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>
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pSequence - > strSeq ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
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>
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
@@ -2356,7 +3062,7 @@ int transfer_json_block_data(json_block_data *data) //json
{
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>
KafkaData . strText . append ( QString ( " \" %1 \" :{ " ) . arg ( pSequence - > strSeq ) ) ; //ƴ<> <C6B4> json<6F> <6E> <EFBFBD> <EFBFBD> A<> <41> B<EFBFBD> <42> C<EFBFBD> <43> T<EFBFBD> <54>
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>
list < CDataValue * > : : iterator dv = pSequence - > DataValueList . begin ( ) ; //<2F> ޱ<EFBFBD> <DEB1> <EFBFBD> DataValueList
CDataValue * pDataValueBegin = * dv ;
@@ -2750,6 +3456,9 @@ int transfer_json_block_data(json_block_data *data) //json
return 1 ;
}
/*//<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
{
@@ -2936,6 +3645,33 @@ void Set_xml_databaseinfo(char* MODEL_ID, char* TMNL_TYPE, char* FILE_PATH, char
QDateTime time ( QDate ( year , month , day ) , QTime ( hour , minute , second ) ) ;
xmlinfo_list [ type ] - > xmlbase . datetime = time ;
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*/
char file_name [ 256 ] ;
memset ( file_name , 0 , 256 ) ;
sprintf ( file_name , " %s " , FILE_NAME ) ;
@@ -3006,7 +3742,10 @@ void Set_xml_nodeinfo()
{
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>
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>
}
inited = true ;
}
@@ -3019,7 +3758,19 @@ void Set_xml_nodeinfo()
Xmldata * value2 = it2 . value ( ) ;
if ( value2 - > updataflag = = true ) {
ParseXMLConfig2 ( & ( value2 - > xmlcfg ) , & ( value2 - > topicList ) , value2 - > xmlbase . MODEL_ID ) ;
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 ) ;
}
}
}
}
@@ -3615,7 +4366,7 @@ void Set_xml_nodeinfo_one(char* dev_type)
//<2F> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xmlcfg<66> <67> topicListɾ<74> <C9BE>
clearXmlConfigAndTopicList ( xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] ) ;
ret = ParseXMLConfig2 ( & ( xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] - > xmlcfg ) , & ( xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] - > topicList ) , xmlinfo_list [ QString : : fromUtf8 ( dev_type ) ] - > xmlbase . MODEL_ID ) ;
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 ) ;
if ( ! ret )
{
std : : cout < < " !!!! this ledger xml config fail!!!! " < < std : : endl ;
@@ -3626,6 +4377,26 @@ void Set_xml_nodeinfo_one(char* dev_type)
else {
std : : cout < < " xmlinfo_list not contain this devtype " < < std : : endl ;
}
//<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>
//<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 ;
}
}
}
//4-<2D> <> <EFBFBD> <EFBFBD> ӳ<EFBFBD> <D3B3> <EFBFBD> ļ<EFBFBD> ///////////////////////////////////