数据追踪增加接线方式和来源

This commit is contained in:
lnk
2026-07-03 14:43:13 +08:00
parent d69c823575
commit 76e8fa683c
6 changed files with 34 additions and 30 deletions

View File

@@ -316,15 +316,19 @@ static QString build_mms_json_object(const json_block_data* data)
return json; return json;
} }
static QString build_trace_json(const json_block_data* data) static QString build_trace_json(const json_block_data* data, const char *v_wiring_type, const char *source_name)
{ {
if (!data) return "{}"; if (!data) return "{}";
QString mms_json = build_mms_json_object(data); QString mms_json = build_mms_json_object(data);
QString wiring_type = v_wiring_type ? QString::fromLocal8Bit(v_wiring_type) : "";
QString source = source_name ? QString::fromLocal8Bit(source_name) : "";
QString json; QString json;
json += "{"; json += "{";
json += QString("\"mp_id\":\"%1\",").arg(escape_json_string(data->mp_id)); json += QString("\"mp_id\":\"%1\",").arg(escape_json_string(data->mp_id));
json += QString("\"v_wiring_type\":\"%1\",").arg(escape_json_string(wiring_type));
json += QString("\"source_name\":\"%1\",").arg(escape_json_string(source));
json += QString("\"func_type\":%1,").arg(data->func_type); json += QString("\"func_type\":%1,").arg(data->func_type);
json += QString("\"data_time\":%1,").arg(QString::number((qlonglong)data->time)); 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("\"voltage_level\":\"%1\",").arg(QString::number(data->voltage_level, 'f', 6));
@@ -335,13 +339,13 @@ static QString build_trace_json(const json_block_data* data)
return json; return json;
} }
static void send_trace_if_needed(json_block_data* pdata) static void send_trace_if_needed(json_block_data* pdata, const char *v_wiring_type, const char *source_name)
{ {
const QString mp_id_q = pdata->mp_id; const QString mp_id_q = pdata->mp_id;
if (trace_is_enabled(mp_id_q)) { if (trace_is_enabled(mp_id_q)) {
// 1) 组 json // 1) 组 json
QString jsonText = build_trace_json(pdata); QString jsonText = build_trace_json(pdata, v_wiring_type, source_name);
// 2) 组 KafkaData // 2) 组 KafkaData
Ckafka_data_t KafkaData; Ckafka_data_t KafkaData;
@@ -1210,7 +1214,7 @@ static void print_mms_str_map(const json_block_data* data)
} }
//20250214添加角型接线处理 //20250214添加角型接线处理
int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json生成函数 zw修改 2023-8-11 调整传送json结构 目前仅限历史稳态数据 int transfer_json_block_data(char v_wiring_type[], json_block_data *data, const char *source_name) //json生成函数 zw修改 2023-8-11 调整传送json结构 目前仅限历史稳态数据
{ {
// 刚进函数就打印 mms_str_map // 刚进函数就打印 mms_str_map
if (DEBUGOPEN) { if (DEBUGOPEN) {
@@ -1218,7 +1222,7 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json
} }
//数据追踪上送 //数据追踪上送
send_trace_if_needed(data); send_trace_if_needed(data, v_wiring_type, source_name);
list<CTopic*> ctopic_list; list<CTopic*> ctopic_list;
@@ -3763,4 +3767,3 @@ void Set_xml_nodeinfo_one(char* dev_type)
} }
} }

View File

