fix utc recall

This commit is contained in:
lnk
2025-07-28 15:23:13 +08:00
parent 492193f848
commit 29e5f17141
2 changed files with 30 additions and 0 deletions

View File

@@ -485,6 +485,28 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
if (LD_info->autorecallcount != 0 && LD_info->autorecallflag != 1) {
int i;
int failed_count = 0;
/////////////////////////////////////////////////////根据配置文件控制下发补招时间为北京时间还是utc时间
printf("~~~~~~~this dev type is %s~~~~~~~",ied_usr->dev_type);
XmlConfigC cfg1;
if (get_xml_config_by_dev_type(ied_usr->dev_type, &cfg1)) {
printf("ValueOfTimeUnit = %s\n", cfg1.ValueOfTimeUnit);
} else {
printf("读取失败,未找到 dev_type\n");
}
long long utc_or_beijing;
if(strcmp(cfg1.ValueOfTimeUnit, "utc") == 0){//装置时间是utc还是北京
utc_or_beijing = 28800000;
DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s开始补招数据,下发补招时间为utc时间,监测点对应装置型号:%s", LD_info->name,LD_info->mp_id,ied_usr->dev_type);
}
else{
utc_or_beijing = 0;
DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s开始补招数据,下发补招时间为beijing时间,监测点对应装置型号:%s", LD_info->name,LD_info->mp_id,ied_usr->dev_type);
}
//////////////////////////////////////////////////////////////
for (i = 0; i < LD_info->autorecallcount; i++) {
LD_info->autorecallflag = 1;//正在补招
@@ -495,6 +517,11 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
loginfo->start_time = apr_time_from_sec(LD_info->autorecall[i]->start - 5);
loginfo->end_time = apr_time_from_sec(LD_info->autorecall[i]->end - 5);
/////////////////////////////////////////////////////根据配置文件控制下发补招时间为北京时间还是utc时间,上送的数据61850库会转换成北京时间
loginfo->start_time = loginfo->end_time - utc_or_beijing;//下发utc时间需要减去8小时
loginfo->end_time = loginfo->end_time - utc_or_beijing;
/////////////////////////////////////////////////////
if (loginfo->need_steady == 0 && loginfo->need_voltage == 0)
continue;
if (loginfo->end_time <= loginfo->start_time)
@@ -538,6 +565,7 @@ void ChannelCheckIECLogs(chnl_usr_t *chnl_usr)
//不管是否成功这个补招文件必须删除可能出现一直失败循环读取文件和循环补招导致程序崩溃202050724lnk
//if (failed_count==0) {//成功
Delete_recall_Xml(LD_info->mp_id);
DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s结束补招数据", LD_info->name,LD_info->mp_id);
//}
}

View File

@@ -545,9 +545,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(full_key_m_c,"【WARN】监测点:%s - id:%s上送的暂态持续时间单位是秒,监测点对应装置型号:%s",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
}
else{
s_or_ms = 1.0;
DIY_WARNLOG(full_key_m_c,"【WARN】监测点:%s - id:%s上送的暂态持续时间单位是毫秒,监测点对应装置型号:%s",LD_info->name,LD_info->mp_id,ied_usr->dev_type);
}
if(strcmp(cfg.ValueOfTimeUnit, "utc") == 0){//上送的是utc还是北京