fix recall fail crash

This commit is contained in:
lnk
2025-07-24 16:14:00 +08:00
parent b89ceb336e
commit d58923fd21
2 changed files with 10 additions and 8 deletions

View File

@@ -481,12 +481,13 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
Check_Recall_Config(LD_info->mp_id);//尝试获取xml结构
//补招数量不为0且不是正在补招
if (LD_info->autorecallcount != 0 && LD_info->autorecallflag != 1) {
int i;
int failed_count = 0;
for (i = 0; i < LD_info->autorecallcount; i++) {
LD_info->autorecallflag = 1;
LD_info->autorecallflag = 1;//正在补招
//当前不区分稳态和暂态lnk20241030如果做区分修改Check_Recall_Config从xml文件获取数据后赋值给了LD_info
loginfo->need_steady = LD_info->autorecall[i]->need_steady; loginfo->need_voltage = LD_info->autorecall[i]->need_voltage;
@@ -505,7 +506,7 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
LD_info->ied->id, LD_info->cpuno, LD_info->LD_name, loginfo->logName, chnl_usr->ip_str, chnl_usr->chnl_id);
//mq日志
DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s开始补招数据", LD_info->name,LD_info->mp_id);
//DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s开始补招数据", LD_info->name,LD_info->mp_id);
ret = mms_jread(loginfo, chnl_usr->net_info, loginfo->LD_info->LD_name, loginfo->logName,
loginfo->start_time, loginfo->end_time, g_pt61850app->mmsOpTimeout, chnl_usr->ip_str);
@@ -514,7 +515,7 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
LD_info->ied->id, LD_info->cpuno, LD_info->LD_name, loginfo->logName, chnl_usr->ip_str, chnl_usr->chnl_id);
//mq日志
DIY_ERRORLOG(full_key_m_c,"【ERROR】监测点:%s - id:%s补招数据失败", LD_info->name,LD_info->mp_id);
DIY_ERRORLOG(full_key_m_c,"【ERROR】监测点:%s - id:%s补招数据失败 - 失败时间点:%lld 至 %lld", LD_info->name,LD_info->mp_id,loginfo->start_time,loginfo->end_time);
failed_count++;
}
@@ -534,9 +535,10 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
printf("end mms_jread................................\n");
}
if (failed_count==0) {//成功
//不管是否成功这个补招文件必须删除可能出现一直失败循环读取文件和循环补招导致程序崩溃202050724lnk
//if (failed_count==0) {//成功
Delete_recall_Xml(LD_info->mp_id);
}
//}
}
}
@@ -1371,7 +1373,7 @@ void Check_Recall_Config(char *id) //检查补招配置文件Recall.xml
recall_xml_t recall_xml;
memset((char*)&recall_xml, 0, sizeof(recall_xml_t));
parse_recall_xml(&recall_xml,id); //解析补招文件
parse_recall_xml(&recall_xml,id); //解析补招文件,目录下所有属于这个监测点的文件都读取
process_recall_config(&recall_xml); //解析的补招数据赋值到全局变量
}
}