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

This commit is contained in:
lnk
2026-07-03 14:43:13 +08:00
parent c0860a48d6
commit d78cef25a0
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;
}
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 "{}";
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;
json += "{";
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("\"data_time\":%1,").arg(QString::number((qlonglong)data->time));
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;
}
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;
if (trace_is_enabled(mp_id_q)) {
// 1) 组 json
QString jsonText = build_trace_json(pdata);
QString jsonText = build_trace_json(pdata, v_wiring_type, source_name);
// 2) 组 KafkaData
Ckafka_data_t KafkaData;
@@ -1210,7 +1214,7 @@ static void print_mms_str_map(const json_block_data* data)
}
//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
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;
@@ -3763,4 +3767,3 @@ void Set_xml_nodeinfo_one(char* dev_type)
}
}

View File

@@ -73,7 +73,7 @@ public:
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 */
@@ -95,4 +95,4 @@ void connectlog_pgsql(char* id,char* datetime,int status);
#endif
#endif //MMS_JSON_INTER_92327hyhy0923r_H
#endif //MMS_JSON_INTER_92327hyhy0923r_H

View File

@@ -3635,13 +3635,14 @@ int json_block_create_data(char monid_char[], char* mms_str, double v, int flick
//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;
if (flicker_flag == 1) {
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;
}
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))//未查到数据
{
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;
}
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))//未查到数据
{
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;
}
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);
}
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;
}
//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)
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);
}
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;
}
@@ -3878,4 +3879,4 @@ int sel_mvl_type_ctrl_flag(char doname[])
return -1;
}
}
//ZW 2024-01-31 end
//ZW 2024-01-31 end

View File

@@ -72,7 +72,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);
//3. json生成结束函数
//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 补招模式优化
void add_mvl_type_ctrl(char doname[], int ctrl);
@@ -194,4 +194,4 @@ typedef struct file_dir_req_t
#endif
#endif //DB_INTERFACE_7ew2327hyhy0923r_H
#endif //DB_INTERFACE_7ew2327hyhy0923r_H

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 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, 1);//长闪
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, 0, loginfo->logName);//稳态
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, loginfo->logName);//短闪 波动
process_jou_entry_t = t;//调整至最新时标
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)) {
printf("\njread_resp->more_follows == 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
//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, 1);
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, 0, loginfo->logName);//more follows为0 数据接受最后一条 强行处理稳态数据的json防止遗留
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, loginfo->logName);
ied_t* ied;
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支持
//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 增加多个报告判断
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支持
//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;
}
}
@@ -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) {
//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;
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;
}
}
@@ -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支持
//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 增加多个报告判断
if (LD_info->rptRecvFlag == LD_info->rptRecvCheckFlag) {
//LD_info->rptRecvFlag是报告初始化时报告序号左移之和固定于报告初始化
//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;
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;
}
}
@@ -1570,7 +1570,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年12月6日14:09:08 增加多个ICD支持
//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;
}
}