From 7d7a89223c7afa696179adecf5adcf5a16a3a4cb Mon Sep 17 00:00:00 2001 From: lnk Date: Wed, 30 Jul 2025 16:30:10 +0800 Subject: [PATCH] fix rtdata error --- json/create_json.cpp | 18 ++++++++++++++---- json/save2json.h | 15 +++++++++++++++ mms/mms_process.c | 20 +++++++++++--------- mms/rdb_ext_utils.c | 17 +++++++++++++++++ 4 files changed, 57 insertions(+), 13 deletions(-) diff --git a/json/create_json.cpp b/json/create_json.cpp index d18c468..2a0ce11 100644 --- a/json/create_json.cpp +++ b/json/create_json.cpp @@ -33,6 +33,8 @@ extern std::string WEB_EVENT; extern std::string WEB_FILEDOWNLOAD; extern std::string G_CONNECT_TOPIC; +bool DEBUGOPEN = 0; + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// using namespace std; @@ -1052,7 +1054,7 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json cout << "transfer_json_block_data contain data->dev_type" << endl; ctopic_list = xmlinfo_list2[data->dev_type]->topicList; - //printCTopicList(ctopic_list); + if(DEBUGOPEN)printCTopicList(ctopic_list); } else { cout << "transfer_json_block_data not contain data->dev_type:" << data->dev_type.toStdString() << " !!!!"<< endl; @@ -1505,7 +1507,7 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json KafkaData.strText.append("}"); //拼接 json稳态数据结尾 //调试用 - //cout << KafkaData.strText.toAscii().data() << endl; + if(DEBUGOPEN)cout << KafkaData.strText.toAscii().data() << endl; kafka_data_list_mutex.lock(); //加锁 kafka_data_list.append(KafkaData); //添加 kafka发送链表 @@ -1786,9 +1788,14 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json if (isJump) continue; //跳出本数据类型循环 KafkaData.strText.append("}"); //拼接 json稳态数据结尾 + //调试用 + if(DEBUGOPEN)cout << KafkaData.strText.toAscii().data() << endl; + kafka_data_list_mutex.lock(); //加锁 kafka_data_list.append(KafkaData); //添加 kafka发送链表 kafka_data_list_mutex.unlock(); //解锁 + + return 1; //结束该函数,停止后续代码执行 } //②-②实时闪变数据解析结束!-------------------------------- @@ -1855,7 +1862,7 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json return 1; //结束该函数,停止后续代码执行 } //②-①SOE稳态事件解析结束!--------------------------------- - if (1 == pDataType->iDataType) //②-②SOE暂态事件------------------------------------------------------------ + if (2 == pDataType->iDataType) //②-②SOE暂态事件------------------------------------------------------------ { Ckafka_data_t KafkaData; //kafka发送数据结构类对象 KafkaData.monitor_id = data->monitorId; //监测点ID @@ -1908,7 +1915,7 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json return 1; //结束该函数,停止后续代码执行 } //②-②SOE暂态事件解析结束!--------------------------------- - if (1 == pDataType->iDataType) //②-③SOE状态事件------------------------------------------------------------ + if (3 == pDataType->iDataType) //②-③SOE状态事件------------------------------------------------------------ { Ckafka_data_t KafkaData; //kafka发送数据结构类对象 KafkaData.monitor_id = data->monitorId; //监测点ID @@ -2348,6 +2355,9 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json if (isJump) continue; //跳出本数据类型循环 KafkaData.strText.append("}"); //拼接 json稳态数据结尾 + //调试用 + if(DEBUGOPEN)cout << KafkaData.strText.toAscii().data() << endl; + kafka_data_list_mutex.lock(); //加锁 kafka_data_list.append(KafkaData); //添加 kafka发送链表 kafka_data_list_mutex.unlock(); //解锁 diff --git a/json/save2json.h b/json/save2json.h index 31e2021..99ad1d6 100644 --- a/json/save2json.h +++ b/json/save2json.h @@ -54,6 +54,8 @@ extern void ledger(const char* terminal_id = NULL,QIODevice* outputDevice = NULL extern void value_print(const char *variableName, QTcpSocket *clientSocket); extern int TEST_PORT; +extern bool DEBUGOPEN; + extern void redirectErrorOutput(bool enable); extern void redirectWarnOutput(bool enable); extern void redirectNormalOutput(bool enable); @@ -414,6 +416,7 @@ private: helpText += "TEST_NUM= - Set the TEST_NUM\r\n"; helpText += "TEST_TYPE= - Set the TEST_TYPE 0:use ledger,1:use number\r\n"; helpText += "LOG= - Set the LOG\r\n"; + helpText += "DEBUG= - Set the DEBUG\r\n"; helpText += "telnettest - Set the telnettest\r\n"; helpText += "rc - Execute rocketmq_test_rc\r\n"; helpText += "rt - Execute rocketmq_test_rt\r\n"; @@ -472,6 +475,18 @@ private: clientSocket->write("Invalid number\r\n"); } } + else if (cmd.startsWith("DEBUG=")) { + bool ok; + bool debugFlag = cmd.mid(6).toInt(&ok); + if (ok) { + DEBUGOPEN = debugFlag; + clientSocket->write("\r\x1B[K"); + clientSocket->write("LOG updated\r\n"); + } else { + clientSocket->write("\r\x1B[K"); + clientSocket->write("Invalid number\r\n"); + } + } else if (cmd.startsWith("telnettest")) { g_stopTelnetTest = false; telnetetst(clientSocket); diff --git a/mms/mms_process.c b/mms/mms_process.c index 30fd6b1..5084137 100644 --- a/mms/mms_process.c +++ b/mms/mms_process.c @@ -620,17 +620,19 @@ void process_3s_config(trigger_3s_xml_t *trigger_3s_xml) trigger = trigger_3s_xml->delete_triggers; //如果没有deletetrigger这里就是0 trigger_num = trigger_3s_xml->delete_trigger_num; for (i=0; iwork_trigger_num; j++){ - trigger_work = &trigger_3s_xml->work_triggers[j]; - if (trigger_work->dev_idx==trigger[i].dev_idx && trigger_work->line_id==trigger[i].line_id ) { - clear_rpt_counter_by_trigger(trigger_work); + //for (j=0; jwork_trigger_num; j++){ + //trigger_work = &trigger_3s_xml->work_triggers[j]; + //if (trigger_work->dev_idx==trigger[i].dev_idx && trigger_work->line_id==trigger[i].line_id ) { + clear_one_LD_real_soe_report_shoud_register(trigger[i].dev_idx,trigger[i].line_id); + //clear_rpt_counter_by_trigger(trigger_work); + clear_rpt_counter_by_trigger(trigger); trigger_work->dev_idx = INVALID_DEV_IDX; - } - } + //} + //} need_write_file = TRUE; } - trigger = trigger_3s_xml->modify_triggers; //如果没有modifytrigger这里就是0 + /*trigger = trigger_3s_xml->modify_triggers; //如果没有modifytrigger这里就是0 trigger_num = trigger_3s_xml->modify_trigger_num; for (i=0; iwork_trigger_num; j++){ @@ -641,9 +643,9 @@ void process_3s_config(trigger_3s_xml_t *trigger_3s_xml) } } need_write_file = TRUE; - } + } */ - clear_all_LD_real_soe_report_shoud_register(); //清空所有需要注册的报告,根据实时配置文件来。这里使LD_info->real_data = 0;LD_info->soe_data = 0;就不会触发报告 + //clear_all_LD_real_soe_report_shoud_register(); //清空所有需要注册的报告,根据实时配置文件来。这里使LD_info->real_data = 0;LD_info->soe_data = 0;就不会触发报告 trigger = trigger_3s_xml->work_triggers; //文件的work块 trigger_num = trigger_3s_xml->work_trigger_num; diff --git a/mms/rdb_ext_utils.c b/mms/rdb_ext_utils.c index 7480068..04d6c9d 100644 --- a/mms/rdb_ext_utils.c +++ b/mms/rdb_ext_utils.c @@ -409,6 +409,23 @@ void clear_all_LD_real_soe_report_shoud_register() } } +void clear_one_LD_real_soe_report_shoud_register(int dev_index,int line_index) +{ + ied_t *ied; + LD_info_t *LD_info; + + ied = find_ied_from_dev_idx(dev_index); + if (!ied) + return; + LD_info = find_LD_info_from_line_id(ied,line_index); + if (!LD_info) + return; + if (LD_info ) { + LD_info->real_data = 0; + LD_info->soe_data = 0; + } +} + void clear_rpt_counter_by_trigger(trigger_t *trigger) { ied_t *ied;