This commit is contained in:
lnk
2025-03-11 11:29:24 +08:00
parent 3347361203
commit f2556662ed
5 changed files with 55 additions and 72 deletions

View File

@@ -14091,26 +14091,20 @@ void handleUploadResponse(const std::string& response, char* wavepath) {
std::cout << "Uploaded File Name: " << fileName << std::endl;
std::cout << "File URL: " << url << std::endl;
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> '/'
const char *lastSlash = strrchr(name.c_str(), '/');
if (lastSlash != NULL) {
// ȡ '/' ֮<><D6AE><EFBFBD>IJ<EFBFBD><C4B2>֣<EFBFBD><D6A3><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
const char *filename = lastSlash + 1;
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2>ֳ<EFBFBD>ǰ<EFBFBD>벿<EFBFBD>ֺͺ<D6BA><CDBA>벿<EFBFBD>ֽ<EFBFBD><D6BD>бȽϣ<C8BD>
size_t len = strlen(filename);
size_t halfLen = len / 2;
if (strncmp(filename, filename + halfLen, halfLen) == 0) {
strncpy(wavepath, filename, halfLen);
wavepath[halfLen] = '\0'; // ȷ<><C8B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD> '\0' <20><>β
} else {
strcpy(wavepath, filename);
}
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> '.'
size_t pos = fileName.find_last_of('.');
std::string nameWithoutExt;
if (pos != std::string::npos) {
// <20><>ȡȥ<C8A1><C8A5><EFBFBD><EFBFBD>׺<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
nameWithoutExt = fileName.substr(0, pos);
} else {
// <20><><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD> '/'<27><>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
strcpy(wavepath, name.c_str());
// <20><><EFBFBD><EFBFBD>û<EFBFBD>к<EFBFBD>׺<EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>ԭ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
nameWithoutExt = fileName;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> wavepath
strcpy(wavepath, nameWithoutExt.c_str());
std::cout << "wavepath: " << wavepath << std::endl;
}
@@ -14254,11 +14248,11 @@ void SOEFileWeb(char* localpath,char* cloudpath, char* wavepath)
void SOEFileWeb_test()
{
char localpath[128] = {"./file_test.txt"};
char cloudpath[128] = {"/comtrade/file_test.txt"};
char localpath[128] = {"/FeProject/comtrade/his/PQMonitor_PQM1_000420_20250310_151030_923.cfg"};
char cloudpath[128] = {"/comtrade/192.168.1.105/"};
char wavepath[128] = {""};
SOEFileWeb(localpath,cloudpath,wavepath);
std::cout << "wavepath" << wavepath << std::endl;
std::cout << "wavepath:" << wavepath << std::endl;
}
/*/////////////////////////////////////////////////////////lnk10-24<32><34><EFBFBD><EFBFBD>web<65>ӿ<EFBFBD><D3BF>޸<EFBFBD>/////////////////////////////////////////////////////////////*/
/*<2A><>װC<D7B0>ɵ<EFBFBD><C9B5>õ<EFBFBD>̨<EFBFBD>˸<EFBFBD><CBB8>º<EFBFBD><C2BA><EFBFBD> */////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@@ -1995,29 +1995,21 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
char mq_file_fullname_cfg[256]; // Զ<><D4B6><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
memset(mq_file_fullname_cfg, 0, sizeof(mq_file_fullname_cfg));
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵĻ<C4B5><C4BB><EFBFBD><EFBFBD><EFBFBD>
char cfg_filename[128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD> 128
strncpy(cfg_filename, cfg_only_filename_ret, sizeof(cfg_filename) - 1);
cfg_filename[sizeof(cfg_filename) - 1] = '\0'; // ȷ<><C8B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD> '\0' <20><>β
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> '.'<27><>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>λ<EFBFBD><CEBB>
char *pos = strrchr(cfg_filename, '.');
if (pos != NULL) {
// <20>޸<EFBFBD><DEB8><EFBFBD>չ<EFBFBD><D5B9>Ϊ ".CFG"
strcpy(pos, ".CFG");
}
// ʹ<><CAB9><EFBFBD>޸ĺ<DEB8><C4BA><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> apr_snprintf
apr_snprintf(mq_file_fullname_cfg, sizeof(mq_file_fullname_cfg), "comtrade/%s/%s",
LD_info->ied->channel[0].addr_str, cfg_filename);
apr_snprintf(mq_file_fullname_cfg, sizeof(mq_file_fullname_cfg), "comtrade/%s/",
LD_info->ied->channel[0].addr_str);
SOEFileWeb(loc_file_fullname_cfg, mq_file_fullname_cfg, wavepath_cfg);
printf("\n>>>>>>!! %s %s...... \n", mq_file_fullname_cfg, loc_file_fullname_cfg);
}
else
{
if (FILE_FLAG == 4) {
}
printf("\n>>>>>>!! %s %s...... \n", oss_file_fullname_cfg, loc_file_fullname_cfg);
else{
printf("\n>>>>>>!! %s %s...... \n", oss_file_fullname_cfg, loc_file_fullname_cfg);
}
apr_snprintf(linux_cmd,sizeof(linux_cmd),"./sftp_upload %s %s/%04d",dat_only_filename_ret,file_yyyymm,LD_info->line_id);//<2F><>ͨ<EFBFBD><CDA8>sftp<74>ϴ<EFBFBD><CFB4>ŷ<EFBFBD>json<6F><6E>ȥ
//printf("\n>>>>>> %s ...... \n",linux_cmd);
@@ -2043,25 +2035,22 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
char mq_file_fullname_dat[256]; // Զ<><D4B6><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
memset(mq_file_fullname_dat, 0, sizeof(mq_file_fullname_dat));
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵĻ<C4B5><C4BB><EFBFBD><EFBFBD><EFBFBD>
char dat_filename[128]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD> 128
strncpy(dat_filename, cfg_only_filename_ret, sizeof(dat_filename) - 1);
dat_filename[sizeof(dat_filename) - 1] = '\0'; // ȷ<><C8B7><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD> '\0' <20><>β
// <20>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> '.'<27><>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>λ<EFBFBD><CEBB>
char *pos = strrchr(dat_filename, '.');
if (pos != NULL) {
// <20>޸<EFBFBD><DEB8><EFBFBD>չ<EFBFBD><D5B9>Ϊ ".CFG"
strcpy(pos, ".CFG");
}
// ʹ<><CAB9><EFBFBD>޸ĺ<DEB8><C4BA><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> apr_snprintf
apr_snprintf(mq_file_fullname_dat, sizeof(mq_file_fullname_dat), "comtrade/%s/%s",
LD_info->ied->channel[0].addr_str, dat_filename);
apr_snprintf(mq_file_fullname_dat, sizeof(mq_file_fullname_dat), "comtrade/%s/",
LD_info->ied->channel[0].addr_str);
SOEFileWeb(loc_file_fullname_cfg, mq_file_fullname_dat, wavepath_cfg);
SOEFileWeb(loc_file_fullname_dat, mq_file_fullname_dat, wavepath_dat);
printf("\n>>>>>>!! %s %s...... \n", mq_file_fullname_dat, loc_file_fullname_dat);
}
printf("\n>>>>>>!! %s %s...... \n", oss_file_fullname_dat, loc_file_fullname_dat);
if (FILE_FLAG == 4) {
}
else{
printf("\n>>>>>>!! %s %s...... \n", oss_file_fullname_dat, loc_file_fullname_dat);
}
/*<2A>ϴ<EFBFBD>.cfg<66><67>.dat<61><74><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>*/
/*<2A>ϴ<EFBFBD><CFB4><EFBFBD>Ϣ*/
//to send json of this qvvr and rdre
@@ -2114,7 +2103,7 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
free(dat_result); // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><CFBA>ͷŶ<CDB7>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>ռ<EFBFBD>
}
/*<2A>ϴ<EFBFBD><CFB4><EFBFBD>Ϣ*/
qvvr->used_status = QVVR_DATA_NOT_USED;
qvvr->used_status = QVVR_DATA_NOT_USED;//<2F>ϴ<EFBFBD><CFB4><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>qvvr<76><72>״̬<D7B4><CCAC>Ϊδʹ<CEB4><CAB9>
free(uuid_cfg);
free(uuid_dat);
free(filename_cfg);

View File

@@ -377,7 +377,7 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
if ( ('$'==mms_ref[length_FCDA-2]) && ('q'==mms_ref[length_FCDA-1]) ) {
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
printf("going q");
//printf("going q");
if(not_set_log_q_this && ( log_data_type == STEADY_DATA )) {
int quality = 0;
@@ -413,7 +413,7 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
else if ( ('$'==mms_ref[length_FCDA-2]) && ('t'==mms_ref[length_FCDA-1]) ) {
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
printf("going t");
//printf("going t");
if (not_set_log_t_this) {
apr_time_t t = convert_btime6_to_apr_time(&(mms_dec_data.data_item[ii].u.data_bTime6));
@@ -443,7 +443,7 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
}
else {
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
printf("going v");
//printf("going v");
if ( log_data_type == QVVR_DATA ){
processQVVR_data(loginfo->LD_info,mms_ref,v);

View File

@@ -1059,10 +1059,10 @@ ST_VOID u_iec_rpt_ind_data_by_devtype(MVL_VAR_ASSOC** info_va,
}
else if (('$' == FULL_FCDA_Name[length_FCDA - 2]) && ('t' == FULL_FCDA_Name[length_FCDA - 1])) {
if (not_set_rpt_TimeID_this) {
apr_time_t t = convert_btime6_to_apr_time(&(mms_dec_data.data_item[ii].u.data_bTime6));
apr_time_t t = convert_btime6_to_apr_time(&(mms_dec_data.data_item[ii].u.data_bTime6));//΢<><CEA2>
if (strstr(rcb_info->RptID, "QVVR")) {//CZY 2023-08-17 WW 2022-11-14 <20>޸<EFBFBD><DEB8>ж<EFBFBD>LLN0$BR$brcbQVVR
if (strstr(FULL_FCDA_Name, "VarStr$t")) {
processQVVR_time(LD_info, t / 1000);
processQVVR_time(LD_info, t / 1000);//<2F><><EFBFBD><EFBFBD>
not_set_rpt_TimeID_this = FALSE;
}
}

View File

@@ -516,16 +516,7 @@ void processQVVR_end(LD_info_t* LD_info)
ied_t *ied = LD_info->ied;
ied_usr_t *ied_usr = GET_IEDEXT_ADDR(ied);
int ret;
long long end_tm = (long long)(LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime) + LD_info->qvvr[LD_info->qvvr_idx].QVVR_time; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>dz<EFBFBD><C7B3><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>ʱ<EFBFBD><CAB1>
/*ret = transfer_json_qvvr_data(g_node_id, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ʹ<EFBFBD><CAB9>
LD_info->line_id, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LD_info->qvvr[LD_info->qvvr_idx].QVVR_Amg, LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime, LD_info->qvvr[LD_info->qvvr_idx].QVVR_time, end_tm, LD_info->qvvr[LD_info->qvvr_idx].QVVR_type, //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A1A2>ʼʱ<CABC><EFBFBD><E4A1A2><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A1A2>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
"", "", //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>Ϊ<EFBFBD><CEAA>
LD_info->mp_id, LD_info->qvvr[LD_info->qvvr_idx].QVVR_Rptname, ied_usr->dev_type);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3>ļ<EFBFBD><C4BC>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD>¼<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD>
if(!ret)//ʧ<><CAA7>
{
printf("\n~~~~~~~~~~~~~~~~~ QVVR_json_data send error: line_id=%d \n",LD_info->line_id);
}*/
long long end_tm = (long long)(LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime) + LD_info->qvvr[LD_info->qvvr_idx].QVVR_time; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>dz<EFBFBD><C7B3><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
////////////////////////////////////////////////////////////////////////////////////////////////////////////
int find_paired = FALSE;
@@ -539,8 +530,13 @@ void processQVVR_end(LD_info_t* LD_info)
continue;
if (LD_info->qvvr[i].used_status != QVVR_DATA_RECEIVED)//<2F><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
continue;
//<2F><><EFBFBD><EFBFBD>ijλ<C4B3>õIJ<C3B5><C4B2><EFBFBD>Ҳû<D2B2>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>λ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ͵<CDBA>ǰλ<C7B0>õIJ<C3B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
//<2F><><EFBFBD><EFBFBD>ijλ<C4B3>õIJ<C3B5><C4B2><EFBFBD>Ҳû<D2B2>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>λ<EFBFBD>õIJ<C3B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ͵<CDBA>ǰλ<C7B0>õIJ<C3B5><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>£<EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD>¼<EFBFBD>һ<EFBFBD>λᷢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ( (LD_info->qvvr[i].QVVR_type==0)||(LD_info->qvvr[i].QVVR_type==LD_info->qvvr[LD_info->qvvr_idx].QVVR_type) ) {
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("\n~~~~~~~this qvvr node type before record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_type);
printf("\n~~~~~~~now qvvr node type before record is %d~~~~~~~~~~ \n",LD_info->qvvr[LD_info->qvvr_idx].QVVR_type);
LD_info->qvvr[i].used_status = QVVR_DATA_PAIRED; //ƥ<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LD_info->qvvr[i].QVVR_type = LD_info->qvvr[LD_info->qvvr_idx].QVVR_type;
LD_info->qvvr[i].QVVR_PerTime = LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime;
@@ -549,10 +545,13 @@ void processQVVR_end(LD_info_t* LD_info)
LD_info->qvvr[LD_info->qvvr_idx].used_status = QVVR_DATA_NOT_USED; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ͷ<EFBFBD>
find_paired = TRUE;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("\n~~~~~~~qvvr node %d status is pair~~~~~~~~~~ \n",i);
//ƥ<><C6A5><EFBFBD><EFBFBD><EFBFBD>ٷ<EFBFBD>qvvr
ret = transfer_json_qvvr_data(g_node_id, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ʹ<EFBFBD><CAB9>
LD_info->line_id, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LD_info->qvvr[i].QVVR_Amg, LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime, LD_info->qvvr[LD_info->qvvr_idx].QVVR_time, end_tm, LD_info->qvvr[LD_info->qvvr_idx].QVVR_type, //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A1A2>ʼʱ<CABC><EFBFBD><E4A1A2><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A1A2>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
LD_info->qvvr[LD_info->qvvr_idx].QVVR_Amg, LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime, LD_info->qvvr[LD_info->qvvr_idx].QVVR_time, end_tm, LD_info->qvvr[LD_info->qvvr_idx].QVVR_type, //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A1A2>ʼʱ<CABC><EFBFBD><E4A1A2><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A1A2>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
"", "", //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>Ϊ<EFBFBD><CEAA>
LD_info->mp_id, LD_info->qvvr[LD_info->qvvr_idx].QVVR_Rptname, ied_usr->dev_type);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3>ļ<EFBFBD><C4BC>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD>¼<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD>
if(!ret)//ʧ<><CAA7>
@@ -592,6 +591,7 @@ QVVR_t* find_qvvr_by_trig_tm(LD_info_t* LD_info, long long trig_tm)
// <20><><EFBFBD>㵱ǰ QVVR <20><><EFBFBD>ݵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB4A5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
diff = abs(LD_info->qvvr[i].QVVR_time - trig_tm);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("QVVRTIME:%lld >>>>> COMTRADE trig_tm:%lld >>>>> diff:%lld\n",LD_info->qvvr[i].QVVR_time,trig_tm,diff);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> QVVR <20><><EFBFBD>ݵ<EFBFBD>״̬<D7B4><CCAC> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><>QVVR_DATA_PAIRED<45><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>С<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD> 1<><31><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>