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) {
|
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);//二进制的方式打开
|
//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]); //遍历监测点
|
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;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
for(rpt_no=0 ; rpt_no<LD_info->rptcount; rpt_no++) { //遍历报告(映射文件中读取的报告控制)
|
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] ;
|
rptinfo = LD_info->rptinfo[rpt_no] ;
|
||||||
|
|
||||||
if (judge_rpt_next_should_do(rptinfo)==SHOULD_DO_NOTHING)//检查是否触发
|
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++) {
|
for(cpuno=0 ; cpuno<ied->cpucount; cpuno++) {
|
||||||
LD_info = &(ied_usr->LD_info[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
|
//监测点日志的key,lnk20250526
|
||||||
char full_key_m_c[256]; // 分配足够空间
|
char full_key_m_c[256]; // 分配足够空间
|
||||||
char full_key_m_d[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);
|
snprintf(full_key_m_d, sizeof(full_key_m_d), "monitor.%s.DATA", LD_info->mp_id);
|
||||||
//监测点日志的key,lnk20250526
|
//监测点日志的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结构
|
Check_Recall_Config(LD_info->mp_id);//尝试获取xml结构
|
||||||
|
|
||||||
//补招数量不为0且不是正在补招
|
//补招数量不为0且不是正在补招
|
||||||
|
|||||||
Reference in New Issue
Block a user