From 9d02a4b03145153f46553d01c83ac985d42fc794 Mon Sep 17 00:00:00 2001 From: lnk Date: Tue, 12 Aug 2025 10:59:15 +0800 Subject: [PATCH] fix regist log too much --- cfg_parse/cfg_parser.cpp | 6 ++++++ mms/mms_process.c | 19 ++++++++++++++++++- mms/mmscli_log.c | 2 +- mms/rdb_client.h | 4 ++++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/cfg_parse/cfg_parser.cpp b/cfg_parse/cfg_parser.cpp index 989fc22..0e3afa0 100644 --- a/cfg_parse/cfg_parser.cpp +++ b/cfg_parse/cfg_parser.cpp @@ -6094,6 +6094,9 @@ void clearLDInfo(LD_info_t *ld_info) { ld_info->rptPstRecvFlag = 0; ld_info->rptPstRecvCheckFlag = 0; + ld_info->registcount = 0; + ld_info->has_logged_regist = 0; + ld_info->read_flag = 0;//监测点无效 ld_info->rptcount = 0; @@ -6148,6 +6151,9 @@ void clearIedUsr(ied_usr_t *ied_usr) { ied_usr->time = 0; //台账更新时间 ied_usr->update_flag = 0; //台账更新标志暂不使用 + ied_usr->lastconnectstat = 0; + ied_usr->has_logged_disconnect = 0; + // 清空指针部分,但不清理非空指针 if (ied_usr->LD_info != nullptr) { diff --git a/mms/mms_process.c b/mms/mms_process.c index e9b8a23..7edc65c 100644 --- a/mms/mms_process.c +++ b/mms/mms_process.c @@ -363,7 +363,22 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr) chnl_usr->chnl_id, rptinfo->IntgPd,rptinfo->TrgOpt ); //mq日志 - DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s注册报告失败,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name); + // 仅在还没达到5次上限时打印 + if (!LD_info->has_logged_regist) { + LD_info->registcount++; + + if (LD_info->registcount <= 5) { + DIY_WARNLOG(full_key_m_c, "【WARN】监测点:%s - id:%s注册报告失败,报告名:%s", + LD_info->name, LD_info->mp_id, rpt_inst_name); + } + + // 到5次就不再打印,并标记 + if (LD_info->registcount > 5) { + LD_info->has_logged_regist = true; + DIY_WARNLOG(full_key_m_c, "【WARN】监测点:%s - id:%s注册报告失败日志已达本次注册上限,不再输出,请检查装置icd和映射文件是否匹配或者装置存在过多连接", + LD_info->name, LD_info->mp_id); + } + } } else @@ -381,6 +396,8 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr) rptinfo->IntgPd,rptinfo->TrgOpt,rptinfo->OptFlds[0],rptinfo->OptFlds[1] ); //mq日志 + LD_info->has_logged_regist = FALSE; + LD_info->registcount = 0; DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s注册报告成功,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name); // add here to GI not the same time diff --git a/mms/mmscli_log.c b/mms/mmscli_log.c index 527469b..a6eeebb 100644 --- a/mms/mmscli_log.c +++ b/mms/mmscli_log.c @@ -445,7 +445,7 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t, } } - printf("\naft for"); + if(DEBUGOPEN)printf("\naft for"); if ( log_data_type == QVVR_DATA ) { processQVVR_end(loginfo->LD_info); } diff --git a/mms/rdb_client.h b/mms/rdb_client.h index bb2c9d3..b9ba6b4 100644 --- a/mms/rdb_client.h +++ b/mms/rdb_client.h @@ -269,6 +269,10 @@ struct LD_info_t{ int rptPstRecvFlag;//CZY 2023-08-17 WW 2022-11-14判断报告是否收齐,rptRecvFlag=有效报告序号相加 int rptPstRecvCheckFlag;//CZY 2023-08-17 WW 2022-11-14判断报告是否收齐,每次收到报告相加与rptRecvFlag一起判断是否收完 //报告 + + int registcount;//lnk20250812 + bool has_logged_regist;//lnk20250812 + //不使用 int iUnitOfTime;//CZY 2023-08-17 WW 2022年12月7日15:43:34 装置上送事件持续时间单位切换(0-ms; 1-s) int iStatOfTime;//CZY 2023-08-17 WW 2022年12月7日15:48:33 统计数据时间 0-北京时间 1-UTC时间