log add rpt control and log control
This commit is contained in:
@@ -2703,6 +2703,24 @@ void Set_xml_databaseinfo(char* MODEL_ID, char* TMNL_TYPE, char* FILE_PATH, char
|
||||
if (fileContent != NULL) {
|
||||
// 创建并打开文件
|
||||
|
||||
//判断返回的是不是错误json响应
|
||||
bool isErrorJson = false;
|
||||
cJSON* root = cJSON_Parse(fileContent);
|
||||
if (root != NULL) {
|
||||
cJSON* codeItem = cJSON_GetObjectItem(root, "code");
|
||||
cJSON* dataItem = cJSON_GetObjectItem(root, "data");
|
||||
if (codeItem && codeItem->valuestring &&
|
||||
strcmp(codeItem->valuestring, "A00555") == 0 &&
|
||||
(dataItem == NULL || (dataItem->type == cJSON_NULL))) {
|
||||
isErrorJson = true;
|
||||
std::cerr << "Error: Server returned empty file stream, code=A00555." << std::endl;
|
||||
DIY_ERRORLOG_CODE("process", LOG_CODE_ICD_AND_DOWNLOAD,
|
||||
"【ERROR】前置下载文件失败,服务端返回A00555(文件流为空),文件=%s",
|
||||
save_name);
|
||||
}
|
||||
cJSON_Delete(root);
|
||||
}
|
||||
|
||||
//测试
|
||||
//std::ofstream outFile(downpath, std::ios::binary);//二进制的方式打开
|
||||
|
||||
|
||||
@@ -308,18 +308,35 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
{
|
||||
LD_info = &(ied_usr->LD_info[cpuno]); //遍历监测点
|
||||
|
||||
if (LD_info->cpuno==0)
|
||||
//监测点日志的key,lnk20250526
|
||||
char full_key_m_c[256]; // 分配足够空间
|
||||
char full_key_m_d[256]; // 分配足够空间
|
||||
snprintf(full_key_m_c, sizeof(full_key_m_c), "monitor.%s.COM", LD_info->mp_id);
|
||||
snprintf(full_key_m_d, sizeof(full_key_m_d), "monitor.%s.DATA", LD_info->mp_id);
|
||||
//监测点日志的key,lnk20250526
|
||||
|
||||
if (LD_info->cpuno==0){
|
||||
// 仅在还没达到5次上限时打印
|
||||
if (!LD_info->has_logged_regist) {
|
||||
LD_info->registcount++;
|
||||
|
||||
if (LD_info->registcount <= 5) {
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"【ERROR】监测点:%s - id:%s补招数据失败,监测点缺少报告控制块,请检查装置对应的装置类型是否有配对的icd模型", LD_info->name,LD_info->mp_id);
|
||||
}
|
||||
|
||||
// 到5次就不再打印,并标记
|
||||
if (LD_info->registcount > 5) {
|
||||
LD_info->has_logged_regist = true;
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"【WARN】监测点:%s - id:%s缺少报告控制块日志已达本次记录上限,不再输出,请检查装置对应的装置类型是否有配对的icd模型",
|
||||
LD_info->name, LD_info->mp_id);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
for(rpt_no=0 ; rpt_no<LD_info->rptcount; rpt_no++) { //遍历报告(映射文件中读取的报告控制)
|
||||
|
||||
//监测点日志的key,lnk20250526
|
||||
char full_key_m_c[256]; // 分配足够空间
|
||||
char full_key_m_d[256]; // 分配足够空间
|
||||
snprintf(full_key_m_c, sizeof(full_key_m_c), "monitor.%s.COM", LD_info->mp_id);
|
||||
snprintf(full_key_m_d, sizeof(full_key_m_d), "monitor.%s.DATA", LD_info->mp_id);
|
||||
//监测点日志的key,lnk20250526
|
||||
|
||||
rptinfo = LD_info->rptinfo[rpt_no] ;
|
||||
|
||||
if (judge_rpt_next_should_do(rptinfo)==SHOULD_DO_NOTHING)//检查是否触发
|
||||
@@ -483,12 +500,6 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
|
||||
for(cpuno=0 ; cpuno<ied->cpucount; cpuno++) {
|
||||
LD_info = &(ied_usr->LD_info[cpuno]);
|
||||
|
||||
if (LD_info->logcount<=0)
|
||||
continue;
|
||||
loginfo = LD_info->loginfo[0] ;
|
||||
|
||||
apr_sleep(apr_time_from_sec(1) / 10);
|
||||
|
||||
//监测点日志的key,lnk20250526
|
||||
char full_key_m_c[256]; // 分配足够空间
|
||||
char full_key_m_d[256]; // 分配足够空间
|
||||
@@ -496,6 +507,31 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
|
||||
snprintf(full_key_m_d, sizeof(full_key_m_d), "monitor.%s.DATA", LD_info->mp_id);
|
||||
//监测点日志的key,lnk20250526
|
||||
|
||||
//日志控制块缺失
|
||||
if (LD_info->logcount<=0){
|
||||
// 仅在还没达到5次上限时打印
|
||||
if (!LD_info->has_logged_regist) {
|
||||
LD_info->registcount++;
|
||||
|
||||
if (LD_info->registcount <= 5) {
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"【ERROR】监测点:%s - id:%s补招数据失败,监测点缺少日志控制块,请检查装置对应的装置类型是否有配对的icd模型", LD_info->name,LD_info->mp_id);
|
||||
}
|
||||
|
||||
// 到5次就不再打印,并标记
|
||||
if (LD_info->registcount > 5) {
|
||||
LD_info->has_logged_regist = true;
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"【WARN】监测点:%s - id:%s缺少日志控制块日志已达本次记录上限,不再输出,请检查装置对应的装置类型是否有配对的icd模型",
|
||||
LD_info->name, LD_info->mp_id);
|
||||
}
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
loginfo = LD_info->loginfo[0] ;
|
||||
|
||||
apr_sleep(apr_time_from_sec(1) / 10);
|
||||
|
||||
Check_Recall_Config(LD_info->mp_id);//尝试获取xml结构
|
||||
|
||||
//补招数量不为0且不是正在补招
|
||||
|
||||
Reference in New Issue
Block a user