add log4cplus

This commit is contained in:
lnk
2025-05-09 16:53:07 +08:00
parent 92117de97e
commit 8a2e6ea537
109 changed files with 18240 additions and 4034 deletions

View File

@@ -121,8 +121,8 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
not_set_log_q_this = TRUE;
not_set_log_t_this = TRUE;
ST_INT timeflag = TRUE;//ִ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD>ȡʱ<EFBFBD><EFBFBD>
int log_data_steady_type = 0;//<EFBFBD><EFBFBD>̬ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
ST_INT timeflag = TRUE;//执行前先取时标
int log_data_steady_type = 0;//稳态 长闪 短闪标志
double start, end;
static double last_check_recall_config_time = 0.0;
@@ -186,7 +186,7 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
v = mms_dec_data.data_item[ii].u.data_double;
apr_snprintf(mms_ref, sizeof(mms_ref), "%s$%s", do_name, mms_dec_data.data_item[ii].comp_name);
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//调试用
printf("u.data_str: %s (as hex: 0x%X)\n", mms_dec_data.data_item[ii].u.data_str, *((ST_UINT16*)mms_dec_data.data_item[ii].u.data_str));
if (strstr(mms_ref, "QVVR")) {
@@ -202,18 +202,18 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
length_FCDA = strlen(mms_ref);
if (('$' == mms_ref[length_FCDA - 2]) && ('t' == mms_ref[length_FCDA - 1])) {
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
//调试用lnk20250307
printf("readtime = 1");
readtime = 1;
t = convert_btime6_to_apr_time(&(mms_dec_data.data_item[ii].u.data_bTime6));
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
//调试用
// 定义一个结构体保存转换后的时间信息
apr_time_exp_t xt;
// ʹ<EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> apr_time_exp_gmt(&xt, t) <EFBFBD>õ<EFBFBD> GMT ʱ<EFBFBD>
// 使用本地时区转换(也可以用 apr_time_exp_gmt(&xt, t) 得到 GMT 时间)
if (apr_time_exp_lt(&xt, t) == APR_SUCCESS) {
// tm_year <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD> 1900 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1900<EFBFBD><EFBFBD>tm_mon <EFBFBD><EFBFBD>ΧΪ 0~11<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD> 1
// tm_year 表示自 1900 年起的年数,需要加上 1900tm_mon 范围为 0~11,需要加 1
printf("Converted time: %04d-%02d-%02d %02d:%02d:%02d.%06d\n",
xt.tm_year + 1900,
xt.tm_mon + 1,
@@ -225,36 +225,36 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
} else {
printf("Failed to convert apr_time_t\n");
}
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//调试用
}
if (('$' == mms_ref[length_FCDA - 2]) && ('q' == mms_ref[length_FCDA - 1])) {
if (log_data_type == STEADY_DATA) {
readquailty = 1;
char* q = mms_dec_data.data_item[ii].u.data_str;
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
//调试用lnk20250307
if (q != NULL)
{
int i;
for (i = 0; q[i] != '\0'; i++)
{
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD> '\0' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>ų<EFBFBD><C5B3><EFBFBD> '\0' */
/* 如果当前字符是 '\0' 则跳过,但循环条件已经排除了 '\0' */
if (q[i] == '\0')
continue;
printf("q[%d] = %c\n", i, q[i]);
}
printf("!!!!!\n");
}
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
//调试用lnk20250307
if (q[0] == '0' && q[1] == '0'){
quality = 0;
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
//调试用lnk20250307
printf("quality = 0");
}else{
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
//调试用lnk20250307
printf("quality = 1");
quality = 1;
}
@@ -262,21 +262,21 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
}
}
if (readtime == 1 && readquailty == 1) {
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
//调试用lnk20250307
printf("readtime == 1 && readquailty = 1");
break;
}
}
if (readtime == 1 && readquailty == 1) {
if (0) {//<EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>Ҫ<EFBFBD>Ļ<EFBFBD>quality == 0
if (0) {//调试,要改回quality == 0
timeflag = TRUE;
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
//调试用lnk20250307
printf("readtime == 1 && readquailty = 1 && quality == 1 continue");
continue;
}
else
{
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
//调试用lnk20250307
printf("readtime == 1 && readquailty = 1 && quality == 0 log");
timeflag = FALSE;
@@ -289,21 +289,21 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
apr_time_exp_t preTime;
apr_time_exp_gmt(&preTime, process_jou_entry_t);
if (newTime.tm_year != preTime.tm_year || newTime.tm_mon != preTime.tm_mon || newTime.tm_mday != preTime.tm_mday || newTime.tm_hour != preTime.tm_hour || newTime.tm_min != preTime.tm_min) //ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>json<6F><6E><EFBFBD><EFBFBD>
if (newTime.tm_year != preTime.tm_year || newTime.tm_mon != preTime.tm_mon || newTime.tm_mday != preTime.tm_mday || newTime.tm_hour != preTime.tm_hour || newTime.tm_min != preTime.tm_min) //时间发生跳变 长闪 短闪 和稳态数据执行json推送
{
printf("\n newTime: %d %d %d %d %d %d", newTime.tm_year, newTime.tm_mon, newTime.tm_mday, newTime.tm_hour, newTime.tm_min, newTime.tm_sec);
printf("\n preTime: %d %d %d %d %d %d", preTime.tm_year, preTime.tm_mon, preTime.tm_mday, preTime.tm_hour, preTime.tm_min, preTime.tm_sec);
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 0);//<EFBFBD><EFBFBD>̬
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 1);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 2);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
process_jou_entry_t = t;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 0);//稳态
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 1);//长闪
json_block_create_end(loginfo->LD_info->v_wiring_type,loginfo->LD_info->mp_id, 2);//短闪 波动
process_jou_entry_t = t;//调整至最新时标
ied_t* ied;
ied = find_ied_from_dev_code(loginfo->LD_info->terminal_code);
ied_usr_t* ied_usr = (ied_usr_t*)ied->usr_ext;
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 0, ied_usr->dev_type, loginfo->LD_info->line_id);//<EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><C2B6><EFBFBD> <20><>̬
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 1, ied_usr->dev_type, loginfo->LD_info->line_id);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 2, ied_usr->dev_type, loginfo->LD_info->line_id);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 0, ied_usr->dev_type, loginfo->LD_info->line_id);//推送结束 重新初始化新队列 稳态
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 1, ied_usr->dev_type, loginfo->LD_info->line_id);//长闪
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 2, ied_usr->dev_type, loginfo->LD_info->line_id);//短闪
}
}
}
@@ -363,7 +363,7 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
int quality = 0;
char* q = mms_dec_data.data_item[ii].u.data_str;
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
//调试用lnk20250307
printf("q[0] = %c ,q[1] = %c !!!!!",q[0],q[1]);
if (q[0]=='0'&& q[1]=='0'){
@@ -373,7 +373,7 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
printf("quality = 1");
quality = 1;
}
if (0) {//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>Ҫ<EFBFBD>Ļ<EFBFBD>quality == 0
if (0) {//调试用,要改回quality == 0
printf("quality = 1 continue");
continue;
}
@@ -503,12 +503,12 @@ ST_RET mms_jread (loginfo_t *loginfo,MVL_NET_INFO *clientNetInfo, ST_CHAR *dom_n
double start,end;
static double last_check_recall_config_time = 0.0;
static double heart_time_cout = 0.0;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
static double heart_time_cout_start = 0.0;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ <20><>ʼ
static double heart_time_cout_now = 0.0;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ <20><>ǰ
static double heart_time_cout = 0.0;//心跳计时
static double heart_time_cout_start = 0.0;//心跳计时 开始
static double heart_time_cout_now = 0.0;//心跳计时 当前
do {
heart_time_cout_now = sGetMsTime();
if (heart_time_cout_now - heart_time_cout_start > 30000)//30<EFBFBD><EFBFBD> <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
if (heart_time_cout_now - heart_time_cout_start > 30000)//30秒 定时心跳
{
printf("\n heart_time_cout OK");
heart_time_cout_start = sGetMsTime();
@@ -600,17 +600,17 @@ ST_RET mms_jread (loginfo_t *loginfo,MVL_NET_INFO *clientNetInfo, ST_CHAR *dom_n
if ( jread_resp->more_follows == 0 && ((i + 1) == jread_resp->num_of_jou_entry)) {
printf("\njread_resp->more_follows == 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
//lnk2024-8-16<EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD>߲<EFBFBD><EFBFBD><EFBFBD>
json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 0);//more followsΪ0 <EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> ǿ<>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD>ݵ<EFBFBD>json<6F><6E>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
//lnk2024-8-16添加接线参数
json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 0);//more follows0 数据接受最后一条 强行处理稳态数据的json防止遗留
json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 1);
json_block_create_end(loginfo->LD_info->v_wiring_type, loginfo->LD_info->mp_id, 2);
ied_t* ied;
ied = find_ied_from_dev_code(loginfo->LD_info->terminal_code);
ied_usr_t* ied_usr = (ied_usr_t*)ied->usr_ext;
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 0, ied_usr->dev_type, loginfo->LD_info->line_id);//<EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><C2B6><EFBFBD> <20><>̬
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 1, ied_usr->dev_type, loginfo->LD_info->line_id);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 2, ied_usr->dev_type, loginfo->LD_info->line_id);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 0, ied_usr->dev_type, loginfo->LD_info->line_id);//推送结束 重新初始化新队列 稳态
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 1, ied_usr->dev_type, loginfo->LD_info->line_id);//长闪
json_block_create_start(loginfo->LD_info->voltage_level, loginfo->LD_info->mp_id, 2, ied_usr->dev_type, loginfo->LD_info->line_id);//短闪
}
end = sGetMsTime();
}
@@ -627,7 +627,7 @@ ST_RET mms_jread (loginfo_t *loginfo,MVL_NET_INFO *clientNetInfo, ST_CHAR *dom_n
apr_time_exp_t preTime;
apr_time_exp_gmt(&preTime, end_time);
printf("\nstart timecheck_2");
if (newTime.tm_year != preTime.tm_year || newTime.tm_mon != preTime.tm_mon || newTime.tm_mday != preTime.tm_mday || (newTime.tm_hour != preTime.tm_hour && newTime.tm_hour != preTime.tm_hour + 1 && newTime.tm_hour != preTime.tm_hour - 1)) //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʱ <20><><EFBFBD><EFBFBD>
if (newTime.tm_year != preTime.tm_year || newTime.tm_mon != preTime.tm_mon || newTime.tm_mday != preTime.tm_mday || (newTime.tm_hour != preTime.tm_hour && newTime.tm_hour != preTime.tm_hour + 1 && newTime.tm_hour != preTime.tm_hour - 1)) //结束时标判断 当上送时间超过结束时标时 跳出
{
printf("\nstart timecheck_3");
printf("\n more_follows newTime: %d %d %d %d %d %d", newTime.tm_year, newTime.tm_mon, newTime.tm_mday, newTime.tm_hour, newTime.tm_min, newTime.tm_sec);