@@ -73,7 +73,7 @@ public:
int list_num; int list_num;
}; };
int transfer_json_block_data(char v_wiring_type[], json_block_data* data);//lnk2024-8-16添加参数 int transfer_json_block_data(char v_wiring_type[], json_block_data* data, const char *source_name);//lnk2024-8-16添加参数
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@@ -3635,13 +3635,14 @@ int json_block_create_data(char monid_char[], char* mms_str, double v, int flick
//lnk2024-8-16添加接线参数 //lnk2024-8-16添加接线参数
int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_flag)//WW 2023年3月13日16:38:41 多ICD修改 int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_flag, const char *source_name)//WW 2023年3月13日16:38:41 多ICD修改
{ {
const char *end_source = (source_name && source_name[0]) ? source_name : "unknown";
json_block_data* pdata; json_block_data* pdata;
if (flicker_flag == 1) { if (flicker_flag == 1) {
if (!json_flicker_data_map.contains(monid_char))//未查到数据 if (!json_flicker_data_map.contains(monid_char))//未查到数据
{ {
printf("---------- json_block_create_end: mp_id= %s json_flicker_data_map can't find MonitorId----------\n", monid_char); printf("---------- json_block_create_end: source=%s mp_id= %s json_flicker_data_map can't find MonitorId----------\n", end_source, monid_char);
return 1; return 1;
} }
pdata = json_flicker_data_map.value(monid_char); pdata = json_flicker_data_map.value(monid_char);
@@ -3650,7 +3651,7 @@ int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_f
{ {
if (!json_data_map.contains(monid_char))//未查到数据 if (!json_data_map.contains(monid_char))//未查到数据
{ {
printf("---------- json_block_create_end: mp_id= %s json_data_map can't find MonitorId----------\n", monid_char); printf("---------- json_block_create_end: source=%s mp_id= %s json_data_map can't find MonitorId----------\n", end_source, monid_char);
return 1; return 1;
} }
pdata = json_data_map.value(monid_char); pdata = json_data_map.value(monid_char);
@@ -3659,7 +3660,7 @@ int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_f
{ {
if (!json_pst_data_map.contains(monid_char))//未查到数据 if (!json_pst_data_map.contains(monid_char))//未查到数据
{ {
printf("---------- json_block_create_end: mp_id= %s json_pst_data_map can't find MonitorId----------\n", monid_char); printf("---------- json_block_create_end: source=%s mp_id= %s json_pst_data_map can't find MonitorId----------\n", end_source, monid_char);
return 1; return 1;
} }
pdata = json_pst_data_map.value(monid_char); pdata = json_pst_data_map.value(monid_char);
@@ -3693,11 +3694,11 @@ int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_f
json_pst_data_map.remove(monid_char); json_pst_data_map.remove(monid_char);
} }
printf("---------- json_block_create_end: pdata->mms_str_map.count() == 0 ----------\n"); printf("---------- json_block_create_end: source=%s mp_id= %s pdata->mms_str_map.count() == 0 ----------\n", end_source, monid_char);
return 1; return 1;
} }
//lnk2024-8-16添加接线参数 //lnk2024-8-16添加接线参数
int ret = transfer_json_block_data(v_wiring_type, pdata); int ret = transfer_json_block_data(v_wiring_type, pdata, end_source);
if (pdata != NULL) if (pdata != NULL)
delete pdata; delete pdata;
@@ -3714,7 +3715,7 @@ int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_f
json_pst_data_map.remove(monid_char); json_pst_data_map.remove(monid_char);
} }
printf("---------- json_block_create_end: MonitorId= %s ----------\n", monid_char); printf("---------- json_block_create_end: source=%s MonitorId= %s ----------\n", end_source, monid_char);
return ret; return ret;
} }

View File

@@ -77,7 +77,7 @@ int json_block_create_flag(char monid_char[], int flag, int flicker_flag);
int json_block_create_data(char monid_char[], char* mms_str , double v, int flicker_flag); int json_block_create_data(char monid_char[], char* mms_str , double v, int flicker_flag);
//3. json生成结束函数 //3. json生成结束函数
//lnk2024-8-16添加参数 //lnk2024-8-16添加参数
int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_flag); //CZY 2023-08-17 测试 int json_block_create_end(char v_wiring_type[], char monid_char[], int flicker_flag, const char *source_name); //CZY 2023-08-17 测试
//zw 2024-01-31 补招模式优化 //zw 2024-01-31 补招模式优化
void add_mvl_type_ctrl(char doname[], int ctrl); void add_mvl_type_ctrl(char doname[], int ctrl);

View File

@@ -295,9 +295,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 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); 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->v_wiring_type,loginfo->LD_info->mp_id, 0);//稳态 json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 0, loginfo->logName);//稳态
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, 1, loginfo->logName);//长闪
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 2);//短闪 波动 json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 2, loginfo->logName);//短闪 波动
process_jou_entry_t = t;//调整至最新时标 process_jou_entry_t = t;//调整至最新时标
ied_t* ied; ied_t* ied;
@@ -603,9 +603,9 @@ ST_RET mms_jread (loginfo_t *loginfo,MVL_NET_INFO *clientNetInfo, ST_CHAR *dom_n
if ( jread_resp->more_follows == 0 && ((i + 1) == jread_resp->num_of_jou_entry)) { if ( jread_resp->more_follows == 0 && ((i + 1) == jread_resp->num_of_jou_entry)) {
printf("\njread_resp->more_follows == 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); printf("\njread_resp->more_follows == 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
//lnk2024-8-16添加接线参数 //lnk2024-8-16添加接线参数
json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 0);//more follows为0 数据接受最后一条 强行处理稳态数据的json防止遗留 json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 0, loginfo->logName);//more follows为0 数据接受最后一条 强行处理稳态数据的json防止遗留
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, 1, loginfo->logName);
json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 2); json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 2, loginfo->logName);
ied_t* ied; ied_t* ied;
ied = find_ied_from_dev_code(loginfo->LD_info->terminal_code); ied = find_ied_from_dev_code(loginfo->LD_info->terminal_code);

