diff --git a/json/create_json.cpp b/json/create_json.cpp index 7c39fbe..d212d24 100644 --- a/json/create_json.cpp +++ b/json/create_json.cpp @@ -1120,6 +1120,7 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json //lnk20260127 添加数据类型区分 bool typeofdata = false; + bool data_have_static = data->data_have_statistic; QString devType = data->dev_type; QByteArray devTypeBytes = devType.toUtf8(); @@ -1427,7 +1428,7 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json } //lnk20260127 - if (typeofdata == false) {//不合并则处理完闪变就不处理其他数据 + if (typeofdata == false || data_have_static == false) {//不合并则处理完闪变就不处理其他数据,如果有统计数据或者数据类型区分了就继续处理其他数据 if (longjumpflag == true || shortjumpflag == true) { return 1; } @@ -2334,7 +2335,7 @@ int transfer_json_block_data(char v_wiring_type[], json_block_data *data) //json kafka_data_list_mutex.unlock(); //解锁 longjumpflag = true; } - if (typeofdata == false) {//不合并则处理完闪变就不处理其他数据 + if (typeofdata == false || data_have_static == false) {//不合并则处理完闪变就不处理其他数据 if (longjumpflag == true || shortjumpflag == true) { return 1; } diff --git a/json/mms_json_inter.h b/json/mms_json_inter.h index c4ca673..2cb164c 100644 --- a/json/mms_json_inter.h +++ b/json/mms_json_inter.h @@ -38,6 +38,8 @@ public: QString mp_id; //char型监测点 QString dev_type;//设备类型 + bool data_have_statistic;//是否有统计数据,0没有,1有 + QMap mms_str_map; //数据值(61850数据属性名, 数据值) }; diff --git a/json/save2json.cpp b/json/save2json.cpp index 6299334..4771efd 100644 --- a/json/save2json.cpp +++ b/json/save2json.cpp @@ -2361,8 +2361,11 @@ int json_block_create_data(char monid_char[], char* mms_str, double v, int flick if (pdata != NULL) { pdata->mms_str_map.insert(QString::fromAscii(mms_str), v); - if (strstr(mms_str, "MMXU2$MX$PhV")) + if (strstr(mms_str, "MMXU2$MX$PhV")){ + pdata->data_have_statistic = 1; printf("---------- json_block_create_data: mp_id= %s ,mms_str=%s value=%fkV----------\n", monid_char, mms_str, v); + } + } return TRUE; } diff --git a/mms/mmscli_rpt.c b/mms/mmscli_rpt.c index ded83e7..4127900 100644 --- a/mms/mmscli_rpt.c +++ b/mms/mmscli_rpt.c @@ -1532,7 +1532,7 @@ ST_VOID u_iec_rpt_ind_data(MVL_VAR_ASSOC** info_va, else if (strstr(rcb_info->RptID, "RDRE")) {//CZY 2023-08-17 WW 2022-11-14 修改判断LLN0$BR$brcbRDRE processRDRE_data(LD_info, FULL_FCDA_Name, v); } - else if (strstr(FULL_FCDA_Name, "GGIO")) + else if (strstr(FULL_FCDA_Name, "GGIO") || strstr(FULL_FCDA_Name, "LPHD")) { ied_t* ied = LD_info->ied; ied_usr_t* ied_usr = GET_IEDEXT_ADDR(ied);