完成数据追踪原始数据上送

This commit is contained in:
lnk
2026-06-09 16:13:52 +08:00
parent cd92ea09f1
commit d3579a2aa7
3 changed files with 39 additions and 7 deletions

View File

@@ -321,6 +321,10 @@ std::string Heart_Beat_Key = "";
std::string Topic_Reply_Topic = "";
std::string Topic_Reply_Tag = "";
std::string Topic_Reply_Key = "";
//数据追踪
std::string DATA_TRACE_TOPIC = "";
std::string DATA_TRACE_TAG = "";
std::string DATA_TRACE_KEY = "";
//lnk20260310添加文件管理的topic和tag
std::string G_MQCONSUMER_TOPIC_FILE = "";//consumer topie
@@ -673,6 +677,13 @@ void init_config() {
ba = settings.value("RocketMq/Topic_Reply_Key", "").toString().toLatin1();
Topic_Reply_Key = strdup(ba.data());
//数据追踪
ba = settings.value("RocketMq/TraceTopic", "").toString().toLatin1();
DATA_TRACE_TOPIC = strdup(ba.data());
ba = settings.value("RocketMq/TraceTag", "").toString().toLatin1();
DATA_TRACE_TAG = strdup(ba.data());
ba = settings.value("RocketMq/TraceKey", "").toString().toLatin1();
DATA_TRACE_KEY = strdup(ba.data());
//消费者
ba = settings.value("RocketMq/consumer", "").toString().toLatin1();

View File

@@ -44,6 +44,7 @@ extern std::string WEB_COMFLAG;
extern std::string WEB_EVENT;
extern std::string WEB_FILEDOWNLOAD;
extern std::string G_CONNECT_TOPIC;
extern std::string DATA_TRACE_TOPIC;//lnk20260609数据追踪topic
extern int RECALL_ONLY_FLAG;
@@ -290,24 +291,36 @@ static void trace_hit_and_decrement(const QString& mp_id)
}
//追踪61850原始数据
static QString build_mms_multiline_text(const json_block_data* data)
static QString build_mms_json_object(const json_block_data* data)
{
QStringList lines;
QString json = "{";
QMapIterator<QString, double> it(data->mms_str_map);
bool first = true;
while (it.hasNext()) {
it.next();
lines << QString("%1 = %2").arg(it.key()).arg(it.value(), 0, 'g', 15);
if (!first)
json += ",";
json += QString("\"%1\":%2")
.arg(escape_json_string(it.key()))
.arg(QString::number(it.value(), 'g', 15));
first = false;
}
return lines.join("\n");
json += "}";
return json;
}
static QString build_trace_json(const json_block_data* data)
{
if (!data) return "{}";
QString mms_text = build_mms_multiline_text(data);
QString mms_json = build_mms_json_object(data);
QString json;
json += "{";
@@ -316,7 +329,7 @@ static QString build_trace_json(const json_block_data* data)
json += QString("\"data_time\":%1,").arg(QString::number((qlonglong)data->time));
json += QString("\"voltage_level\":\"%1\",").arg(QString::number(data->voltage_level, 'f', 6));
json += QString("\"dev_type\":\"%1\",").arg(escape_json_string(data->dev_type));
json += QString("\"mms_text\":\"%1\"").arg(escape_json_string(mms_text));
json += QString("\"mms_json\":%1").arg(mms_json);
json += "}";
return json;
@@ -334,7 +347,7 @@ static void send_trace_if_needed(json_block_data* pdata)
Ckafka_data_t KafkaData;
KafkaData.monitor_id = pdata->monitorId;
KafkaData.mp_id = pdata->mp_id;
KafkaData.strTopic = "DATA_TRACE_TOPIC";
KafkaData.strTopic = QString::fromStdString(DATA_TRACE_TOPIC);
KafkaData.strText = jsonText;
kafka_data_list_mutex.lock();
@@ -1204,6 +1217,9 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json
print_mms_str_map(data);
}
//数据追踪上送
send_trace_if_needed(data);
list<CTopic*> ctopic_list;
////lnk2024-8-15 区分星型,角型接线

View File

@@ -2149,6 +2149,8 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
printf(">>>>>>>> extract_timestamp_from_cfg_file success \n");
qvvr = find_qvvr_by_trig_tm(LD_info,trig_tm); //根据文件的触发时间查找检测点记录的匹配上的暂态事件
if (qvvr) {
DIY_INFOLOG_CODE(LD_info->mp_id,2,LOG_CODE_COMTRADE_FILE,"【NORMAL】监测点:%s - id:%s波形文件匹配暂态事件成功", LD_info->name,LD_info->mp_id);
char* uuid_cfg = (char*)malloc(65 * sizeof(char));//上传文件后获取到的路径
char* uuid_dat = (char*)malloc(65 * sizeof(char));
char* filename_cfg = (char*)malloc(100 * sizeof(char));//上传文件后获取到的文件名
@@ -2374,6 +2376,9 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
}
}
else {
DIY_INFOLOG_CODE(LD_info->mp_id,2,LOG_CODE_COMTRADE_FILE,"【INFO】监测点:%s - id:%s的录波文件没有任何暂态事件可以匹配录波号段%d", LD_info->name,LD_info->mp_id,LD_info->FltNum[i]);
}
}
}