add delta process
This commit is contained in:
@@ -212,6 +212,11 @@ std::string g_strOTLType = "PostgreSQL"; //OTL
|
||||
//std::string g_strOTLConnect = "postgres/postgres@pgsql"; //OTL<54><4C><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
|
||||
std::string g_strOTLConnect = "postgres/bmdev@123@pgsql"; //OTL<54><4C><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
|
||||
|
||||
|
||||
//lnk2024-8-14<31><34><EFBFBD>ӽ<EFBFBD><D3BD>ͽ<EFBFBD><CDBD>߱<EFBFBD>־,0<><30><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD>ν<EFBFBD><CEBD>ߣ<EFBFBD>1<EFBFBD><31><EFBFBD>ڽ<EFBFBD><DABD>ν<EFBFBD><CEBD><EFBFBD>
|
||||
int isdelta_flag = 0;
|
||||
|
||||
|
||||
//////CZY 2023-09-06 config
|
||||
//<2F><>ǰ<EFBFBD><C7B0>flag:1Ϊ<31><CEAA><EFBFBD><EFBFBD>,0Ϊ<30>ر<EFBFBD>
|
||||
int MULTIPLE_NODE_FLAG = 1;
|
||||
@@ -11731,6 +11736,7 @@ void printLedgerinshell(const ied_usr_t& ied_usr, QIODevice* outputDevice) {
|
||||
|
||||
// <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2><EFBFBD>ض<EFBFBD><D8B6>ն<EFBFBD><D5B6><EFBFBD>Ϣ
|
||||
void ledger(const char* terminal_id, QIODevice* outputDevice) {
|
||||
outputDevice->write("print ledger in shell");
|
||||
pthread_mutex_lock(&mtx);
|
||||
bool found = false;
|
||||
ied_t* ied;
|
||||
@@ -12040,13 +12046,13 @@ int terminal_ledger_web(QMap<QString, terminal_dev*>* terminal_dev_map,
|
||||
terminal_dev_map->remove(key);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> terminal_dev <20><><EFBFBD><EFBFBD>
|
||||
if(atoi(dev->processNo) == g_front_seg_index){//lnk20250210ƥ<30><C6A5><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
|
||||
if(atoi(dev->processNo) == g_front_seg_index || g_front_seg_index == 0){//lnk20250210ƥ<30><C6A5><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::cout<< "process num match" << std::endl;
|
||||
terminal_dev_map->insert(key, dev);}//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֻ<CEAA>н<EFBFBD><D0BD>̺<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>index<65><78>¼<EFBFBD>뵱ǰ<EBB5B1><C7B0><EFBFBD><EFBFBD>
|
||||
} else {
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> terminal_dev <20><><EFBFBD><EFBFBD>
|
||||
if(atoi(dev->processNo) == g_front_seg_index){//lnk20250210ƥ<30><C6A5><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
|
||||
if(atoi(dev->processNo) == g_front_seg_index || g_front_seg_index == 0){//lnk20250210ƥ<30><C6A5><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::cout<< "process num match" << std::endl;
|
||||
terminal_dev_map->insert(key, dev);}//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֻ<CEAA>н<EFBFBD><D0BD>̺<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>index<65><78>¼<EFBFBD>뵱ǰ<EBB5B1><C7B0><EFBFBD><EFBFBD>
|
||||
@@ -12489,6 +12495,13 @@ int parse_device_cfg_web()
|
||||
strcpy(line_info.v_wiring_type, terminal_connect);
|
||||
cout << "v_wiring_type:" << line_info.v_wiring_type << endl;
|
||||
|
||||
//lnk2024-8-14<31><34>¼<EFBFBD><C2BC><EFBFBD>߱<EFBFBD>־
|
||||
if (strcmp(line_info.v_wiring_type, "02") == 0)
|
||||
{
|
||||
isdelta_flag = 1; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>þ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
cout << "monitor_id" << monitor_id << "v_wiring_type:" << line_info.v_wiring_type << "is delta wiring:" << isdelta_flag << endl;
|
||||
}
|
||||
|
||||
strcpy(line_info.monitor_status, monitor_status);
|
||||
cout << "monitor_status:" << line_info.monitor_status << endl;
|
||||
|
||||
@@ -12516,7 +12529,7 @@ int parse_device_cfg_web()
|
||||
char str[256]; //256<35><36>С
|
||||
byte_t cpuno = line_info.cpuno;
|
||||
|
||||
cout << "cpuno:" << line_info.cpuno << endl;
|
||||
cout << "cpuno:" << (int)line_info.cpuno << endl;
|
||||
cout << "index cpuno:" << cpuno-1 << endl;
|
||||
|
||||
ied_usr = (ied_usr_t*)ied->usr_ext;
|
||||
@@ -14227,10 +14240,10 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
|
||||
strncpy(logical_device_seq, monitor_data.logical_device_seq, sizeof(logical_device_seq) - 1);
|
||||
if (isCharPtrEmpty(logical_device_seq)) {
|
||||
line_info.cpuno = 1; // Ĭ<>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>1
|
||||
printf("logical_device_seq: is null, set cpuno: %d\n", line_info.cpuno);
|
||||
printf("logical_device_seq: is null, set cpuno: %d\n", (int)line_info.cpuno);
|
||||
} else {
|
||||
line_info.cpuno = atoi(logical_device_seq);
|
||||
printf("logical_device_seq: %d\n", line_info.cpuno);
|
||||
printf("logical_device_seq: %d\n", (int)line_info.cpuno);
|
||||
}
|
||||
line_info.line_id = count_real_monitor; // <20><>¼<EFBFBD>ն<EFBFBD><D5B6>ź<EFBFBD>
|
||||
|
||||
@@ -14242,6 +14255,13 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
|
||||
printf("monitor_status: %s\n", line_info.monitor_status);
|
||||
printf("name: %s\n", line_info.name);
|
||||
|
||||
//lnk20250214<31><34><EFBFBD><EFBFBD>
|
||||
if (strcmp(line_info.v_wiring_type, "02") == 0)
|
||||
{
|
||||
isdelta_flag = 1; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>þ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
cout << "monitor_id" << line_info.mp_id << "v_wiring_type:" << line_info.v_wiring_type << "is delta wiring:" << isdelta_flag << endl;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
if (update[i].timestamp[0] != '\0') {
|
||||
struct tm timeinfo;
|
||||
@@ -14273,7 +14293,7 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
|
||||
if (ied && ied->usr_ext && line_info.cpuno && ((int)line_info.cpuno < 10)) {
|
||||
char str[256];
|
||||
byte_t cpuno = line_info.cpuno; //ʹ<><CAB9><EFBFBD><EFBFBD>̨<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><DFBC><EFBFBD><EFBFBD>кţ<D0BA><C5A3><EFBFBD>ʹ<EFBFBD><CAB9>ԭ<EFBFBD><D4AD>ied<65><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD>µIJ<C2B5><C4B2>ֻᱻ<D6BB><E1B1BB><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʱû<CAB1><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᱻʹ<E1B1BB><CAB9>
|
||||
printf("cpuno: %d\n", line_info.cpuno);
|
||||
printf("cpuno: %d\n", (int)line_info.cpuno);
|
||||
printf("index cpuno: %d\n", cpuno - 1);
|
||||
|
||||
ied_usr = (ied_usr_t*)ied->usr_ext;
|
||||
@@ -14331,7 +14351,7 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
|
||||
apr_snprintf(str, sizeof(str), "PQMonitorPQM%d", cpuno);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ֵʱ<D6B5><CAB1><EFBFBD><EFBFBD> LD_name<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
if (!ied_take) {
|
||||
if (ied_usr->LD_info[cpuno - 1].LD_name == NULL) {
|
||||
|
||||
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::cout << "new space for LD_name" << std::endl;
|
||||
@@ -14350,12 +14370,16 @@ int update_one_terminal_ledger(terminal* update, int i,ied_t* ied,int terminal_i
|
||||
} else {//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB><EFBFBD><EFBFBD>ԭ<EFBFBD>пռ<D0BF><D5BC>ϸ<EFBFBD><CFB8><EFBFBD>
|
||||
|
||||
//lnk20250208<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::cout << "old space for LD_name:" << ied_usr->LD_info[cpuno].LD_name <<std::endl;
|
||||
std::cout << "old space for LD_name:" << ied_usr->LD_info[cpuno - 1].LD_name <<std::endl;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ棬<DAB4><E6A3AC>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
memset(ied_usr->LD_info[cpuno - 1].LD_name, 0, 256);
|
||||
|
||||
printf("check error333 !!!!!!!!!!!!!!\n");
|
||||
|
||||
apr_cpystrn(ied_usr->LD_info[cpuno - 1].LD_name, str, 256); //ԭ<>пռ串<D5BC><E4B8B2>
|
||||
|
||||
printf("check error222 !!!!!!!!!!!!!!\n");
|
||||
}
|
||||
|
||||
ldname = ied_usr->LD_info[cpuno - 1].LD_name;
|
||||
@@ -14876,10 +14900,13 @@ void clearIedUsr(ied_usr_t *ied_usr) {
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD>벿<EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
if (ied_usr->LD_info != nullptr) {
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> LD_info <20><>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
for (int i = 0; i < MAX_CPUNO; ++i) {
|
||||
if (&ied_usr->LD_info[i] != NULL) {
|
||||
clearLDInfo(&ied_usr->LD_info[i]);
|
||||
LD_info_t * ld =NULL;
|
||||
ld = (LD_info_t *)&ied_usr->LD_info[i];
|
||||
if (ld != NULL) {
|
||||
clearLDInfo(ld);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>///////////////////////////////////
|
||||
|
||||
@@ -110,8 +110,8 @@ public:
|
||||
kafka_data_list.append(data);
|
||||
kafka_data_list_mutex.unlock();
|
||||
*/
|
||||
|
||||
int transfer_json_block_data(json_block_data *data);
|
||||
int transfer_json_block_data(char v_wiring_type[], json_block_data* data);//lnk2024-8-16<31><36><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
|
||||
//int transfer_json_block_data(json_block_data *data);
|
||||
void errorlog_pgsql(char* id, QString time, QString filename);
|
||||
QString errorlog_num_pgsql(QString monitorId, QString datatime, QString filename, int count);
|
||||
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);
|
||||
|
||||
@@ -721,16 +721,24 @@ std::string extractDataJson(const char* inputJson) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// <20><>ȡ "messageBoy" <20><><EFBFBD><EFBFBD>
|
||||
cJSON* messageBoy = cJSON_GetObjectItem(root, "messageBoy");
|
||||
if (messageBoy == NULL || messageBoy->type != cJSON_Object) {
|
||||
std::cerr << "'messageBoy' is missing or is not an object" << std::endl;
|
||||
// <20><>ȡ "messageBody" <20><><EFBFBD><EFBFBD>
|
||||
cJSON* messageJson = cJSON_GetObjectItem(root, "messageBody");
|
||||
if (messageJson == NULL || messageJson->type != cJSON_String) {
|
||||
std::cerr << "'messageJson' is missing or is not an cJSON_String" << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return "";
|
||||
return false;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> messageBody <20>е<EFBFBD> JSON <20>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
cJSON* messageBody = cJSON_Parse(messageJson->valuestring); // <20><><EFBFBD><EFBFBD> messageBody <20>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
if (messageBody == NULL) {
|
||||
std::cerr << "Failed to parse 'messageBody' JSON." << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return false;
|
||||
}
|
||||
|
||||
// <20><>ȡ "data" <20><><EFBFBD><EFBFBD>
|
||||
cJSON* data = cJSON_GetObjectItem(messageBoy, "data");
|
||||
cJSON* data = cJSON_GetObjectItem(messageBody, "data");
|
||||
if (data == NULL || data->type != cJSON_Array) {
|
||||
std::cerr << "'data' is missing or is not an array" << std::endl;
|
||||
cJSON_Delete(root);
|
||||
@@ -776,20 +784,28 @@ bool parseJsonMessageRT(const std::string& body, std::string& devSeries, std::st
|
||||
return false;
|
||||
}
|
||||
|
||||
// <20><>ȡ "messageBoy" <20><><EFBFBD><EFBFBD>
|
||||
cJSON* messageBoy = cJSON_GetObjectItem(root, "messageBoy");
|
||||
if (messageBoy == NULL || messageBoy->type != cJSON_Object) {
|
||||
std::cerr << "'messageBoy' is missing or is not an object" << std::endl;
|
||||
// <20><>ȡ "messageBody" <20><><EFBFBD><EFBFBD>
|
||||
cJSON* messageJson = cJSON_GetObjectItem(root, "messageBody");
|
||||
if (messageJson == NULL || messageJson->type != cJSON_String) {
|
||||
std::cerr << "'messageJson' is missing or is not an cJSON_String" << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return "";
|
||||
return false;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> messageBody <20>е<EFBFBD> JSON <20>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
cJSON* messageBody = cJSON_Parse(messageJson->valuestring); // <20><><EFBFBD><EFBFBD> messageBody <20>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
if (messageBody == NULL) {
|
||||
std::cerr << "Failed to parse 'messageBody' JSON." << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return false;
|
||||
}
|
||||
|
||||
// <20><>ȡ<EFBFBD>ֶ<EFBFBD>
|
||||
cJSON* devSeriesItem = cJSON_GetObjectItem(messageBoy, "devSeries");
|
||||
cJSON* lineItem = cJSON_GetObjectItem(messageBoy, "line");
|
||||
cJSON* realDataItem = cJSON_GetObjectItem(messageBoy, "realData");
|
||||
cJSON* soeDataItem = cJSON_GetObjectItem(messageBoy, "soeData");
|
||||
cJSON* limitItem = cJSON_GetObjectItem(messageBoy, "limit");
|
||||
cJSON* devSeriesItem = cJSON_GetObjectItem(messageBody, "devSeries");
|
||||
cJSON* lineItem = cJSON_GetObjectItem(messageBody, "line");
|
||||
cJSON* realDataItem = cJSON_GetObjectItem(messageBody, "realData");
|
||||
cJSON* soeDataItem = cJSON_GetObjectItem(messageBody, "soeData");
|
||||
cJSON* limitItem = cJSON_GetObjectItem(messageBody, "limit");
|
||||
|
||||
if (devSeriesItem && lineItem && realDataItem && soeDataItem && limitItem) {
|
||||
devSeries = devSeriesItem->valuestring;
|
||||
@@ -975,17 +991,21 @@ void execute_bash(string fun,int process_num,string type)
|
||||
}
|
||||
|
||||
//ִ<>нű<D0BD><C5B1><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>
|
||||
void execute_bash_debug(string fun,string ip,string type)
|
||||
void execute_bash_debug(string fun,string ip,string type,int proindex)
|
||||
{
|
||||
|
||||
const char* script = "/FeProject/bin/set_debug.sh";//ʹ<><CAB9>setsid<69><64>ֹ<EFBFBD>˿<EFBFBD>ռ<EFBFBD><D5BC>
|
||||
const char* param1 = fun.c_str();
|
||||
const char* param2 = ip.c_str();
|
||||
const char* param3 = type.c_str();
|
||||
|
||||
// <20><> proindex ת<><D7AA>Ϊ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
char param4[32];
|
||||
snprintf(param4, sizeof(param4), "%d", proindex);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
char command[256];
|
||||
snprintf(command, sizeof(command), "%s %s %s %s &", script, param1, param2, param3);
|
||||
snprintf(command, sizeof(command), "%s %s %s %s &", script, param1, param2, param3,param4);
|
||||
|
||||
std::cout << "command:" << command <<std::endl;
|
||||
|
||||
@@ -1001,23 +1021,31 @@ void parse_set(const std::string& json_str) {
|
||||
return;
|
||||
}
|
||||
|
||||
// <20><>ȡ "messageBoy" <20><><EFBFBD><EFBFBD>
|
||||
cJSON* messageBoy = cJSON_GetObjectItem(root, "messageBoy");
|
||||
if (messageBoy == NULL || messageBoy->type != cJSON_Object) {
|
||||
std::cerr << "'messageBoy' is missing or is not an object" << std::endl;
|
||||
// <20><>ȡ "messageBody" <20><><EFBFBD><EFBFBD>
|
||||
cJSON* messageJson = cJSON_GetObjectItem(root, "messageBody");
|
||||
if (messageJson == NULL || messageJson->type != cJSON_String) {
|
||||
std::cerr << "'messageJson' is missing or is not an cJSON_String" << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return ;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> messageBody <20>е<EFBFBD> JSON <20>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
cJSON* messageBody = cJSON_Parse(messageJson->valuestring); // <20><><EFBFBD><EFBFBD> messageBody <20>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
if (messageBody == NULL) {
|
||||
std::cerr << "Failed to parse 'messageBody' JSON." << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return ;
|
||||
}
|
||||
|
||||
// <20><>ȡ code <20>ֶ<EFBFBD>
|
||||
cJSON* code = cJSON_GetObjectItem(messageBoy, "code");
|
||||
cJSON* code = cJSON_GetObjectItem(messageBody, "code");
|
||||
if (code == nullptr) {
|
||||
std::cout << "Missing 'code' in JSON." << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return;
|
||||
}
|
||||
|
||||
cJSON* index = cJSON_GetObjectItem(messageBoy, "index");
|
||||
cJSON* index = cJSON_GetObjectItem(messageBody, "index");
|
||||
if (index == nullptr) {
|
||||
std::cout << "Missing 'index' in JSON." << std::endl;
|
||||
cJSON_Delete(root);
|
||||
@@ -1047,7 +1075,7 @@ void parse_set(const std::string& json_str) {
|
||||
if(g_node_id == STAT_DATA_BASE_NODE_ID && g_front_seg_index == 1){
|
||||
std::cout << "cfg_stat_data process" << g_front_seg_index <<" handle this msg" << std::endl;
|
||||
// <20><><EFBFBD><EFBFBD> set_process
|
||||
cJSON* data = cJSON_GetObjectItem(messageBoy, "data");
|
||||
cJSON* data = cJSON_GetObjectItem(messageBody, "data");
|
||||
if (data != nullptr && data->type == cJSON_Array) {
|
||||
int data_size = cJSON_GetArraySize(data);
|
||||
for (int i = 0; i < data_size; i++) {
|
||||
@@ -1084,7 +1112,7 @@ void parse_set(const std::string& json_str) {
|
||||
if(g_node_id == STAT_DATA_BASE_NODE_ID && g_front_seg_index == 1){
|
||||
std::cout << "cfg_stat_data process" << g_front_seg_index <<" handle this msg" << std::endl;
|
||||
// <20><><EFBFBD><EFBFBD> set_process
|
||||
cJSON* data = cJSON_GetObjectItem(messageBoy, "data");
|
||||
cJSON* data = cJSON_GetObjectItem(messageBody, "data");
|
||||
if (data != nullptr && data->type == cJSON_Array) {
|
||||
int data_size = cJSON_GetArraySize(data);
|
||||
for (int i = 0; i < data_size; i++) {
|
||||
@@ -1093,12 +1121,14 @@ void parse_set(const std::string& json_str) {
|
||||
std::string fun = cJSON_GetObjectItem(item, "fun")->valuestring;
|
||||
std::string ip = cJSON_GetObjectItem(item, "ip")->valuestring;
|
||||
std::string frontType = cJSON_GetObjectItem(item, "frontType")->valuestring;
|
||||
int proindex = cJSON_GetObjectItem(item, "proindex")->valueint;
|
||||
|
||||
//У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if((fun == "start" || fun == "delete") &&
|
||||
isValidIP(ip) &&
|
||||
(frontType == "stat" || frontType == "recall" || frontType == "3s" || frontType == "comtrade")){
|
||||
execute_bash_debug(fun, ip, frontType);
|
||||
(frontType == "stat" || frontType == "recall" || frontType == "3s" || frontType == "comtrade") &&
|
||||
(proindex >= 10 && proindex < 100)){ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĽ<C3B5><C4BD>̺<EFBFBD>Ӧ<EFBFBD>ô<EFBFBD><C3B4><EFBFBD>10С<30><D0A1>100
|
||||
execute_bash_debug(fun, ip, frontType,proindex);
|
||||
std::cout << "!!!!!!!!!!!!!!!! execute mark:" << i << " !!!!!!!!!!!!!!!" <<std::endl;
|
||||
}
|
||||
else{
|
||||
@@ -1316,23 +1346,31 @@ void parse_control(const std::string& json_str, const std::string& output_dir) {
|
||||
return;
|
||||
}
|
||||
|
||||
// <20><>ȡ "messageBoy" <20><><EFBFBD><EFBFBD>
|
||||
cJSON* messageBoy = cJSON_GetObjectItem(root, "messageBoy");
|
||||
if (messageBoy == NULL || messageBoy->type != cJSON_Object) {
|
||||
std::cerr << "'messageBoy' is missing or is not an object" << std::endl;
|
||||
// <20><>ȡ "messageBody" <20><><EFBFBD><EFBFBD>
|
||||
cJSON* messageJson = cJSON_GetObjectItem(root, "messageBody");
|
||||
if (messageJson == NULL || messageJson->type != cJSON_String) {
|
||||
std::cerr << "'messageJson' is missing or is not an cJSON_String" << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return ;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> messageBody <20>е<EFBFBD> JSON <20>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
cJSON* messageBody = cJSON_Parse(messageJson->valuestring); // <20><><EFBFBD><EFBFBD> messageBody <20>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
if (messageBody == NULL) {
|
||||
std::cerr << "Failed to parse 'messageBody' JSON." << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return ;
|
||||
}
|
||||
|
||||
// <20><>ȡ code <20>ֶ<EFBFBD>
|
||||
cJSON* code = cJSON_GetObjectItem(messageBoy, "code");
|
||||
cJSON* code = cJSON_GetObjectItem(messageBody, "code");
|
||||
if (code == nullptr) {
|
||||
std::cout << "Missing 'code' in JSON." << std::endl;
|
||||
cJSON_Delete(root);
|
||||
return;
|
||||
}
|
||||
|
||||
cJSON* index = cJSON_GetObjectItem(messageBoy, "index");
|
||||
cJSON* index = cJSON_GetObjectItem(messageBody, "index");
|
||||
if (index == nullptr) {
|
||||
std::cout << "Missing 'index' in JSON." << std::endl;
|
||||
cJSON_Delete(root);
|
||||
@@ -1362,7 +1400,7 @@ void parse_control(const std::string& json_str, const std::string& output_dir) {
|
||||
std::cout << "add or update ledger" <<std::endl;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> add_terminal <20><> ledger_modify
|
||||
cJSON* data = cJSON_GetObjectItem(messageBoy, "data");
|
||||
cJSON* data = cJSON_GetObjectItem(messageBody, "data");
|
||||
if (data != nullptr && data->type == cJSON_Array) {
|
||||
int data_size = cJSON_GetArraySize(data);
|
||||
for (int i = 0; i < data_size; i++) {
|
||||
@@ -1533,7 +1571,7 @@ void parse_control(const std::string& json_str, const std::string& output_dir) {
|
||||
std::cout << "delete ledger" <<std::endl;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> delete_terminal
|
||||
cJSON* data = cJSON_GetObjectItem(root, "data");
|
||||
cJSON* data = cJSON_GetObjectItem(messageBody, "data");
|
||||
if (data != nullptr && data->type == cJSON_Array) {
|
||||
int data_size = cJSON_GetArraySize(data);
|
||||
for (int i = 0; i < data_size; i++) {
|
||||
@@ -2201,7 +2239,8 @@ int json_block_create_data(char monid_char[], char* mms_str, double v, int flick
|
||||
// return transfer_json_block_data(&json_blkd);
|
||||
//}
|
||||
|
||||
int json_block_create_end(char monid_char[], int flicker_flag)//WW 2023<32><33>3<EFBFBD><33>13<31><33>16:38:41 <20><>ICD<43><EFBFBD>
|
||||
//lnk2024-8-16<31><36><EFBFBD>ӽ<EFBFBD><D3BD>߲<EFBFBD><DFB2><EFBFBD>
|
||||
int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_flag)//WW 2023<32><33>3<EFBFBD><33>13<31><33>16:38:41 <20><>ICD<43><EFBFBD>
|
||||
{
|
||||
json_block_data* pdata;
|
||||
if (flicker_flag == 1) {
|
||||
@@ -2250,7 +2289,8 @@ int json_block_create_end(char monid_char[], int flicker_flag)//WW 2023
|
||||
printf("---------- json_block_create_end: pdata->mms_str_map.count() == 0 ----------\n");
|
||||
return 1;
|
||||
}
|
||||
int ret = transfer_json_block_data(pdata);
|
||||
//lnk2024-8-16<31><36><EFBFBD>ӽ<EFBFBD><D3BD>߲<EFBFBD><DFB2><EFBFBD>
|
||||
int ret = transfer_json_block_data(v_wiring_type, pdata);
|
||||
|
||||
if (pdata != NULL)
|
||||
delete pdata;
|
||||
|
||||
@@ -246,7 +246,7 @@ private slots:
|
||||
clientSocket->write(helpText.toUtf8());
|
||||
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD> TEST_NUM
|
||||
// <20><><EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
|
||||
else if (command.startsWith("TEST_NUM=")) {
|
||||
bool ok;
|
||||
int num = command.mid(9).toInt(&ok); // <20><>ȡ<EFBFBD>Ⱥź<C8BA><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
|
||||
@@ -259,39 +259,42 @@ private slots:
|
||||
std::cout << "Invalid number\n";
|
||||
}
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD> rc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
|
||||
else if (command.startsWith("rc")) {
|
||||
qDebug() << "Executing rocketmq_test_rc()";
|
||||
std::cout << "Executing rocketmq_test_rc()\n";
|
||||
rocketmq_test_rc(); // <20><><EFBFBD><EFBFBD> rc <20><><EFBFBD><EFBFBD>
|
||||
clientSocket->write("Executed rocketmq_test_rc\n> ");
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD> rt <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>ʵʱ<EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
|
||||
else if (command.startsWith("rt")) {
|
||||
qDebug() << "Executing rocketmq_test_rt()";
|
||||
std::cout << "Executing rocketmq_test_rt()\n";
|
||||
rocketmq_test_rt(); // <20><><EFBFBD><EFBFBD> rt <20><><EFBFBD><EFBFBD>
|
||||
clientSocket->write("Executed rocketmq_test_rt\n> ");
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD> ud <20><><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>̨<EFBFBD>˸<EFBFBD><EFBFBD>²<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
|
||||
else if (command.startsWith("ud")) {
|
||||
qDebug() << "Executing rocketmq_test_ud()";
|
||||
std::cout << "Executing rocketmq_test_ud()\n";
|
||||
rocketmq_test_ud(); // <20><><EFBFBD><EFBFBD> ud <20><><EFBFBD><EFBFBD>
|
||||
clientSocket->write("Executed rocketmq_test_ud\n> ");
|
||||
}
|
||||
// <20><><EFBFBD>ͽ<EFBFBD><CDBD>̿<EFBFBD><CCBF>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD>ı<EFBFBD>
|
||||
else if (command.startsWith("set")) {
|
||||
qDebug() << "Executing rocketmq_test_set()";
|
||||
std::cout << "Executing rocketmq_test_set()\n";
|
||||
rocketmq_test_set(); // <20><><EFBFBD><EFBFBD> set <20><><EFBFBD><EFBFBD>
|
||||
clientSocket->write("Executed rocketmq_test_set\n> ");
|
||||
}
|
||||
// <20><><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̲<EFBFBD><CCB2><EFBFBD><EFBFBD>ı<EFBFBD>
|
||||
else if (command.startsWith("only")) {
|
||||
qDebug() << "Executing rocketmq_test_only()";
|
||||
std::cout << "Executing rocketmq_test_only()\n";
|
||||
rocketmq_test_only(); // <20><><EFBFBD><EFBFBD> set <20><><EFBFBD><EFBFBD>
|
||||
clientSocket->write("Executed rocketmq_test_only\n> ");
|
||||
}
|
||||
// <20>鿴<EFBFBD><E9BFB4>ǰ<EFBFBD><C7B0><EFBFBD>̵<EFBFBD>̨<EFBFBD><CCA8>
|
||||
else if (command.startsWith("ledger")) {
|
||||
qDebug() << "Executing ledger()";
|
||||
std::cout << "Executing ledger()\n";
|
||||
@@ -315,6 +318,7 @@ private slots:
|
||||
clientSocket->write("Executed ledger without parameters\n> ");
|
||||
}
|
||||
}
|
||||
// <20>鿴<EFBFBD><E9BFB4>ǰ<EFBFBD><C7B0><EFBFBD>̵<EFBFBD>ָ<EFBFBD><D6B8>ֵ
|
||||
else if (command.startsWith("value")) {
|
||||
std::cout << "Executing value()" << std::endl;
|
||||
|
||||
|
||||
@@ -72,7 +72,8 @@ int json_block_create_flag(char monid_char[], int flag, int flicker_flag);
|
||||
//2. json<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻص<DDBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
int json_block_create_data(char monid_char[], char* mms_str , double v, int flicker_flag);
|
||||
//3. json<6F><6E><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int json_block_create_end(char monid_char[], int flicker_flag); //CZY 2023-08-17 <20><EFBFBD><EFBFBD><EFBFBD>
|
||||
//lnk2024-8-16<31><36><EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>
|
||||
int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_flag); //CZY 2023-08-17 <20><><EFBFBD><EFBFBD>
|
||||
//int json_block_create_end(int MonitorId,int devkind);//CZY 2023-08-17 <20><><EFBFBD><EFBFBD>
|
||||
|
||||
//zw 2024-01-31 <20><><EFBFBD><EFBFBD>ģʽ<C4A3>Ż<EFBFBD>
|
||||
|
||||
@@ -250,9 +250,9 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
|
||||
{
|
||||
printf("\n newTime: %d %d %d %d %d %d", newTime.tm_year, newTime.tm_mon, newTime.tm_mday, newTime.tm_hour, newTime.tm_min, newTime.tm_sec);
|
||||
printf("\n preTime: %d %d %d %d %d %d", preTime.tm_year, preTime.tm_mon, preTime.tm_mday, preTime.tm_hour, preTime.tm_min, preTime.tm_sec);
|
||||
json_block_create_end(loginfo->LD_info->mp_id, 0);//<2F><>̬
|
||||
json_block_create_end(loginfo->LD_info->mp_id, 1);//<2F><><EFBFBD><EFBFBD>
|
||||
json_block_create_end(loginfo->LD_info->mp_id, 2);//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 0);//<2F><>̬
|
||||
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 1);//<2F><><EFBFBD><EFBFBD>
|
||||
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 2);//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
process_jou_entry_t = t;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
|
||||
ied_t* ied;
|
||||
@@ -559,9 +559,10 @@ ST_RET mms_jread (loginfo_t *loginfo,MVL_NET_INFO *clientNetInfo, ST_CHAR *dom_n
|
||||
//start = sGetMsTime();
|
||||
if ( jread_resp->more_follows == 0 && ((i + 1) == jread_resp->num_of_jou_entry)) {
|
||||
printf("\njread_resp->more_follows == 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
json_block_create_end(loginfo->LD_info->mp_id, 0);//more followsΪ0 <20><><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> ǿ<>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD>ݵ<EFBFBD>json<6F><6E>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
json_block_create_end(loginfo->LD_info->mp_id, 1);
|
||||
json_block_create_end(loginfo->LD_info->mp_id, 2);
|
||||
//lnk2024-8-16<EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>߲<EFBFBD><EFBFBD><EFBFBD>
|
||||
json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 0);//more followsΪ0 <20><><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> ǿ<>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD>ݵ<EFBFBD>json<6F><6E>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
||||
json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 1);
|
||||
json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 2);
|
||||
|
||||
ied_t* ied;
|
||||
ied = find_ied_from_dev_code(loginfo->LD_info->terminal_code);
|
||||
|
||||
@@ -1127,13 +1127,13 @@ ST_VOID u_iec_rpt_ind_data_by_devtype(MVL_VAR_ASSOC** info_va,
|
||||
{
|
||||
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022<32><32>12<31><32>6<EFBFBD><36>14:09:08 <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>ICD֧<44><D6A7>
|
||||
//int devkind = ied_usr->dev_flag;
|
||||
json_block_create_end(LD_info->mp_id, rptinfo->flickerflag);
|
||||
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag); //lnk2024-8-16<31><36><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>
|
||||
}
|
||||
else if(rptinfo->flickerflag == 0){//CZY 2023-08-17 WW 2022-11-14 <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
if (LD_info->rptRecvFlag == LD_info->rptRecvCheckFlag) {
|
||||
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022<32><32>12<31><32>6<EFBFBD><36>14:09:08 <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>ICD֧<44><D6A7>
|
||||
//int devkind = ied_usr->dev_flag;
|
||||
json_block_create_end(LD_info->mp_id, rptinfo->flickerflag);
|
||||
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag); //lnk2024-8-16<31><36><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>
|
||||
LD_info->rptRecvCheckFlag = 0;
|
||||
}
|
||||
}
|
||||
@@ -1141,7 +1141,7 @@ ST_VOID u_iec_rpt_ind_data_by_devtype(MVL_VAR_ASSOC** info_va,
|
||||
if (LD_info->rptPstRecvFlag == LD_info->rptPstRecvCheckFlag) {
|
||||
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022<32><32>12<31><32>6<EFBFBD><36>14:09:08 <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>ICD֧<44><D6A7>
|
||||
//int devkind = ied_usr->dev_flag;
|
||||
json_block_create_end(LD_info->mp_id, rptinfo->flickerflag);
|
||||
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag); //lnk2024-8-16<31><36><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD>
|
||||
LD_info->rptPstRecvCheckFlag = 0;
|
||||
}
|
||||
}
|
||||
@@ -1522,13 +1522,13 @@ ST_VOID u_iec_rpt_ind_data(MVL_VAR_ASSOC** info_va,
|
||||
{
|
||||
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022<32><32>12<31><32>6<EFBFBD><36>14:09:08 <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>ICD֧<44><D6A7>
|
||||
//int devkind = ied_usr->dev_flag;
|
||||
json_block_create_end(LD_info->mp_id, rptinfo->flickerflag);
|
||||
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag);//lnk<6E><6B><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>
|
||||
}
|
||||
else if (rptinfo->flickerflag == 0) {//CZY 2023-08-17 WW 2022-11-14 <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
||||
if (LD_info->rptRecvFlag == LD_info->rptRecvCheckFlag) {
|
||||
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022<32><32>12<31><32>6<EFBFBD><36>14:09:08 <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>ICD֧<44><D6A7>
|
||||
//int devkind = ied_usr->dev_flag;
|
||||
json_block_create_end(LD_info->mp_id, rptinfo->flickerflag);
|
||||
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag);//lnk<6E><6B><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>
|
||||
LD_info->rptRecvCheckFlag = 0;
|
||||
}
|
||||
}
|
||||
@@ -1536,7 +1536,7 @@ ST_VOID u_iec_rpt_ind_data(MVL_VAR_ASSOC** info_va,
|
||||
if (LD_info->rptPstRecvFlag == LD_info->rptPstRecvCheckFlag) {
|
||||
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022<32><32>12<31><32>6<EFBFBD><36>14:09:08 <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>ICD֧<44><D6A7>
|
||||
//int devkind = ied_usr->dev_flag;
|
||||
json_block_create_end(LD_info->mp_id, rptinfo->flickerflag);
|
||||
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag);//lnk<6E><6B><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>
|
||||
LD_info->rptPstRecvCheckFlag = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -255,6 +255,11 @@ apr_status_t run_protocol()
|
||||
// apr_thread_t* mms_thread;
|
||||
static apr_threadattr_t* worker_attr = NULL;
|
||||
|
||||
//lnk20250214//<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD>0<EFBFBD><30>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>̨<EFBFBD>ˣ<EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>Ľ<EFBFBD><C4BD>̺<EFBFBD>
|
||||
if (g_onlyIP[0] != 0 && g_front_seg_index == 0 && g_front_seg_num >= 10){ //<2F><><EFBFBD><EFBFBD>web<65>˿<EFBFBD><CBBF>ƴĵ<F2BFAAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
g_front_seg_index = g_front_seg_num; //<2F><><EFBFBD>½<EFBFBD><C2BD>̺<EFBFBD>Ϊ<EFBFBD><CEAA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĽ<C3B5><C4BD>̺ţ<CCBA><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1>־
|
||||
}
|
||||
|
||||
init_MMS();
|
||||
|
||||
if (worker_attr == NULL)
|
||||
@@ -274,7 +279,7 @@ apr_status_t run_protocol()
|
||||
if ((rv = apr_thread_create(&rtdb_thread, worker_attr, rtdb_worker, NULL, g_run_pool)) != APR_SUCCESS)
|
||||
return rv;
|
||||
|
||||
try_start_kafka_thread();
|
||||
try_start_kafka_thread();//mq<6D>߳<EFBFBD>
|
||||
|
||||
//lnk20241213<31><33><EFBFBD><EFBFBD>mq<6D><71><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
||||
try_start_mqconsumer_thread();
|
||||
@@ -284,11 +289,10 @@ apr_status_t run_protocol()
|
||||
{
|
||||
printf("g_onlyIP[0] != 0!\n\a");
|
||||
|
||||
//lnk20250211<EFBFBD><EFBFBD>ǰ<EFBFBD>õĽ<EFBFBD><EFBFBD>̺<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ999<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鿴<EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>,webһ<62><D2BB>ֻ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鿴
|
||||
g_front_seg_index = 999;
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>socket<EFBFBD><EFBFBD>http<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
||||
|
||||
}
|
||||
else
|
||||
else //socket<65><74>http<74><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵߳Ŀ<CCB5><C4BF><EFBFBD>
|
||||
{
|
||||
printf("g_onlyIP[0] == 0!\n\a");
|
||||
if (1 == SOCKETENABLE)
|
||||
|
||||
Reference in New Issue
Block a user