This commit is contained in:
lnk
2025-03-10 21:26:17 +08:00
parent 2e50baee04
commit 3347361203
6 changed files with 120 additions and 27 deletions

View File

@@ -11778,7 +11778,7 @@ void printLedgerinshell(const ied_usr_t& ied_usr, QIODevice* outputDevice) {
outputDevice->write("\r\x1B[K");outputDevice->write(" |-- qvvr_idx: " + QByteArray::number(ied_usr.LD_info[i].qvvr_idx) + "\n");
outputDevice->write("\r\x1B[K");outputDevice->write(" |-- QVVRs:\n");
for (int j = 0; j < 256; ++j) {
if (ied_usr.LD_info[i].qvvr[j].used_status != 0) {
if (ied_usr.LD_info[i].qvvr[j].used_status != QVVR_DATA_NOT_USED) {
outputDevice->write("\r\x1B[K");outputDevice->write(" |-- QVVR[" + QByteArray::number(j) + "]:\n");
outputDevice->write("\r\x1B[K");outputDevice->write(" |-- used_status: " + QByteArray::number(ied_usr.LD_info[i].qvvr[j].used_status) + "\n");
outputDevice->write("\r\x1B[K");outputDevice->write(" |-- QVVR_start: " + QByteArray::number(ied_usr.LD_info[i].qvvr[j].QVVR_start) + "\n");
@@ -14091,8 +14091,28 @@ void handleUploadResponse(const std::string& response, char* wavepath) {
std::cout << "Uploaded File Name: " << fileName << std::endl;
std::cout << "File URL: " << url << std::endl;
//<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
strcpy(wavepath, nameItem->valuestring);
// <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);
}
} else {
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB> '/'<27><>ֱ<EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
strcpy(wavepath, name.c_str());
}
std::cout << "wavepath: " << wavepath << std::endl;
}
} else {
std::cerr << "Error: Missing expected fields in JSON response." << std::endl;

View File

@@ -4003,7 +4003,10 @@ void connectlog_pgsql(char* id,char* datetime,int status)
//std::cout << "jsonString: " << jsonString << std::endl;////<2F><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>Ĵ<EFBFBD>ӡ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>Զ<EFBFBD><D4B6>
SendJsonAPI_web(WEB_COMFLAG, "", jsonString,&ptr);
SendJsonAPI_web(WEB_COMFLAG, "", jsonString,&ptr);//<2F><>ʹ<EFBFBD>ýӿ<C3BD>lnk20250310
//ʹ<>ö<EFBFBD><C3B6><EFBFBD>
//if()//<2F><>̬<EFBFBD><CCAC><EFBFBD>ϴ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD> ptr <20>Ƿ<EFBFBD>Ϊ NULL<4C><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD> std::string <20><>ʼ<EFBFBD><CABC>ʧ<EFBFBD><CAA7>
@@ -4222,7 +4225,7 @@ char* mp_id,char* Qvvr_rptname,char* devtype) //
//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>Ϊ<EFBFBD><CEAA>http<74>ӿڲ<D3BF><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
cJSON_AddStringToObject(root, "monitorId", mp_id);
cJSON_AddNumberToObject(root, "amplitude", mag);
cJSON_AddNumberToObject(root, "duration", dur * 1000);
cJSON_AddNumberToObject(root, "duration", dur);
cJSON_AddNumberToObject(root, "eventType", dis_kind);
// <20><>ʽ<EFBFBD><CABD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>
char start_time_str[25];
@@ -4232,8 +4235,9 @@ char* mp_id,char* Qvvr_rptname,char* devtype) //
// <20><><EFBFBD>Ӻ<EFBFBD><D3BA>벿<EFBFBD><EBB2BF>
snprintf(start_time_str + strlen(start_time_str), sizeof(start_time_str) - strlen(start_time_str), ".%03lld", start_tm % 1000);
cJSON_AddStringToObject(root, "startTime", start_time_str);
cJSON_AddStringToObject(root, "wavePathcfg", uuid_cfg); // <20><>̬<EFBFBD><CCAC><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
cJSON_AddStringToObject(root, "wavePathdat", uuid_dat); // <20><>̬<EFBFBD><CCAC><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
//cJSON_AddStringToObject(root, "wavePathcfg", uuid_cfg); // <20><>̬<EFBFBD><CCAC><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
//cJSON_AddStringToObject(root, "wavePathdat", uuid_dat); // <20><>̬<EFBFBD><CCAC><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
cJSON_AddStringToObject(root, "wavePath", uuid_dat);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𲿷<EFBFBD>
if (c_xmlcfg.WavePhasicFlag == "1") {
QString Qvvr_Rptname;//ת<><D7AA>Ϊqstring<6E><67>ʽ

View File

@@ -1957,6 +1957,7 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
printf(">>>>>>>> extract_timestamp_from_cfg_file end \n");
if (ret2 ==APR_SUCCESS) {
//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); //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>Ĵ<EFBFBD><C4B4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ƥ<EFBFBD><C6A5><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>̬<EFBFBD>¼<EFBFBD>
if (qvvr) {
char* uuid_cfg = (char*)malloc(65 * sizeof(char));//<2F>ϴ<EFBFBD><CFB4>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
@@ -1965,8 +1966,8 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
char* filename_dat = (char*)malloc(100 * sizeof(char));
//lnk202411-5 <20><>¼web<65><62><EFBFBD>ص<EFBFBD>·<EFBFBD><C2B7>+<2B>ļ<EFBFBD><C4BC><EFBFBD>
char* wavepath_cfg = (char*)malloc(168 * sizeof(char));
char* wavepath_dat = (char*)malloc(168 * sizeof(char));
char* wavepath_cfg = (char*)malloc(256 * sizeof(char));
char* wavepath_dat = (char*)malloc(256 * sizeof(char));
/*<2A>ϴ<EFBFBD>.cfg<66><67>.dat<61><74><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>*/
char linux_cmd[256] = {0};
printf(">>>>>>>> qvvr ok end \n");
@@ -1991,7 +1992,26 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
}
//LNK20241031ʹ<31><CAB9>JSON<4F><4E><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ϴ<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>л<EFBFBD>ȡ
else if (FILE_FLAG == 4) {
SOEFileWeb(loc_file_fullname_cfg, oss_file_fullname_cfg, wavepath_cfg);
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);
SOEFileWeb(loc_file_fullname_cfg, mq_file_fullname_cfg, wavepath_cfg);
}
else
{
@@ -2020,7 +2040,26 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
}
//LNK20241031ʹ<31><CAB9>JSON<4F><4E><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ϴ<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>л<EFBFBD>ȡ
else if (FILE_FLAG == 4) {
SOEFileWeb(loc_file_fullname_dat, oss_file_fullname_dat, wavepath_dat);
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);
SOEFileWeb(loc_file_fullname_cfg, mq_file_fullname_dat, wavepath_cfg);
}
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>*/
@@ -2043,9 +2082,9 @@ apr_status_t call_cn_wavelist(LD_info_t *LD_info )
else if(FILE_FLAG==4)//lnk20241031<33><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬web<65><62>Ϣ
{
//<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>䲿<EFBFBD>ֲ<EFBFBD><D6B2>޸<EFBFBD>
size_t cfg_len = strlen(wavepath_cfg);
size_t cfg_len = strlen(wavepath_cfg) + 1;
char* cfg_result = (char*)malloc(cfg_len * sizeof(char)); // <20><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B9BB><EFBFBD>ڴ<EFBFBD><DAB4>ռ<EFBFBD>
size_t dat_len = strlen(wavepath_dat);
size_t dat_len = strlen(wavepath_dat) + 1;
char* dat_result = (char*)malloc(dat_len * sizeof(char)); // <20><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B9BB><EFBFBD>ڴ<EFBFBD><DAB4>ռ<EFBFBD>
if (cfg_result != NULL && dat_result != NULL) {

View File

@@ -244,7 +244,19 @@ static ST_RET process_jou_entry(loginfo_t *loginfo,apr_time_t t,
char* q = mms_dec_data.data_item[ii].u.data_str;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
printf("q[0] = %c ,q[1] = %c !!!!!",q[0],q[1]);
if (q != NULL)
{
int i;
for (i = 0; q[i] != '\0'; i++)
{
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD> '\0' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>ų<EFBFBD><C5B3><EFBFBD> '\0' */
if (q[i] == '\0')
continue;
printf("q[%d] = %c\n", i, q[i]);
}
printf("!!!!!\n");
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lnk20250307
if (q[0] == '0' && q[1] == '0'){
quality = 0;

View File

@@ -2453,7 +2453,7 @@ void my_local_to_data(ST_CHAR* datptr, SD_CONST RUNTIME_TYPE* rt_head,
break;
case RT_BIT_STRING:
myLocToTextBs((ST_UCHAR*)datptr, rt_ptr, tmpBuf);
myLocToTextBs((ST_UCHAR*)datptr, rt_ptr, tmpBuf);//<2F><><EFBFBD><EFBFBD><E6B4A2><EFBFBD>ڴ<EFBFBD><DAB4>еı<D0B5><C4B1>ش<EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA>Ӧ<EFBFBD><D3A6><EFBFBD>ı<EFBFBD><C4B1>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD> '1' <20><> '0' <20><><EFBFBD>ɣ<EFBFBD>
strcpy(data->data_item[valid_item_num].comp_name, (const char*)attr_str);
data->data_item[valid_item_num].size = abs(rt_ptr->u.p.el_len);
data->data_item[valid_item_num].type = DATA_STR_TYPE;

View File

@@ -487,16 +487,18 @@ void processQVVR_data(LD_info_t* LD_info,char* FULL_FCDA_Name,double v)
LD_info->qvvr[LD_info->qvvr_idx].QVVR_start = (v>0.99) ? 1:0;
}
else if ( strstr(FULL_FCDA_Name,"VVaTm$mag$f") )
LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime = v;
LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime = (float)v;
else if ( strstr(FULL_FCDA_Name,"VVa$mag$f") )
LD_info->qvvr[LD_info->qvvr_idx].QVVR_Amg = v;
LD_info->qvvr[LD_info->qvvr_idx].QVVR_Amg = (float)v;
else {
if ( strstr(FULL_FCDA_Name,"DipStr$stVal") && (v>0.99) ) //<2F><>ѹ<EFBFBD>ݽ<EFBFBD>
LD_info->qvvr[LD_info->qvvr_idx].QVVR_type = 1;
LD_info->qvvr[LD_info->qvvr_idx].QVVR_type = 1210002;//<2F><><EFBFBD>սӿ<D5BD><D3BF>޸<EFBFBD>
else if ( strstr(FULL_FCDA_Name,"SwlStr$stVal") && (v>0.99) ) //<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>
LD_info->qvvr[LD_info->qvvr_idx].QVVR_type = 2;
LD_info->qvvr[LD_info->qvvr_idx].QVVR_type = 1210001;
else if ( strstr(FULL_FCDA_Name,"IntrStr$stVal") && (v>0.99) ) //<2F><>ѹ<EFBFBD>ж<EFBFBD>
LD_info->qvvr[LD_info->qvvr_idx].QVVR_type = 3;
LD_info->qvvr[LD_info->qvvr_idx].QVVR_type = 1210004;
}
if (strstr(FULL_FCDA_Name, "QVVR")) {
@@ -514,16 +516,16 @@ 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*1000) + 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>
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);
}
}*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////
int find_paired = FALSE;
@@ -546,6 +548,18 @@ 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;
//ƥ<><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>
"", "", //<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);
}
break;
}
}
@@ -578,13 +592,17 @@ 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);
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>
if ((LD_info->qvvr[i].used_status == QVVR_DATA_PAIRED) && (diff <= 1)) {
// <20><><EFBFBD><EFBFBD>ƥ<EFBFBD><EFBFBD><E4A3AC><EFBFBD>ظ<EFBFBD> QVVR <20><><EFBFBD>ݵ<EFBFBD>ָ<EFBFBD><D6B8>
printf(">>>>> pair QVVR success>>>>>> \n");
return &(LD_info->qvvr[i]);
}
}
printf(">>>>> pair QVVR fail>>>>>> \n");
// <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD> QVVR <20><><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD> NULL
return NULL;
}