fix rtdata error

This commit is contained in:
lnk
2025-07-30 16:30:10 +08:00
parent 7ee93deefa
commit 7d7a89223c
4 changed files with 57 additions and 13 deletions

View File

@@ -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(); //解锁

View File

@@ -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=<num> - Set the TEST_NUM\r\n";
helpText += "TEST_TYPE=<num> - Set the TEST_TYPE 0:use ledger,1:use number\r\n";
helpText += "LOG=<bool> - Set the LOG\r\n";
helpText += "DEBUG=<bool> - 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);

View File

@@ -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; i<trigger_num; i++){
for (j=0; j<trigger_3s_xml->work_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; j<trigger_3s_xml->work_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; i<trigger_num; i++){
for (j=0; j<trigger_3s_xml->work_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;

View File

@@ -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;