fix soe
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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>ʽ
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user