View File

@@ -1131,13 +1131,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年12月6日14:09:08 增加多个ICD支持 //ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持
//int devkind = ied_usr->dev_flag; //int devkind = ied_usr->dev_flag;
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag); //lnk2024-8-16增加接线类型参数 json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag, rcb_info->RptID); //lnk2024-8-16增加接线类型参数
} }
else if(rptinfo->flickerflag == 0){//CZY 2023-08-17 WW 2022-11-14 增加多个报告判断 else if(rptinfo->flickerflag == 0){//CZY 2023-08-17 WW 2022-11-14 增加多个报告判断
if (LD_info->rptRecvFlag == LD_info->rptRecvCheckFlag) { if (LD_info->rptRecvFlag == LD_info->rptRecvCheckFlag) {
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持 //ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持
//int devkind = ied_usr->dev_flag; //int devkind = ied_usr->dev_flag;
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag); //lnk2024-8-16增加接线类型参数 json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag, rcb_info->RptID); //lnk2024-8-16增加接线类型参数
LD_info->rptRecvCheckFlag = 0; LD_info->rptRecvCheckFlag = 0;
} }
} }
@@ -1145,7 +1145,7 @@ ST_VOID u_iec_rpt_ind_data_by_devtype(MVL_VAR_ASSOC** info_va,
if (LD_info->rptPstRecvFlag == LD_info->rptPstRecvCheckFlag) { if (LD_info->rptPstRecvFlag == LD_info->rptPstRecvCheckFlag) {
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持 //ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持
//int devkind = ied_usr->dev_flag; //int devkind = ied_usr->dev_flag;
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag); //lnk2024-8-16增加接线类型参数 json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag, rcb_info->RptID); //lnk2024-8-16增加接线类型参数
LD_info->rptPstRecvCheckFlag = 0; LD_info->rptPstRecvCheckFlag = 0;
} }
} }
@@ -1555,14 +1555,14 @@ 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年12月6日14:09:08 增加多个ICD支持 //ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持
//int devkind = ied_usr->dev_flag; //int devkind = ied_usr->dev_flag;
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag);//lnk角形处理 json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag, rcb_info->RptID);//lnk角形处理
} }
else if (rptinfo->flickerflag == 0) {//CZY 2023-08-17 WW 2022-11-14 增加多个报告判断 else if (rptinfo->flickerflag == 0) {//CZY 2023-08-17 WW 2022-11-14 增加多个报告判断
if (LD_info->rptRecvFlag == LD_info->rptRecvCheckFlag) { if (LD_info->rptRecvFlag == LD_info->rptRecvCheckFlag) {
//LD_info->rptRecvFlag是报告初始化时报告序号左移之和固定于报告初始化 //LD_info->rptRecvFlag是报告初始化时报告序号左移之和固定于报告初始化
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持 //ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持
//int devkind = ied_usr->dev_flag; //int devkind = ied_usr->dev_flag;
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag);//lnk角形处理 json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag, rcb_info->RptID);//lnk角形处理
LD_info->rptRecvCheckFlag = 0; LD_info->rptRecvCheckFlag = 0;
} }
} }
@@ -1570,7 +1570,7 @@ ST_VOID u_iec_rpt_ind_data(MVL_VAR_ASSOC** info_va,
if (LD_info->rptPstRecvFlag == LD_info->rptPstRecvCheckFlag) { if (LD_info->rptPstRecvFlag == LD_info->rptPstRecvCheckFlag) {
//ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持 //ied_usr_t* ied_usr = ied->usr_ext;//CZY 2023-08-17 WW 2022年12月6日14:09:08 增加多个ICD支持
//int devkind = ied_usr->dev_flag; //int devkind = ied_usr->dev_flag;
json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag);//lnk角形处理 json_block_create_end(LD_info->v_wiring_type, LD_info->mp_id, rptinfo->flickerflag, rcb_info->RptID);//lnk角形处理
LD_info->rptPstRecvCheckFlag = 0; LD_info->rptPstRecvCheckFlag = 0;
} }
} }