modify log format and remove otlv
This commit is contained in:
@@ -555,7 +555,7 @@ void rocketmq_producer_send(const char* strbody, const char* topic)
|
||||
catch (const std::exception& e) {
|
||||
std::cerr << "Failed to send message: " << e.what() << std::endl;
|
||||
// 处理发送失败的情况,例如记录日志或重试
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_MQ,"【ERROR】前置的%s%d号进程 mq发送失败,请检查mq配置", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_MQ,"前置的%s%d号进程 mq发送失败,请检查mq配置", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -21,7 +21,10 @@ using namespace std;
|
||||
#define OTL_ODBC_UNIX
|
||||
#include <unistd.h>
|
||||
|
||||
#include "otlv4.h"
|
||||
//#include "otlv4.h"
|
||||
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <sstream> //lnk 2024-10-16
|
||||
@@ -40,6 +43,17 @@ using namespace std;
|
||||
#include "../log4cplus/log4.h"//lnk添加log4
|
||||
#include <cstring>
|
||||
|
||||
|
||||
class otl_datetime {
|
||||
public:
|
||||
int year;
|
||||
int month;
|
||||
int day;
|
||||
int hour;
|
||||
int minute;
|
||||
int second;
|
||||
};
|
||||
|
||||
//用于测试时防止数据激增
|
||||
#ifndef apr_time_from_msec
|
||||
#define apr_time_from_msec(ms) ((apr_time_t)(ms) * 1000)
|
||||
@@ -1462,7 +1476,7 @@ int parse_rpt_log_ini()
|
||||
//添加判断,有的监测点没有cpuno为2,直接申请了LD_info[1],没申请LD_info[0]
|
||||
if(ied_usr->LD_info[cpuno].LD_name == NULL){
|
||||
printf("this ld_info didn't palloc space ,maybe this ledger has problem!");
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RPTINIT,"【ERROR】终端%s的监测点序号为%d的监测点无法初始化报告,这个装置的台账存在缺失,请检查装置台账的监测点总数和各监测点的序号",ied_usr->terminal_id,cpuno + 1);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RPTINIT,"终端%s的监测点序号为%d的监测点无法初始化报告,这个装置的台账存在缺失,请检查装置台账的监测点总数和各监测点的序号",ied_usr->terminal_id,cpuno + 1);
|
||||
continue;//跳过防止崩溃
|
||||
}
|
||||
|
||||
@@ -1804,18 +1818,18 @@ int parse_ledger_update_xml(trigger_update_xml_t* trigger_update_xml)
|
||||
//加载一个文件的内容到数据结构
|
||||
if (!load_ledger_update_from_xml(trigger_update_xml, filename)) {
|
||||
std::cout << "read /etc/ledgerupdate/" << filename << " success..." << std::endl;
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_LEDGER_UPDATE,"【WARN】前置的%s%d号进程 读取台账更新文件成功,开始更新台账", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_LEDGER_UPDATE,"前置的%s%d号进程 读取台账更新文件成功,开始更新台账", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
}
|
||||
//处理过的文件删除掉
|
||||
|
||||
if (std::remove(filename.c_str()) != 0) {
|
||||
std::cerr << "Failed to remove file: " << filename << " Error: " << strerror(errno) << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER_UPDATE,"【ERROR】前置的%s%d号进程 删除已读取的台账更新文件失败!请检查台账更新文件是否残留在/FeProject/etc/ledgerupdate", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER_UPDATE,"前置的%s%d号进程 删除已读取的台账更新文件失败!请检查台账更新文件是否残留在/FeProject/etc/ledgerupdate", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
return APR_EGENERAL;
|
||||
}
|
||||
else{
|
||||
std::cout << "remove file: " << filename << " success..." << std::endl;
|
||||
DIY_INFOLOG("process","【NORMAL】前置的%s%d号进程 删除已读取的台账更新文件成功", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_INFOLOG("process","前置的%s%d号进程 删除已读取的台账更新文件成功", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1995,7 +2009,7 @@ int parse_3s_xml(trigger_3s_xml_t* trigger_3s_xml)
|
||||
|
||||
printf("/etc/trigger3s/*.xml success...\n");
|
||||
|
||||
DIY_INFOLOG("process","【WARN】前置读取实时数据触发文件成功,即将注册实时数据报告");
|
||||
DIY_INFOLOG("process","前置读取实时数据触发文件成功,即将注册实时数据报告");
|
||||
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
@@ -2308,7 +2322,7 @@ int parse_recall_xml(recall_xml_t* recall_xml, char* id)
|
||||
QDir dir(cfg_dir);
|
||||
if (!dir.exists()) {
|
||||
qDebug() << "folder does not exist!";
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"【ERROR】前置的%s%d号进程 无法解析补招文件,补招文件路径/FeProject/etc/recall/不存在", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"前置的%s%d号进程 无法解析补招文件,补招文件路径/FeProject/etc/recall/不存在", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
return false;
|
||||
}
|
||||
//指定文件后缀名,可指定多种类型
|
||||
@@ -2324,7 +2338,7 @@ int parse_recall_xml(recall_xml_t* recall_xml, char* id)
|
||||
if (!file.open(QIODevice::ReadOnly))
|
||||
{
|
||||
qDebug() << "file.open error";
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"【ERROR】前置的%s%d号进程 无法打开补招文件%s", get_front_msg_from_subdir(), g_front_seg_index,qstrRecallPath.toStdString().c_str());
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"前置的%s%d号进程 无法打开补招文件%s", get_front_msg_from_subdir(), g_front_seg_index,qstrRecallPath.toStdString().c_str());
|
||||
continue; //以只读方式打开
|
||||
}
|
||||
bool ret = doc.setContent(&file);
|
||||
@@ -2332,7 +2346,7 @@ int parse_recall_xml(recall_xml_t* recall_xml, char* id)
|
||||
if (!ret)
|
||||
{
|
||||
qDebug() << "doc.setContent error";
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"【ERROR】前置的%s%d号进程 无法解析补招文件%s,补招内容无效", get_front_msg_from_subdir(), g_front_seg_index,qstrRecallPath.toStdString().c_str());
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"前置的%s%d号进程 无法解析补招文件%s,补招内容无效", get_front_msg_from_subdir(), g_front_seg_index,qstrRecallPath.toStdString().c_str());
|
||||
continue;
|
||||
}
|
||||
//将文件内容读到doc中
|
||||
@@ -2910,7 +2924,7 @@ void DeletcRecallXml() {
|
||||
QDir dir(cfg_dir);
|
||||
if (!dir.exists()) {
|
||||
qDebug() << "folder does not exist!";
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"【ERROR】前置的%s%d号进程 删除旧的补招文件失败,补招文件路径/FeProject/etc/recall/不存在", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"前置的%s%d号进程 删除旧的补招文件失败,补招文件路径/FeProject/etc/recall/不存在", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
return;
|
||||
}
|
||||
QStringList filter(file_name);
|
||||
@@ -2925,7 +2939,7 @@ void DeletcRecallXml() {
|
||||
if (fileInfo.lastModified() < saveDaysAgo) {
|
||||
QFile::remove(fileInfo.absoluteFilePath());
|
||||
|
||||
DIY_INFOLOG("process","【NORMAL】前置的%s%d号进程 删除超过两天的补招文件", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_INFOLOG("process","前置的%s%d号进程 删除超过两天的补招文件", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2942,7 +2956,7 @@ void CreateRecallXml()
|
||||
{
|
||||
printf("insert ID_CJournalRecall_Map!\n");
|
||||
|
||||
DIY_INFOLOG("process","【NORMAL】前置的%s%d号进程 开始写入补招文件", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_INFOLOG("process","前置的%s%d号进程 开始写入补招文件", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
|
||||
QMap<QString, QList<CJournalRecall> > ID_CJournalRecall_Map;
|
||||
|
||||
@@ -2975,7 +2989,7 @@ void CreateRecallXml()
|
||||
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
|
||||
printf("补招查询完成,打开%s失败,无法写入线路补招配置!\n", qstrRecallPath.toAscii().data());
|
||||
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"【ERROR】前置的%s%d号进程 无法将补招文件写入补招文件路径/FeProject/etc/recall/", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"前置的%s%d号进程 无法将补招文件写入补招文件路径/FeProject/etc/recall/", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
|
||||
QMap<QString, QList<CJournalRecall> >().swap(ID_CJournalRecall_Map);
|
||||
return;
|
||||
@@ -3703,14 +3717,14 @@ int terminal_ledger_web(QMap<QString, terminal_dev*>* terminal_dev_map,
|
||||
// 参数验证
|
||||
if (num <= 0) {
|
||||
std::cerr << "Error: 'num' must be greater than 0." << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"【ERROR】前置的多进程最大进程号为:%d,应该为大于0的整数",num);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"前置的多进程最大进程号为:%d,应该为大于0的整数",num);
|
||||
return 1; // 返回适当的错误码
|
||||
}
|
||||
|
||||
index = index - 1;
|
||||
if (index < 0 || index >= num) {
|
||||
std::cerr << "Error: 'index' must be in the range [0, num]." << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"【ERROR】前置当前进程的进程号为:%d,应该为0到最大进程号范围内的整数",index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"前置当前进程的进程号为:%d,应该为0到最大进程号范围内的整数",index);
|
||||
return 1; // 返回适当的错误码
|
||||
}
|
||||
}
|
||||
@@ -3718,7 +3732,7 @@ int terminal_ledger_web(QMap<QString, terminal_dev*>* terminal_dev_map,
|
||||
// 获取参数
|
||||
if (codes.empty()) {
|
||||
std::cerr << "Error: 'codes' vector is empty." << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"【ERROR】前置的%s%d号进程调用web台账接口的入参为空",get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"前置的%s%d号进程调用web台账接口的入参为空",get_front_msg_from_subdir(), g_front_seg_index);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -3838,7 +3852,7 @@ int terminal_ledger_web(QMap<QString, terminal_dev*>* terminal_dev_map,
|
||||
}
|
||||
}
|
||||
std::cerr << "data 无效或为空数组,重试" << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"【ERROR】前置从web接口中获取的台账信息为空或者无效信息无法解析,请核对前置使用的入参信息:%s",parm.c_str());
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"前置从web接口中获取的台账信息为空或者无效信息无法解析,请核对前置使用的入参信息:%s",parm.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3880,7 +3894,7 @@ int terminal_ledger_web(QMap<QString, terminal_dev*>* terminal_dev_map,
|
||||
break; // 本地台账解析成功且数组非空
|
||||
}
|
||||
}
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"【ERROR】前置从本地台账中获取的台账信息为空或者无效信息无法解析,请核对前置使用的入参信息:%s",parm.c_str());
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"前置从本地台账中获取的台账信息为空或者无效信息无法解析,请核对前置使用的入参信息:%s",parm.c_str());
|
||||
}
|
||||
|
||||
free(ledger); // root==null释放内容
|
||||
@@ -4113,7 +4127,7 @@ int parse_device_cfg_web()
|
||||
|
||||
std::cout << "input_jstr: " << input_jstr << std::endl; // 输出结果
|
||||
|
||||
DIY_DEBUGLOG("process","【DEBUG】前置的%s%d号进程调用web接口获取台账使用的请求输入为:%s",get_front_msg_from_subdir(), g_front_seg_index,input_jstr);
|
||||
DIY_DEBUGLOG("process","前置的%s%d号进程调用web接口获取台账使用的请求输入为:%s",get_front_msg_from_subdir(), g_front_seg_index,input_jstr);
|
||||
|
||||
codes.push_back(input_jstr); //是否需要筛选状态直接在配置文件控制
|
||||
|
||||
@@ -4148,13 +4162,13 @@ int parse_device_cfg_web()
|
||||
//判断是否相等
|
||||
if(max_process_num != max_index){
|
||||
if(max_process_num > 0 && max_process_num < 10){
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_LEDGER,"【WARN】前置比对台账获取的进程数:%d和本地配置的进程数:%d,不匹配,按照台账进程数重置前置的进程数量",max_process_num,max_index);
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_LEDGER,"前置比对台账获取的进程数:%d和本地配置的进程数:%d,不匹配,按照台账进程数重置前置的进程数量",max_process_num,max_index);
|
||||
// 调用执行脚本函数
|
||||
close_listening_socket();
|
||||
execute_bash("reset", max_process_num, "all");
|
||||
}
|
||||
else{
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"【ERROR】前置从台账获取的进程数:%d不符合范围1~9,按照本地配置进程数启动进程",max_process_num);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"前置从台账获取的进程数:%d不符合范围1~9,按照本地配置进程数启动进程",max_process_num);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4163,7 +4177,7 @@ int parse_device_cfg_web()
|
||||
|
||||
std::cout << "terminal_ledger_num:" << count_cfg << std::endl;
|
||||
|
||||
DIY_DEBUGLOG("process","【DEBUG】前置的%s%d号进程调用获取到的台账的数量为:%d",get_front_msg_from_subdir(), g_front_seg_index,count_cfg);
|
||||
DIY_DEBUGLOG("process","前置的%s%d号进程调用获取到的台账的数量为:%d",get_front_msg_from_subdir(), g_front_seg_index,count_cfg);
|
||||
|
||||
//如果当前进程获取的台账为0,按照配置数量申请空间,台账内容为空
|
||||
g_node->n_clients = count_cfg;
|
||||
@@ -4178,11 +4192,11 @@ int parse_device_cfg_web()
|
||||
//添加提示
|
||||
std::cout << "!!!!!!!!!!single process can not add any ledger unless reboot!!!!!!!"<< std::endl;
|
||||
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_LEDGER,"【WARN】前置的%s%d号进程获取到的台账的数量大于配置文件中给单个进程配置的台账数量:%d,这个进程将按照获取到的台账的数量来创建台账空间,这个进程不能直接通过台账添加来新增台账,只能通过重启进程或者先删除已有台账再添加台账的方式来添加新台账",get_front_msg_from_subdir(), g_front_seg_index,IED_COUNT);
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_LEDGER,"前置的%s%d号进程获取到的台账的数量大于配置文件中给单个进程配置的台账数量:%d,这个进程将按照获取到的台账的数量来创建台账空间,这个进程不能直接通过台账添加来新增台账,只能通过重启进程或者先删除已有台账再添加台账的方式来添加新台账",get_front_msg_from_subdir(), g_front_seg_index,IED_COUNT);
|
||||
}
|
||||
else{
|
||||
g_node->clients = (ied_t**)apr_pcalloc(g_cfg_pool, IED_COUNT * sizeof(ied_t*));//g_node->clients 这块大内存空间存储了 count_cfg 个 ied_t* 类型的指针(即一个指针数组)这是(指向内存块的指针)的指针数组
|
||||
DIY_INFOLOG("process","【NORMAL】前置的%s%d号进程根据配置文件中给单个进程配置的台账数量:%d来创建台账空间",get_front_msg_from_subdir(), g_front_seg_index,IED_COUNT);
|
||||
DIY_INFOLOG("process","前置的%s%d号进程根据配置文件中给单个进程配置的台账数量:%d来创建台账空间",get_front_msg_from_subdir(), g_front_seg_index,IED_COUNT);
|
||||
}
|
||||
|
||||
//把ied放入数组
|
||||
@@ -4459,7 +4473,7 @@ int parse_device_cfg_web()
|
||||
isdelta_flag = 1; //存在一个监测点为角型接线则这个前置就要启动第二个配置列表
|
||||
cout << "monitor_id" << monitor_id << "v_wiring_type:" << line_info.v_wiring_type << "is delta wiring:" << isdelta_flag << endl;
|
||||
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_LEDGER,"【WARN】前置连接的监测点 %s 是角形接线,对应终端为%s 终端类型是%s",line_info.mp_id,ied_usr->terminal_id,ied_usr->dev_type);
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_LEDGER,"前置连接的监测点 %s 是角形接线,对应终端为%s 终端类型是%s",line_info.mp_id,ied_usr->terminal_id,ied_usr->dev_type);
|
||||
}
|
||||
|
||||
strcpy(line_info.monitor_status, monitor_status);
|
||||
@@ -4533,10 +4547,10 @@ int parse_device_cfg_web()
|
||||
cout << "dev init create count:" << count_real;
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
catch (otl_exception& e)
|
||||
catch (...)
|
||||
{
|
||||
printf("\n device error,ERROR code= %d,msg= %s \n", e.code, e.msg);
|
||||
return e.code;
|
||||
printf("\n device ledger error \n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4690,7 +4704,7 @@ int parse_model_cfg_web()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
if(parse_model_web(&icd_model_map,codes)){
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"【ERROR】前置的%s%d号进程 icd模型接口异常,将使用默认的icd模型,请检查接口配置", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"前置的%s%d号进程 icd模型接口异常,将使用默认的icd模型,请检查接口配置", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
return APR_SUCCESS; //可以使用默认的映射文件所以返回正常
|
||||
}
|
||||
|
||||
@@ -4727,10 +4741,10 @@ int parse_model_cfg_web()
|
||||
delete_icd_model_map(icd_model_map);
|
||||
return APR_SUCCESS;
|
||||
}
|
||||
catch (otl_exception& e)
|
||||
catch (...)
|
||||
{
|
||||
printf("\n icd model error,ERROR code= %d,msg= %s \n", e.code, e.msg);
|
||||
return e.code;
|
||||
printf("\n icd model error \n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
////////////////////////////////////////////////////////////icd模型重构函数lnk20250116
|
||||
@@ -4798,9 +4812,9 @@ char* parse_model_cfg_web_one(ied_t* ied, char* out_model)
|
||||
delete_icd_model_map(icd_model_map);//lnk20250701
|
||||
return NULL;
|
||||
}
|
||||
catch (otl_exception& e)
|
||||
catch (...)
|
||||
{
|
||||
printf("\n icd model error,ERROR code= %d,msg= %s \n", e.code, e.msg);
|
||||
printf("\n icd model one error \n");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@@ -4951,7 +4965,7 @@ int recall_json_handle(const char* jstr)
|
||||
|
||||
if(strcmp(ied_usr->LD_info[m].mp_id,monitorId.toStdString().c_str()) == 0){//匹配上了
|
||||
|
||||
DIY_INFOLOG("process","【NORMAL】前置的%s%d号进程处理监测点%s -id:%s 的数据补招",get_front_msg_from_subdir(), g_front_seg_index,ied_usr->LD_info[m].name,ied_usr->LD_info[m].mp_id);
|
||||
DIY_INFOLOG("process","前置的%s%d号进程处理监测点%s -id:%s 的数据补招",get_front_msg_from_subdir(), g_front_seg_index,ied_usr->LD_info[m].name,ied_usr->LD_info[m].mp_id);
|
||||
mppair = 1;
|
||||
break;//找到就退出监测点循环
|
||||
}
|
||||
@@ -5174,7 +5188,7 @@ void handleUploadResponse(const std::string& response, char* wavepath) {
|
||||
cJSON* json_data = cJSON_Parse(response.c_str());
|
||||
if (json_data == nullptr) {
|
||||
std::cerr << "Error parsing response: " << cJSON_GetErrorPtr() << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"【ERROR】前置上传暂态录波文件失败,web返回的消息错误,无法解析");
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"前置上传暂态录波文件失败,web返回的消息错误,无法解析");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5220,11 +5234,11 @@ void handleUploadResponse(const std::string& response, char* wavepath) {
|
||||
|
||||
std::cout << "wavepath: " << wavepath << std::endl;
|
||||
|
||||
DIY_INFOLOG("process","【NORMAL】前置上传暂态录波文件成功,远端文件名:%s",wavepath);
|
||||
DIY_INFOLOG("process","前置上传暂态录波文件成功,远端文件名:%s",wavepath);
|
||||
}
|
||||
} else {
|
||||
std::cerr << "Error: Missing expected fields in JSON response." << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"【ERROR】前置上传暂态录波文件失败,web返回的消息没有远端文件名");
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"前置上传暂态录波文件失败,web返回的消息没有远端文件名");
|
||||
}
|
||||
|
||||
// 释放 JSON 对象
|
||||
@@ -5341,7 +5355,7 @@ void SendFileWeb(const std::string& strUrl, const char* localpath, const char* c
|
||||
CURLcode res = curl_easy_perform(curl);
|
||||
if (res != CURLE_OK) {
|
||||
std::cerr << "http web failed: " << curl_easy_strerror(res) << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"【ERROR】前置上传暂态录波文件 %s 失败,请检查文件上传接口配置",localpath);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"前置上传暂态录波文件 %s 失败,请检查文件上传接口配置",localpath);
|
||||
} else {
|
||||
std::cout << "http web success, response: " << resPost0 << std::endl;
|
||||
handleUploadResponse(resPost0, wavepath); // 处理响应
|
||||
@@ -5860,7 +5874,7 @@ int parse_rpt_log_ini_one(ied_t* ied)
|
||||
//添加判断,有的监测点没有cpuno为2,直接申请了LD_info[2-1],没申请LD_info[0]
|
||||
if(ied_usr->LD_info[cpuno].LD_name == NULL){
|
||||
printf("this ld_info didn't palloc space ,maybe this ledger has problem!");
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RPTINIT,"【ERROR】终端%s的监测点序号为%d的监测点无法初始化报告,这个装置的台账存在缺失,请检查装置台账的监测点总数和各监测点的序号",ied_usr->terminal_id,cpuno + 1);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RPTINIT,"终端%s的监测点序号为%d的监测点无法初始化报告,这个装置的台账存在缺失,请检查装置台账的监测点总数和各监测点的序号",ied_usr->terminal_id,cpuno + 1);
|
||||
continue;//跳过防止崩溃
|
||||
}
|
||||
|
||||
|
||||
@@ -340,7 +340,7 @@ void init_loggers_bydevid(const char* dev_id)
|
||||
logger_map[device_key_c] = TypedLogger(device_logger_c, LOGTYPE_COM);
|
||||
logger_map[device_key_d] = TypedLogger(device_logger_d, LOGTYPE_DATA);
|
||||
|
||||
DIY_INFOLOG(device_key_d.c_str(),"【NORMAL】终端id:%s终端级日志初始化完毕", ied_usr->terminal_id);
|
||||
DIY_INFOLOG(device_key_d.c_str(),"终端id:%s终端级日志初始化完毕", ied_usr->terminal_id);
|
||||
}
|
||||
|
||||
// 初始化监测点
|
||||
@@ -369,7 +369,7 @@ void init_loggers_bydevid(const char* dev_id)
|
||||
logger_map[mon_key_c.str()] = TypedLogger(mon_logger_c, LOGTYPE_COM);
|
||||
logger_map[mon_key_d.str()] = TypedLogger(mon_logger_d, LOGTYPE_DATA);
|
||||
|
||||
DIY_INFOLOG(mon_key_d.str().c_str(),"【NORMAL】监测点:%s - id:%s监测点级日志初始化完毕", ied_usr->LD_info[i].name,ied_usr->LD_info[i].mp_id);
|
||||
DIY_INFOLOG(mon_key_d.str().c_str(),"监测点:%s - id:%s监测点级日志初始化完毕", ied_usr->LD_info[i].name,ied_usr->LD_info[i].mp_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -418,7 +418,7 @@ void init_loggers() {
|
||||
logger_map[device_key_c] = TypedLogger(device_logger_c, LOGTYPE_COM);
|
||||
logger_map[device_key_d] = TypedLogger(device_logger_d, LOGTYPE_DATA);
|
||||
|
||||
DIY_INFOLOG(device_key_d.c_str(),"【NORMAL】终端id:%s终端级日志初始化完毕", ied_usr->terminal_id);
|
||||
DIY_INFOLOG(device_key_d.c_str(),"终端id:%s终端级日志初始化完毕", ied_usr->terminal_id);
|
||||
|
||||
// 初始化监测点
|
||||
// 监测点 logger 名称格式:monitor.<mp_id>.COM / .DATA
|
||||
@@ -443,7 +443,7 @@ void init_loggers() {
|
||||
logger_map[mon_key_c.str()] = TypedLogger(mon_logger_c, LOGTYPE_COM);
|
||||
logger_map[mon_key_d.str()] = TypedLogger(mon_logger_d, LOGTYPE_DATA);
|
||||
|
||||
DIY_INFOLOG(mon_key_d.str().c_str(),"【NORMAL】监测点:%s - id:%s监测点级日志初始化完毕", ied_usr->LD_info[i].name,ied_usr->LD_info[i].mp_id);
|
||||
DIY_INFOLOG(mon_key_d.str().c_str(),"监测点:%s - id:%s监测点级日志初始化完毕", ied_usr->LD_info[i].name,ied_usr->LD_info[i].mp_id);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -174,6 +174,7 @@ void SendWebAPI_Nacos_Ptr(const string strUrl, const char* code, char** ptr)
|
||||
strcpy(*ptr, resPost0.c_str());
|
||||
}
|
||||
else {
|
||||
|
||||
printf("Memory allocation failed!\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2703,7 +2703,7 @@ void Set_xml_databaseinfo(char* MODEL_ID, char* TMNL_TYPE, char* FILE_PATH, char
|
||||
cout << file_name << "!!!!!!!!!!!!!!!!!!!!!!!!!!" << save_name << endl;
|
||||
|
||||
//mq日志
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"【WARN】前置获取到终端类型%s,该终端类型对应的映射文件为%s,映射文件将下载并保存在本地为%s",TMNL_TYPE,FILE_PATH,save_name);
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"前置获取到终端类型%s,该终端类型对应的映射文件为%s,映射文件将下载并保存在本地为%s",TMNL_TYPE,FILE_PATH,save_name);
|
||||
|
||||
//20241028 lnk 替换为文件下载web接口
|
||||
//构造文件下载接口参数
|
||||
@@ -2737,7 +2737,7 @@ void Set_xml_databaseinfo(char* MODEL_ID, char* TMNL_TYPE, char* FILE_PATH, char
|
||||
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",
|
||||
"前置下载文件失败,服务端返回A00555(文件流为空),文件=%s",
|
||||
save_name);
|
||||
}
|
||||
cJSON_Delete(root);
|
||||
@@ -2753,17 +2753,17 @@ void Set_xml_databaseinfo(char* MODEL_ID, char* TMNL_TYPE, char* FILE_PATH, char
|
||||
outFile.close();
|
||||
std::cout << "File saved successfully!" << std::endl;
|
||||
//mq日志
|
||||
DIY_INFOLOG("process","【NORMAL】前置下载映射文件%s成功",save_name);
|
||||
DIY_INFOLOG("process","前置下载映射文件%s成功",save_name);
|
||||
} else {
|
||||
std::cerr << "Error: Unable to open file for writing." << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"【ERROR】前置写入本地映射文件%s失败",save_name);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"前置写入本地映射文件%s失败",save_name);
|
||||
}
|
||||
|
||||
// 释放分配的内存
|
||||
free(fileContent);
|
||||
} else {
|
||||
std::cerr << "Error: Unable to download file." << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"【ERROR】前置调用文件下载接口下载远端文件文件%s失败",FILE_PATH);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"前置调用文件下载接口下载远端文件文件%s失败",FILE_PATH);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3094,7 +3094,7 @@ static bool writeJsonToFile(const char* filePath, const char* jsonString)
|
||||
{
|
||||
FILE* fp = fopen(filePath, "w");
|
||||
if (!fp) {
|
||||
//DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"【ERROR】无法将暂态事件写入本地缓存");
|
||||
//DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"无法将暂态事件写入本地缓存");
|
||||
std::cerr << "Failed to write in file : " << filePath << std::endl;
|
||||
return false;
|
||||
}
|
||||
@@ -3181,7 +3181,7 @@ static void scanAndResendOfflineFiles(const std::string &dirPath)
|
||||
// 读取文件内容(即之前存的 JSON)
|
||||
FILE* fp = fopen(fileList[i].fileName.c_str(), "r");
|
||||
if (!fp) {
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"【ERROR】无法打开本地缓存的暂态事件");
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"无法打开本地缓存的暂态事件");
|
||||
std::cerr << " fail to open exsist file " << fileList[i].fileName << std::endl;
|
||||
continue;
|
||||
}
|
||||
@@ -3209,12 +3209,12 @@ static void scanAndResendOfflineFiles(const std::string &dirPath)
|
||||
// 表示有响应,则可视为成功;根据项目需要可加更精细的判断
|
||||
handleCommentResponse(std::string(ptr));
|
||||
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"【WARN】前置重发暂态事件失败");
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"前置重发暂态事件失败");
|
||||
|
||||
}
|
||||
else{
|
||||
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"【WARN】前置重发暂态事件成功");
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_TRANSIENT_COMM,"前置重发暂态事件成功");
|
||||
|
||||
std::cout << "old file send success,remove it" << std::endl;
|
||||
// 删除文件
|
||||
@@ -3324,7 +3324,7 @@ char* mp_id,char* Qvvr_rptname,char* devtype)
|
||||
if (j_r == NULL) {
|
||||
|
||||
//mq日志
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT_COMM,"【ERROR】暂态接口响应异常,无法上送监测点%s的暂态事件",mp_id);
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT_COMM,"暂态接口响应异常,无法上送监测点%s的暂态事件",mp_id);
|
||||
|
||||
std::cout << "qvvr send fail ,store in local" << std::endl;
|
||||
// 1) 先检查/FeProject/dat/qvvr/目录文件大小是否超过 10M,若超过则删除最老的一个文件
|
||||
@@ -3346,7 +3346,7 @@ char* mp_id,char* Qvvr_rptname,char* devtype)
|
||||
|
||||
// 把 json_string 写入文件
|
||||
if(!writeJsonToFile(fileName.c_str(), json_string)){
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT_COMM,"【ERROR】监测点:%s无法将暂态时间为%lld的暂态事件写入本地缓存",start_tm,mp_id);
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT_COMM,"监测点:%s无法将暂态时间为%lld的暂态事件写入本地缓存",start_tm,mp_id);
|
||||
}
|
||||
|
||||
checkAndRemoveOldestIfNeeded(qvvrDir, 10LL * 1024 * 1024);
|
||||
@@ -3374,7 +3374,7 @@ char* mp_id,char* Qvvr_rptname,char* devtype)
|
||||
std::cout << "Error: Received NULL response" << std::endl;
|
||||
|
||||
//mq日志
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT_COMM,"【ERROR】暂态接口无响应,无法上送监测点%s的暂态事件",mp_id);
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT_COMM,"暂态接口无响应,无法上送监测点%s的暂态事件",mp_id);
|
||||
|
||||
std::cout << "qvvr send fail ,store in local" << std::endl;
|
||||
// 1) 先检查/FeProject/dat/qvvr/目录文件大小是否超过 10M,若超过则删除最老的一个文件
|
||||
@@ -3394,7 +3394,7 @@ char* mp_id,char* Qvvr_rptname,char* devtype)
|
||||
fileName += ".txt";
|
||||
// 把 json_string 写入文件
|
||||
if(!writeJsonToFile(fileName.c_str(), json_string)){
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT_COMM,"【ERROR】监测点:%s无法将暂态时间为%lld的暂态事件写入本地缓存",start_tm,mp_id);
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT_COMM,"监测点:%s无法将暂态时间为%lld的暂态事件写入本地缓存",start_tm,mp_id);
|
||||
}
|
||||
|
||||
checkAndRemoveOldestIfNeeded(qvvrDir, 10LL * 1024 * 1024);
|
||||
|
||||
@@ -972,7 +972,7 @@ int parse_set(const std::string& json_str) {
|
||||
//进程号为0或者进程号匹配上
|
||||
std::cout << "msg index:"<< index_value <<" self index:" << g_front_seg_index << std::endl;
|
||||
|
||||
DIY_INFOLOG("process","【NORMAL】前置的%s%d号进程处理topic:%s_%s的进程控制消息",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_SET.c_str());
|
||||
DIY_INFOLOG("process","前置的%s%d号进程处理topic:%s_%s的进程控制消息",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_SET.c_str());
|
||||
|
||||
if (code_str == "set_process") {
|
||||
|
||||
@@ -998,7 +998,7 @@ int parse_set(const std::string& json_str) {
|
||||
}
|
||||
execute_bash(fun, processNum, frontType);
|
||||
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_PROCESS_CONTROL,"【WARN】前置的%s%d号进程执行指令:%s,reset表示重启所有进程,add表示添加进程",get_front_msg_from_subdir(), g_front_seg_index,fun.c_str());
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_PROCESS_CONTROL,"前置的%s%d号进程执行指令:%s,reset表示重启所有进程,add表示添加进程",get_front_msg_from_subdir(), g_front_seg_index,fun.c_str());
|
||||
|
||||
//脚本在3秒后执行
|
||||
//回复消息
|
||||
@@ -1020,7 +1020,7 @@ int parse_set(const std::string& json_str) {
|
||||
send_reply_to_kafka(guid,"1","收到删除进程指令,这个进程将会重启 ");
|
||||
|
||||
//上送日志
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_PROCESS_CONTROL,"【WARN】前置的%s%d号进程执行指令:%s,即将重启",get_front_msg_from_subdir(), g_front_seg_index,fun.c_str());
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_PROCESS_CONTROL,"前置的%s%d号进程执行指令:%s,即将重启",get_front_msg_from_subdir(), g_front_seg_index,fun.c_str());
|
||||
|
||||
apr_sleep(apr_time_from_sec(10));
|
||||
::_exit(-1039); //进程退出
|
||||
@@ -1061,7 +1061,7 @@ int parse_set(const std::string& json_str) {
|
||||
(proindex >= 10 && proindex < 100)){ //单连测试用的进程号应该大于10小于100
|
||||
execute_bash_debug(fun, ip, frontType,proindex);
|
||||
|
||||
DIY_WARNLOG("process","【WARN】前置的%s%d号进程执行指令:%s,start开启单连进程,delete杀死单连进程",get_front_msg_from_subdir(), g_front_seg_index,fun.c_str());
|
||||
DIY_WARNLOG("process","前置的%s%d号进程执行指令:%s,start开启单连进程,delete杀死单连进程",get_front_msg_from_subdir(), g_front_seg_index,fun.c_str());
|
||||
}
|
||||
else{
|
||||
std::cout << "param is not executable" <<std::endl;
|
||||
@@ -1400,7 +1400,7 @@ int parse_log(const std::string& json_str) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
DIY_INFOLOG("process","【NORMAL】前置的%s%d号进程处理日志上送消息",get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_INFOLOG("process","前置的%s%d号进程处理日志上送消息",get_front_msg_from_subdir(), g_front_seg_index);
|
||||
|
||||
//进程号和匹配上
|
||||
std::cout << "msg index:"<< processNo <<" self index:" << g_front_seg_index << std::endl;
|
||||
@@ -1509,7 +1509,7 @@ int parse_control(const std::string& json_str, const std::string& output_dir) {
|
||||
std::cout << "msg index:"<< process_No <<" self index:" << g_front_seg_index << std::endl;
|
||||
|
||||
//记录日志
|
||||
DIY_INFOLOG("process","【NORMAL】前置的%s%d号进程处理topic:%s_%s的台账更新消息",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_UD.c_str());
|
||||
DIY_INFOLOG("process","前置的%s%d号进程处理topic:%s_%s的台账更新消息",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_UD.c_str());
|
||||
|
||||
//匹配后响应收到台账更新消息
|
||||
//除了回复收到消息,执行结束后还要回复结果
|
||||
@@ -1777,7 +1777,7 @@ int myMessageCallbackrtdata(CPushConsumer* consumer, CMessageExt* msg)
|
||||
}
|
||||
else{
|
||||
//记录日志
|
||||
DIY_INFOLOG("process","【NORMAL】前置消费topic:%s_%s的实时触发消息",FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_RT.c_str());
|
||||
DIY_INFOLOG("process","前置消费topic:%s_%s的实时触发消息",FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_RT.c_str());
|
||||
|
||||
// 处理消息(例如,打印消息内容)
|
||||
std::cout << "rt data Callback received message: " << body << std::endl;
|
||||
@@ -1796,7 +1796,7 @@ int myMessageCallbackrtdata(CPushConsumer* consumer, CMessageExt* msg)
|
||||
if (!parseJsonMessageRT(body, devid, line, realData, soeData, limit)) {
|
||||
std::cerr << "Failed to parse the JSON message." << std::endl;
|
||||
//记录日志
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RT_DATA,"【ERROR】前置消费topic:%s_%s的实时触发消息失败,消息的json格式不正确",FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_RT.c_str());
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RT_DATA,"前置消费topic:%s_%s的实时触发消息失败,消息的json格式不正确",FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_RT.c_str());
|
||||
return E_RECONSUME_LATER;
|
||||
}
|
||||
|
||||
@@ -1814,7 +1814,7 @@ int myMessageCallbackrtdata(CPushConsumer* consumer, CMessageExt* msg)
|
||||
}
|
||||
// 创建 XML 文件
|
||||
if (!createXmlFile(dev_index, mp_index, realData, soeData, limit,"new")) {
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RT_DATA,"【ERROR】前置无法创建实时数据触发文件");
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RT_DATA,"前置无法创建实时数据触发文件");
|
||||
std::cerr << "Failed to create the XML file." << std::endl;
|
||||
return E_RECONSUME_LATER;
|
||||
}
|
||||
@@ -1855,7 +1855,7 @@ int myMessageCallbackupdate(CPushConsumer* consumer, CMessageExt* msg)
|
||||
//处理台账更新消息
|
||||
std::string updatefilepath = "/home/pq/FeProject/etc/ledgerupdate";
|
||||
if(parse_control(body,updatefilepath)){
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER_UPDATE,"【ERROR】前置的%s%d号进程处理topic:%s_%s的台账更新消息失败,消息的json结构不正确",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_UD.c_str());
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER_UPDATE,"前置的%s%d号进程处理topic:%s_%s的台账更新消息失败,消息的json结构不正确",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_UD.c_str());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1891,7 +1891,7 @@ int myMessageCallbackset(CPushConsumer* consumer, CMessageExt* msg)
|
||||
|
||||
//处理进程更新消息
|
||||
if(parse_set(body)){
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_PROCESS_CONTROL,"【ERROR】前置的%s%d号进程处理topic:%s_%s的进程控制消息失败,消息的json结构不正确",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_SET.c_str());
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_PROCESS_CONTROL,"前置的%s%d号进程处理topic:%s_%s的进程控制消息失败,消息的json结构不正确",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_SET.c_str());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1927,7 +1927,7 @@ int myMessageCallbacklog(CPushConsumer* consumer, CMessageExt* msg)
|
||||
|
||||
//处理进程更新消息
|
||||
if(parse_log(body)){
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LOG_REQUEST,"【ERROR】前置的%s%d号进程处理topic:%s_%s的日志上送消息失败,消息的json结构不正确",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_LOG.c_str());
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LOG_REQUEST,"前置的%s%d号进程处理topic:%s_%s的日志上送消息失败,消息的json结构不正确",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_LOG.c_str());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1976,7 +1976,7 @@ int myMessageCallbackrecall(CPushConsumer* consumer, CMessageExt* msg)
|
||||
}
|
||||
else{
|
||||
std::cerr << "recall data is NULL." << std::endl;
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"【ERROR】前置的%s%d号进程处理topic:%s_%s的补招触发消息失败,消息的json结构不正确",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_RC.c_str());
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RECALL,"前置的%s%d号进程处理topic:%s_%s的补招触发消息失败,消息的json结构不正确",get_front_msg_from_subdir(), g_front_seg_index,FRONT_INST.c_str(),G_MQCONSUMER_TOPIC_RC.c_str());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ extern LOG_TLS int g_log_code_tls; // 声明为 TLS 变量,定义见 log4.cpp
|
||||
#define DIY_DEBUGLOG(KEY, ...) DIY_LOG_CODE(log_debug, KEY, 0, __VA_ARGS__) // ★修改:默认 code=0
|
||||
|
||||
// ★新增:显式传入 code 的便捷宏
|
||||
// 用法示例:DIY_WARNLOG_CODE(full_key_m_c, warn_recallstart, "【WARN】监测点:%s ...", ...);
|
||||
// 用法示例:DIY_WARNLOG_CODE(full_key_m_c, warn_recallstart, "监测点:%s ...", ...);
|
||||
#define DIY_ERRORLOG_CODE(KEY, CODE_INT, ...) DIY_LOG_CODE(log_error, KEY, CODE_INT, __VA_ARGS__) // ★新增
|
||||
#define DIY_WARNLOG_CODE(KEY, CODE_INT, ...) DIY_LOG_CODE(log_warn, KEY, CODE_INT, __VA_ARGS__) // ★新增
|
||||
#define DIY_INFOLOG_CODE(KEY, CODE_INT, ...) DIY_LOG_CODE(log_info, KEY, CODE_INT, __VA_ARGS__) // ★新增
|
||||
|
||||
@@ -232,7 +232,7 @@ int main(int argc, const char **argv)
|
||||
//char buf[256];
|
||||
//format_log_msg(buf,sizeof(buf),"前置的%s%d号进程 进程级日志初始化完毕", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
//log_debug("process", buf);
|
||||
DIY_INFOLOG("process","【NORMAL】前置的%s%d号进程 进程级日志初始化完毕", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_INFOLOG("process","前置的%s%d号进程 进程级日志初始化完毕", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
|
||||
#ifdef _OS_UNIX_
|
||||
#ifdef QT_NO_DEBUG
|
||||
@@ -268,7 +268,7 @@ int main(int argc, const char **argv)
|
||||
//char buf[256];
|
||||
//format_log_msg(buf,sizeof(buf),"前置的%s%d号进程 台账初始化失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
//log_error("process", buf);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"【ERROR】前置的%s%d号进程 台账初始化失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"前置的%s%d号进程 台账初始化失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -277,7 +277,7 @@ int main(int argc, const char **argv)
|
||||
//char buf[256];
|
||||
//format_log_msg(buf,sizeof(buf),"前置的%s%d号进程 线程初始化失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
//log_error("process", buf);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_OTHER,"【ERROR】前置的%s%d号进程 线程初始化失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_OTHER,"前置的%s%d号进程 线程初始化失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -324,7 +324,7 @@ int main(int argc, const char **argv)
|
||||
//char buf[256];
|
||||
//format_log_msg(buf,sizeof(buf),"前置的业务线程死锁,退出进程");
|
||||
//log_error("process", buf);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_OTHER,"【ERROR】前置的%s%d号进程 业务线程死锁,退出进程", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_OTHER,"前置的%s%d号进程 业务线程死锁,退出进程", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
|
||||
apr_sleep(apr_time_from_sec(10));
|
||||
exit(-1039);
|
||||
|
||||
@@ -184,7 +184,7 @@ void closeChannel(chnl_usr_t *chnl_usr)
|
||||
ret = mms_disconnectFromServer(chnl_usr->net_info,&chnl_usr->m_reqCtrl);
|
||||
echo_warn("---------end disconnectFromServer!\n");
|
||||
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"【WARN】前置与终端%s - ip端口%s:%d 断开连接", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"前置与终端%s - ip端口%s:%d 断开连接", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
|
||||
if (ret != SD_SUCCESS){
|
||||
echo_warn("---------disconnectFromServer success!\n");
|
||||
@@ -321,13 +321,13 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
LD_info->registcount++;
|
||||
|
||||
if (LD_info->registcount <= 5) {
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"【ERROR】监测点:%s - id:%s报告触发失败,监测点逻辑标识号为0,请检查装置对应的台账信息是否正确", LD_info->name,LD_info->mp_id);
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"监测点:%s - id:%s报告触发失败,监测点逻辑标识号为0,请检查装置对应的台账信息是否正确", 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监测点逻辑标识号错误日志已达本次记录上限,不再输出,请检查装置对应的台账信息是否正确",
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"监测点:%s - id:%s监测点逻辑标识号错误日志已达本次记录上限,不再输出,请检查装置对应的台账信息是否正确",
|
||||
LD_info->name, LD_info->mp_id);
|
||||
}
|
||||
}
|
||||
@@ -341,7 +341,7 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
|
||||
if (judge_rpt_next_should_do(rptinfo)==SHOULD_DO_NOTHING)//检查是否触发
|
||||
{
|
||||
//DIY_DEBUGLOG(full_key_m_c,"【DEBUG】监测点:%s - id:%s不注册报告", LD_info->name,LD_info->mp_id);
|
||||
//DIY_DEBUGLOG(full_key_m_c,"监测点:%s - id:%s不注册报告", LD_info->name,LD_info->mp_id);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -357,7 +357,7 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
printf("start mms_register_iec_rpt................................\n");
|
||||
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_c,"【NORMAL】监测点:%s - id:%s开始注册报告,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
DIY_INFOLOG(full_key_m_c,"监测点:%s - id:%s开始注册报告,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
|
||||
if ( strstr(rptinfo->rptID,"LLN0$BR$brcbFlickerData") )
|
||||
rptinfo->IntgPd = 600; //10分钟
|
||||
@@ -385,14 +385,14 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
LD_info->registcount++;
|
||||
|
||||
if (LD_info->registcount <= 5) {
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_REPORT, "【WARN】监测点:%s - id:%s注册报告失败,报告名:%s",
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_REPORT, "监测点:%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_CODE(full_key_m_c,LOG_CODE_REPORT,"【WARN】监测点:%s - id:%s注册报告失败日志已达本次注册上限,不再输出,请检查装置icd和映射文件是否匹配或者装置存在过多连接",
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"监测点:%s - id:%s注册报告失败日志已达本次注册上限,不再输出,请检查装置icd和映射文件是否匹配或者装置存在过多连接",
|
||||
LD_info->name, LD_info->mp_id);
|
||||
}
|
||||
}
|
||||
@@ -415,7 +415,7 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
//mq日志
|
||||
LD_info->has_logged_regist = FALSE;
|
||||
LD_info->registcount = 0;
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"【WARN】监测点:%s - id:%s注册报告成功,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"监测点:%s - id:%s注册报告成功,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
|
||||
// add here to GI not the same time
|
||||
GIoffset = 0.5 * g_pt61850app->giTime;
|
||||
@@ -423,7 +423,7 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
}
|
||||
printf("end mms_register_iec_rpt................................\n");
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_c,"【NORMAL】监测点:%s - id:%s注册报告结束,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
DIY_INFOLOG(full_key_m_c,"监测点:%s - id:%s注册报告结束,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
}
|
||||
}
|
||||
else { //rpt_registered ==TRUE
|
||||
@@ -432,7 +432,7 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
printf("start mms_unregister_iec_rpt................................\n");
|
||||
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_c,"【NORMAL】监测点:%s - id:%s开始注销报告,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
DIY_INFOLOG(full_key_m_c,"监测点:%s - id:%s开始注销报告,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
|
||||
ret = mms_unregister_iec_rpt (chnl_usr->net_info, &g_rpt_typeids,
|
||||
LD_info->LD_name,rpt_inst_name,g_pt61850app->mmsOpTimeout);
|
||||
@@ -443,7 +443,7 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
APR_EGENERAL, LD_info->ied->id,LD_info->cpuno,LD_info->LD_name,rpt_inst_name,chnl_usr->ip_str,chnl_usr->chnl_id);
|
||||
|
||||
//mq日志
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"【WARN】监测点:%s - id:%s注销报告失败,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_REPORT,"监测点:%s - id:%s注销报告失败,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
|
||||
}
|
||||
else {
|
||||
@@ -452,11 +452,11 @@ void ChannelCheckIECReports(chnl_usr_t *chnl_usr)
|
||||
LD_info->ied->id,LD_info->cpuno,LD_info->LD_name,rpt_inst_name,chnl_usr->ip_str,chnl_usr->chnl->port,chnl_usr->chnl_id );
|
||||
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_c,"【NORMAL】监测点:%s - id:%s注销报告成功,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
DIY_INFOLOG(full_key_m_c,"监测点:%s - id:%s注销报告成功,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
}
|
||||
printf("end mms_unregister_iec_rpt................................\n");
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_c,"【NORMAL】监测点:%s - id:%s注销报告结束,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
DIY_INFOLOG(full_key_m_c,"监测点:%s - id:%s注销报告结束,报告名:%s", LD_info->name,LD_info->mp_id,rpt_inst_name);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -523,13 +523,13 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
|
||||
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);
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"监测点:%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模型",
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"监测点:%s - id:%s缺少日志控制块日志已达本次记录上限,不再输出,请检查装置对应的装置类型是否有配对的icd模型",
|
||||
LD_info->name, LD_info->mp_id);
|
||||
}
|
||||
}
|
||||
@@ -560,11 +560,11 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
|
||||
|
||||
if(strcmp(cfg1.ValueOfTimeUnit, "utc") == 0){//装置时间是utc还是北京
|
||||
utc_or_beijing = 28800;//秒
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"【WARN】监测点:%s - id:%s开始补招数据,下发补招时间为utc时间,监测点对应装置型号:%s", LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"监测点:%s - id:%s开始补招数据,下发补招时间为utc时间,监测点对应装置型号:%s", LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
}
|
||||
else{
|
||||
utc_or_beijing = 0;
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"【WARN】监测点:%s - id:%s开始补招数据,下发补招时间为beijing时间,监测点对应装置型号:%s", LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"监测点:%s - id:%s开始补招数据,下发补招时间为beijing时间,监测点对应装置型号:%s", LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////
|
||||
@@ -608,7 +608,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,"监测点:%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);
|
||||
@@ -617,7 +617,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_CODE(full_key_m_c,LOG_CODE_RECALL,"【ERROR】监测点:%s - id:%s补招数据失败 - 失败时间点:%lld 至 %lld", LD_info->name,LD_info->mp_id,loginfo->start_time,loginfo->end_time);
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"监测点:%s - id:%s补招数据失败 - 失败时间点:%lld 至 %lld", LD_info->name,LD_info->mp_id,loginfo->start_time,loginfo->end_time);
|
||||
|
||||
failed_count++;
|
||||
}
|
||||
@@ -670,7 +670,7 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
|
||||
|
||||
// ===== [新增结束] =====
|
||||
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"【WARN】监测点:%s - id:%s结束补招数据", LD_info->name,LD_info->mp_id);
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_RECALL,"监测点:%s - id:%s结束补招数据", LD_info->name,LD_info->mp_id);
|
||||
//}
|
||||
}
|
||||
|
||||
@@ -1475,13 +1475,13 @@ void check_disk_quota()
|
||||
//printf("Current user disk free size: %dMB ,total size: %dMB \n",freeSizeMB,totalSizeMB);
|
||||
if (freeSizeMB<g_min_free_size){
|
||||
echo_warn2("Current user disk free size: %dMB < %dMB, please check!\n",freeSizeMB,g_min_free_size);
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_SPACE_ALARM,"【WARN】前置磁盘检测: 当前磁盘的可用空间为%dMB,小于最小可用空间%dMB,请检查磁盘",freeSizeMB,g_min_free_size);
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_SPACE_ALARM,"前置磁盘检测: 当前磁盘的可用空间为%dMB,小于最小可用空间%dMB,请检查磁盘",freeSizeMB,g_min_free_size);
|
||||
}
|
||||
|
||||
if ((freeSizeMB/(totalSizeMB/100+1) )<10){
|
||||
echo_warn2("Current user disk free size percent < 10%%, free size: %dMB ,total size: %dMB ,please check!\n",
|
||||
freeSizeMB,totalSizeMB);
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_SPACE_ALARM,"【WARN】前置磁盘检测: 当前磁盘的可用空间的百分比小于10%%,可用空间为%dMB,总空间为%dMB,请检查磁盘",freeSizeMB,totalSizeMB);
|
||||
DIY_WARNLOG_CODE("process",LOG_CODE_SPACE_ALARM,"前置磁盘检测: 当前磁盘的可用空间的百分比小于10%%,可用空间为%dMB,总空间为%dMB,请检查磁盘",freeSizeMB,totalSizeMB);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1632,7 +1632,7 @@ void CheckNextNotConnectedChannel()
|
||||
//mq日志
|
||||
((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->lastconnectstat = true;
|
||||
((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->has_logged_disconnect = false;
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"【WARN】终端%s - ip端口:%s:%d连接成功", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"终端%s - ip端口:%s:%d连接成功", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
|
||||
mvl_free_req_ctrl(chnl_usr->m_reqCtrl);
|
||||
chnl_usr->m_reqCtrl = NULL;
|
||||
@@ -1679,11 +1679,11 @@ void CheckNextNotConnectedChannel()
|
||||
if(true == ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->lastconnectstat){
|
||||
((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->lastconnectstat = false;
|
||||
((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->has_logged_disconnect = true;
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"【WARN】终端%s - ip/端口:%s:%d,从开始连接到目前已经%i秒,连接失败,断开连接!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port,secsSince);
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"终端%s - ip/端口:%s:%d,从开始连接到目前已经%i秒,连接失败,断开连接!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port,secsSince);
|
||||
}
|
||||
else if(false == ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->lastconnectstat && false == ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->has_logged_disconnect){
|
||||
((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->has_logged_disconnect = true;
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"【WARN】终端%s - ip/端口:%s:%d,从开始连接到目前已经%i秒,连接失败,断开连接!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port,secsSince);
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"终端%s - ip/端口:%s:%d,从开始连接到目前已经%i秒,连接失败,断开连接!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port,secsSince);
|
||||
}
|
||||
|
||||
mvl_free_req_ctrl(chnl_usr->m_reqCtrl);
|
||||
@@ -1714,11 +1714,11 @@ void CheckNextNotConnectedChannel()
|
||||
if(true == ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->lastconnectstat){
|
||||
((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->lastconnectstat = false;
|
||||
((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->has_logged_disconnect = true;
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"【WARN】终端%s - ip端口:%s:%d,从开始连接到目前已经300秒,未能获取连接响应,断开连接!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"终端%s - ip端口:%s:%d,从开始连接到目前已经300秒,未能获取连接响应,断开连接!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
}
|
||||
else if(false == ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->lastconnectstat && false == ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->has_logged_disconnect){
|
||||
((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->has_logged_disconnect = true;
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"【WARN】终端%s - ip端口:%s:%d,从开始连接到目前已经300秒,未能获取连接响应,断开连接!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"终端%s - ip端口:%s:%d,从开始连接到目前已经300秒,未能获取连接响应,断开连接!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
}
|
||||
|
||||
|
||||
@@ -1758,7 +1758,7 @@ void CheckNextNotConnectedChannel()
|
||||
if (chnl_usr->chnl->ied->cpucount != NULL && chnl_usr->chnl->ied->cpucount > 0 && ied_usr->dev_flag == ENABLE) {//2023-09-26 czy 如果line count<0 不需要连接//lnk20250121如果终端无效则不连接
|
||||
|
||||
//mq日志
|
||||
//DIY_WARNLOG(full_key_t_c,"【WARN】重新连接终端%s - ip端口:%s:%d", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
//DIY_WARNLOG(full_key_t_c,"重新连接终端%s - ip端口:%s:%d", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
|
||||
ret = mms_connectToServer(ied_usr->dev_key, ied_usr->dev_series, serverARName, &(chnl_usr->net_info), &(chnl_usr->m_reqCtrl));
|
||||
|
||||
@@ -1770,7 +1770,7 @@ void CheckNextNotConnectedChannel()
|
||||
chnl_usr->m_StartConnectingTime = sGetMsTime();
|
||||
|
||||
//mq日志
|
||||
//DIY_WARNLOG(full_key_t_c,"【WARN】正在重新连接终端%s - ip端口:%s:%d - 识别码/秘钥:%s/%s", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port,((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->dev_series,((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->dev_key);
|
||||
//DIY_WARNLOG(full_key_t_c,"正在重新连接终端%s - ip端口:%s:%d - 识别码/秘钥:%s/%s", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port,((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->dev_series,((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->dev_key);
|
||||
|
||||
|
||||
}
|
||||
@@ -1782,7 +1782,7 @@ void CheckNextNotConnectedChannel()
|
||||
echo_warn3("FAILED: mms_connectToServer IP %s:%d ,NetInfo= %x \n", chnl_usr->ip_str, chnl_usr->chnl->port, chnl_usr->net_info);
|
||||
|
||||
//mq日志
|
||||
//DIY_WARNLOG(full_key_t_c,"【WARN】重新连接终端%s - ip端口:%s:%d 失败!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
//DIY_WARNLOG(full_key_t_c,"重新连接终端%s - ip端口:%s:%d 失败!", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1813,7 +1813,7 @@ void CheckNextNotConnectedChannel()
|
||||
chnl_usr->chnl->status = STATUS_BREAKOFF;
|
||||
|
||||
//mq日志
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"【WARN】终端%s - ip端口:%s:%d 断连完成,关闭连接通道", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"终端%s - ip端口:%s:%d 断连完成,关闭连接通道", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
|
||||
}
|
||||
else
|
||||
@@ -1843,7 +1843,7 @@ void CheckNextNotConnectedChannel()
|
||||
chnl_usr->chnl->status = STATUS_BREAKOFF;
|
||||
|
||||
//mq日志
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"【WARN】终端%s - ip端口:%s:%d 断连未完成,但是已经超时180秒,关闭连接通道", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
DIY_WARNLOG_CODE(full_key_t_c,LOG_CODE_COMM,"终端%s - ip端口:%s:%d 断连未完成,但是已经超时180秒,关闭连接通道", ((ied_usr_t*)(chnl_usr->chnl->ied->usr_ext))->terminal_id,chnl_usr->ip_str,chnl_usr->chnl->port);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -2013,7 +2013,7 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
|
||||
printf(">>>>>>>> IED [%d]: %s is calling cn wavefile, !!!!!!!! file_match_str=%s \n",ied->id,ied->name,file_match_str);
|
||||
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_c,"【NORMAL】监测点:%s - id:%s开始召唤录波文件", LD_info->name,LD_info->mp_id);
|
||||
DIY_INFOLOG(full_key_m_c,"监测点:%s - id:%s开始召唤录波文件", LD_info->name,LD_info->mp_id);
|
||||
|
||||
ret = SD_FAILURE;
|
||||
filenum = 0;
|
||||
@@ -2035,14 +2035,14 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
|
||||
int ret2,ret3;
|
||||
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_c,"【NORMAL】监测点:%s - id:%s获取录波文件列表成功,开始匹配录波文件", LD_info->name,LD_info->mp_id);
|
||||
DIY_INFOLOG(full_key_m_c,"监测点:%s - id:%s获取录波文件列表成功,开始匹配录波文件", LD_info->name,LD_info->mp_id);
|
||||
|
||||
//WW 2023-11-01将录波段号由字符串匹配修改为int的fltnum匹配
|
||||
ret2 = parse_file_names_by_fltnum(LD_info->FltNum[i], ldstr, filenames, filenum, &cfg_idx, &dat_idx, file_base_name, file_yyyymm);
|
||||
//WW 2023-11-01 end
|
||||
if (ret2 !=APR_SUCCESS){
|
||||
//mq日志
|
||||
//DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"【WARN】监测点:%s - id:%s前置记录的录波事件上传的录波号段%d与从装置获取的录波文件列表匹配失败,装置没有对应的号段的录波文件,清除该记录", LD_info->name,LD_info->mp_id,LD_info->FltNum[i]);
|
||||
//DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"监测点:%s - id:%s前置记录的录波事件上传的录波号段%d与从装置获取的录波文件列表匹配失败,装置没有对应的号段的录波文件,清除该记录", LD_info->name,LD_info->mp_id,LD_info->FltNum[i]);
|
||||
//lnk20250819装置没有对应的文件时清除录波号段
|
||||
printf("监测点:%s - id:%s前置记录的录波事件上传的录波号段%d与从装置获取的录波文件列表匹配失败,装置没有对应的号段的录波文件,清除该记录", LD_info->name,LD_info->mp_id,LD_info->FltNum[i]);
|
||||
LD_info->FltNum[i] = -1;
|
||||
@@ -2058,7 +2058,7 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
|
||||
if (ret2==SD_SUCCESS && ret3==SD_SUCCESS ) { //两个文件都写好了
|
||||
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_c,"【NORMAL】监测点:%s - id:%s从终端获取录波文件成功", LD_info->name,LD_info->mp_id);
|
||||
DIY_INFOLOG(full_key_m_c,"监测点:%s - id:%s从终端获取录波文件成功", LD_info->name,LD_info->mp_id);
|
||||
|
||||
QVVR_t *qvvr; //暂态事件
|
||||
long long start_tm,trig_tm,end_tm;
|
||||
@@ -2066,7 +2066,7 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
|
||||
ret2 = extract_timestamp_from_cfg_file(filenames[cfg_idx],&start_tm,&trig_tm);//提取文件的开始时间和触发时间
|
||||
printf(">>>>>>>> extract_timestamp_from_cfg_file end \n");
|
||||
if (ret2 ==APR_SUCCESS) {
|
||||
DIY_INFOLOG(full_key_m_c,"【NORMAL】监测点:%s - id:%s提取录波文件时间成功", LD_info->name,LD_info->mp_id);
|
||||
DIY_INFOLOG(full_key_m_c,"监测点:%s - id:%s提取录波文件时间成功", LD_info->name,LD_info->mp_id);
|
||||
//to find the paired qvvr by the time of trig_tm
|
||||
printf(">>>>>>>> extract_timestamp_from_cfg_file success \n");
|
||||
qvvr = find_qvvr_by_trig_tm(LD_info,trig_tm); //根据文件的触发时间查找检测点记录的匹配上的暂态事件
|
||||
@@ -2287,10 +2287,10 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
|
||||
printf("读取失败,未找到 dev_type\n");
|
||||
}
|
||||
if(strcmp(cfg.UnitOfTimeUnit, "1") == 0){//持续时间上送的是秒1还是毫秒0
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"【ERROR】监测点:%s - id:%s 匹配录波文件失败,录波号段:%d,录波文件的开始时间:%lld,触发时间:%lld,映射配置的暂态持续时间单位是秒", LD_info->name,LD_info->mp_id,LD_info->FltNum[i],start_tm,trig_tm);
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"监测点:%s - id:%s 匹配录波文件失败,录波号段:%d,录波文件的开始时间:%lld,触发时间:%lld,映射配置的暂态持续时间单位是秒", LD_info->name,LD_info->mp_id,LD_info->FltNum[i],start_tm,trig_tm);
|
||||
}
|
||||
else{
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"【ERROR】监测点:%s - id:%s 匹配录波文件失败,录波号段:%d,录波文件的开始时间:%lld,触发时间:%lld,映射配置的暂态持续时间单位是毫秒", LD_info->name,LD_info->mp_id,LD_info->FltNum[i],start_tm,trig_tm);
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"监测点:%s - id:%s 匹配录波文件失败,录波号段:%d,录波文件的开始时间:%lld,触发时间:%lld,映射配置的暂态持续时间单位是毫秒", LD_info->name,LD_info->mp_id,LD_info->FltNum[i],start_tm,trig_tm);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2298,7 +2298,7 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
|
||||
|
||||
}
|
||||
else{
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"【ERROR】监测点:%s - id:%s 下载录波文件%s和%s失败,录波号段:%d", LD_info->name,LD_info->mp_id,filenames[cfg_idx],filenames[dat_idx],LD_info->FltNum[i]);
|
||||
DIY_ERRORLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"监测点:%s - id:%s 下载录波文件%s和%s失败,录波号段:%d", LD_info->name,LD_info->mp_id,filenames[cfg_idx],filenames[dat_idx],LD_info->FltNum[i]);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2306,7 +2306,7 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
|
||||
if (ied && chnl_usr){
|
||||
echo_warn2("mms_mvla_fdir Failed: IED [%d] %s \n", ied->id , chnl_usr->ip_str) ;
|
||||
//mq日志
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"【WARN】监测点:%s - id:%s召唤录波文件列表失败,放弃这个号段", LD_info->name,LD_info->mp_id);
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_COMTRADE_FILE,"监测点:%s - id:%s召唤录波文件列表失败,放弃这个号段", LD_info->name,LD_info->mp_id);
|
||||
LD_info->FltNum[i] = -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -862,7 +862,7 @@ ST_VOID u_iec_rpt_ind_data_by_devtype(MVL_VAR_ASSOC** info_va,
|
||||
//监测点日志的key,lnk20250526
|
||||
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_d,"【NORMAL】前置收到监测点:%s - id:%s的报告,报告名称:%s,监测点对应终端的ip和端口是: %s:%d,报告总数:%i,当前报告数:%i", LD_info->name,LD_info->mp_id,rcb_info->RptID,chnl_usr->ip_str,chnl_usr->chnl->port,va_total, rptinfo->count);
|
||||
DIY_INFOLOG(full_key_m_d,"前置收到监测点:%s - id:%s的报告,报告名称:%s,监测点对应终端的ip和端口是: %s:%d,报告总数:%i,当前报告数:%i", LD_info->name,LD_info->mp_id,rcb_info->RptID,chnl_usr->ip_str,chnl_usr->chnl->port,va_total, rptinfo->count);
|
||||
|
||||
//apr_time_t previousTime = apr_time_now();//
|
||||
//apr_time_exp_t localTime;
|
||||
@@ -1162,14 +1162,14 @@ ST_VOID u_iec_rpt_ind_data_by_devtype(MVL_VAR_ASSOC** info_va,
|
||||
echo_err3("Ignore this report due to line_id invalid , Report From %s %s %s !!!",
|
||||
APR_EGENERAL, chnl_usr->ip_str, LD_info->LD_name, rcb_info->RptID);
|
||||
//mq日志
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_REPORT,"【ERROR】前置不处理这个监测点:%s - id:%s的报告,报告名称:%s,原因是监测点的序号非法", LD_info->name,LD_info->mp_id,rcb_info->RptID);
|
||||
DIY_ERRORLOG_CODE(full_key_m_d,LOG_CODE_REPORT,"前置不处理这个监测点:%s - id:%s的报告,报告名称:%s,原因是监测点的序号非法", LD_info->name,LD_info->mp_id,rcb_info->RptID);
|
||||
|
||||
}
|
||||
printf("[END Process] Report From %s:%d %s %s ,va_total = %i ,【count = %i】 \n",
|
||||
chnl_usr->ip_str, chnl_usr->chnl->port, LD_info->LD_name, rcb_info->RptID, va_total, rptinfo->count);
|
||||
|
||||
//mq日志
|
||||
DIY_INFOLOG(full_key_m_d,"【NORMAL】前置处理监测点:%s - id:%s的报告结束,报告名称:%s,监测点对应终端的ip和端口是: %s:%d,报告总数:%i,当前报告数:%i", LD_info->name,LD_info->mp_id,rcb_info->RptID,chnl_usr->ip_str,chnl_usr->chnl->port,va_total, rptinfo->count);
|
||||
DIY_INFOLOG(full_key_m_d,"前置处理监测点:%s - id:%s的报告结束,报告名称:%s,监测点对应终端的ip和端口是: %s:%d,报告总数:%i,当前报告数:%i", LD_info->name,LD_info->mp_id,rcb_info->RptID,chnl_usr->ip_str,chnl_usr->chnl->port,va_total, rptinfo->count);
|
||||
|
||||
//apr_time_t previousTimeend = apr_time_now();//
|
||||
//apr_time_exp_t localTimeend;
|
||||
|
||||
@@ -194,7 +194,7 @@ apr_status_t init_rdb()
|
||||
//char buf[256];
|
||||
//format_log_msg(buf,sizeof(buf),"前置的%s%d号进程调用web台账接口失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
//log_error("process", buf);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"【ERROR】前置的%s%d号进程调用web台账接口失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_LEDGER,"前置的%s%d号进程调用web台账接口失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
|
||||
return rv;
|
||||
}
|
||||
@@ -209,7 +209,7 @@ apr_status_t init_rdb()
|
||||
//char buf[256];
|
||||
//format_log_msg(buf,sizeof(buf),"前置的%s%d号进程调用web模型接口失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
//log_error("process", buf);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"【ERROR】前置的%s%d号进程调用web模型接口失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_ICD_AND_DOWNLOAD,"前置的%s%d号进程调用web模型接口失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
|
||||
return rv;
|
||||
}
|
||||
@@ -220,7 +220,7 @@ apr_status_t init_rdb()
|
||||
if (rv != APR_SUCCESS) {
|
||||
echo_errg("Failed to parse report log define ini file! \n");
|
||||
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RPTINIT,"【ERROR】前置的%s%d号进程报告初始化失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_RPTINIT,"前置的%s%d号进程报告初始化失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
|
||||
return rv;
|
||||
}
|
||||
@@ -228,7 +228,7 @@ apr_status_t init_rdb()
|
||||
if (app_get_private_config(g_my_conf_fname) != APR_SUCCESS) {
|
||||
echo_errg("Failed when processing private configuration\n");
|
||||
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_OTHER,"【ERROR】前置的%s%d号进程读取mms配置失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
DIY_ERRORLOG_CODE("process",LOG_CODE_OTHER,"前置的%s%d号进程读取mms配置失败", get_front_msg_from_subdir(), g_front_seg_index);
|
||||
|
||||
return APR_EGENERAL;
|
||||
}
|
||||
|
||||
@@ -562,11 +562,11 @@ void processQVVR_end(LD_info_t* LD_info)
|
||||
long long utc_or_beijing;
|
||||
if(strcmp(cfg.UnitOfTimeUnit, "1") == 0){//持续时间上送的是秒1还是毫秒0
|
||||
s_or_ms = 0.001;
|
||||
//DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_TRANSIENT,"【WARN】监测点:%s - id:%s上送的暂态持续时间单位是秒,监测点对应装置型号:%s",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
//DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_TRANSIENT,"监测点:%s - id:%s上送的暂态持续时间单位是秒,监测点对应装置型号:%s",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
}
|
||||
else{
|
||||
s_or_ms = 1.0;
|
||||
//DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_TRANSIENT,"【WARN】监测点:%s - id:%s上送的暂态持续时间单位是毫秒,监测点对应装置型号:%s",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
//DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_TRANSIENT,"监测点:%s - id:%s上送的暂态持续时间单位是毫秒,监测点对应装置型号:%s",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
}
|
||||
|
||||
if(strcmp(cfg.ValueOfTimeUnit, "utc") == 0){//上送的是utc还是北京
|
||||
@@ -635,7 +635,7 @@ void processQVVR_end(LD_info_t* LD_info)
|
||||
|
||||
//匹配后再发qvvr,起始时间要填暂态触发的时间,就是第一次事件上送时只有时间没有值的那个时间
|
||||
//mq日志
|
||||
DIY_WARNLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT,"【WARN】监测点%s - id:%s 发生暂态事件,暂态时间:%lld,暂态持续时间:%f,暂态幅值:%f,暂态类型:%d",LD_info->name,LD_info->mp_id,
|
||||
DIY_WARNLOG_CODE(full_key_m_d,LOG_CODE_TRANSIENT,"监测点%s - id:%s 发生暂态事件,暂态时间:%lld,暂态持续时间:%f,暂态幅值:%f,暂态类型:%d",LD_info->name,LD_info->mp_id,
|
||||
LD_info->qvvr[LD_info->qvvr_idx].QVVR_time,
|
||||
LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime,
|
||||
LD_info->qvvr[LD_info->qvvr_idx].QVVR_Amg,
|
||||
@@ -669,10 +669,10 @@ void processQVVR_end(LD_info_t* LD_info)
|
||||
|
||||
//mq日志
|
||||
if(strcmp(cfg.UnitOfTimeUnit, "1") == 0){//持续时间上送的是秒1还是毫秒0
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_TRANSIENT,"【WARN】监测点:%s - id:%s记录了一个暂态事件但是没有匹配到事件的发生时间,装置型号:%s 配置的暂态持续时间单位是秒",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_TRANSIENT,"监测点:%s - id:%s记录了一个暂态事件但是没有匹配到事件的发生时间,装置型号:%s 配置的暂态持续时间单位是秒",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
}
|
||||
else{
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_TRANSIENT,"【WARN】监测点:%s - id:%s记录了一个暂态事件但是没有匹配到事件的发生时间,装置型号:%s 配置的暂态持续时间单位是毫秒",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
DIY_WARNLOG_CODE(full_key_m_c,LOG_CODE_TRANSIENT,"监测点:%s - id:%s记录了一个暂态事件但是没有匹配到事件的发生时间,装置型号:%s 配置的暂态持续时间单位是毫秒",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user