fix soe and add connect info

This commit is contained in:
lnk
2025-03-11 21:07:17 +08:00
parent f2556662ed
commit d1242aae7a
8 changed files with 99 additions and 20 deletions

View File

@@ -516,7 +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><EFBFBD><E4A3AC><EFBFBD><EFBFBD>
////////////////////////////////////////////////////////////////////////////////////////////////////////////
int find_paired = FALSE;
@@ -526,16 +526,41 @@ void processQVVR_end(LD_info_t* LD_info)
return;
for (i=0;i<QVVR_NUM;i++) { //<2F>ݽ<EFBFBD>/<2F><><EFBFBD><EFBFBD>/<2F>жϵȽ<CFB5><C8BD><EFBFBD><EBB4A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD>λ<EFBFBD><CEBB>
if (i==LD_info->qvvr_idx) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㵱ǰ<E3B5B1><C7B0><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
if (i==LD_info->qvvr_idx) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㵱ǰ<E3B5B1><C7B0><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>,<2C><>һ<EFBFBD>μ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>κ󣬵<CEBA>һ<EFBFBD>εĵ<CEB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>ŵ<EFBFBD>ΪQVVR_DATA_RECEIVED<45><44>
//<2F>ڶ<EFBFBD><DAB6>μ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Σ<EFBFBD><CEA3>ڶ<EFBFBD><DAB6>εĵ<CEB5>һ<EFBFBD><D2BB><EFBFBD>¼<EFBFBD>qvvr_idx=1<><31>1<EFBFBD><31><EFBFBD><EFBFBD>ΪQVVR_DATA_RECEIVED<45><44>QVVR_start=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>
//<2F>ڶ<EFBFBD><DAB6>εĵڶ<C4B5><DAB6><EFBFBD><EFBFBD>¼<EFBFBD>qvvr_idx=1<><31>QVVR_start=0<><30><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>0<EFBFBD>У<EFBFBD>0ΪQVVR_DATA_PAIRED
//<2F>ڶ<EFBFBD><DAB6>εĵ<CEB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>qvvr_idx=2<><32>2<EFBFBD><32><EFBFBD><EFBFBD>ΪQVVR_DATA_RECEIVED<45><44>QVVR_start=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
//<2F>ڶ<EFBFBD><DAB6><EFBFBD>¼<EFBFBD><C2BC>ƥ<EFBFBD><C6A5><EFBFBD>ļ<EFBFBD>ʱӦ<CAB1><D3A6>ƥ<EFBFBD>䵽1<E4B5BD>ŵ<EFBFBD>qvvrtime<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><31><C3BB>QVVR_DATA_PAIRED<45><44><EFBFBD>ԶԲ<D4B6><D4B2>ϣ<EFBFBD><CFA3><EFBFBD>Ҫ<EFBFBD>޸<EFBFBD><DEB8>߼<EFBFBD>
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>£<EFBFBD><C2A3>ݽ<EFBFBD><DDBD>¼<EFBFBD>һ<EFBFBD>λᷢ<CEBB><E1B7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ж<EFBFBD>lnk20250311
if (LD_info->qvvr[LD_info->qvvr_idx].QVVR_time - LD_info->qvvr[i].QVVR_time >110)
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>£<EFBFBD><C2A3>ݽ<EFBFBD><DDBD>¼<EFBFBD>һ<EFBFBD>λᷢ<CEBB><E1B7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
if ( (LD_info->qvvr[i].QVVR_type==0)||(LD_info->qvvr[i].QVVR_type==LD_info->qvvr[LD_info->qvvr_idx].QVVR_type) ) {
long long end_tm = (long long)(LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime*1000) + LD_info->qvvr[i].QVVR_time;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>dz<EFBFBD><C7B3><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf("\n~~~~~~~this qvvr node type before record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_type);
//printf("~~~~~~~this qvvr node type before record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_type);
//printf("~~~~~~~this qvvr node QVVR_PerTime before record is %f~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_PerTime);
//printf("~~~~~~~this qvvr node QVVR_Amg before record is %f~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_Amg);
//printf("~~~~~~~this qvvr node QVVR_time before record is %lld~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_time);
//printf("~~~~~~~this qvvr node used_status before record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].used_status);
//printf("~~~~~~~this qvvr node QVVR_start before record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_start);
//printf("~~~~~~~this qvvr node timestamp before record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].timestamp);
printf("\n~~~~~~~now qvvr node type before record is %d~~~~~~~~~~ \n",LD_info->qvvr[LD_info->qvvr_idx].QVVR_type);
printf("~~~~~~~now qvvr node QVVR_PerTime before record is %f~~~~~~~~~~ \n",LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime);
printf("~~~~~~~now qvvr node QVVR_Amg before record is %f~~~~~~~~~~ \n",LD_info->qvvr[LD_info->qvvr_idx].QVVR_Amg);
printf("~~~~~~~now qvvr node QVVR_time before record is %lld~~~~~~~~~~ \n",LD_info->qvvr[LD_info->qvvr_idx].QVVR_time);
printf("~~~~~~~now qvvr node used_status before record is %d~~~~~~~~~~ \n",LD_info->qvvr[LD_info->qvvr_idx].used_status);
printf("~~~~~~~now qvvr node QVVR_start before record is %d~~~~~~~~~~ \n",LD_info->qvvr[LD_info->qvvr_idx].QVVR_start);
printf("~~~~~~~now qvvr node timestamp before record is %d~~~~~~~~~~ \n",LD_info->qvvr[LD_info->qvvr_idx].timestamp);
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;
@@ -545,13 +570,28 @@ 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);
printf("~~~~~~~this qvvr node QVVR_PerTime after record is %f~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_PerTime);
printf("~~~~~~~this qvvr node QVVR_Amg after record is %f~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_Amg);
printf("~~~~~~~this qvvr node used_status after record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].used_status);
printf("~~~~~~~this qvvr node QVVR_type after record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_type);
printf("~~~~~~~this qvvr node QVVR_time after record is %lld~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_time);
printf("~~~~~~~this qvvr node timestamp before record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].timestamp);
printf("~~~~~~~this qvvr node QVVR_start before record is %d~~~~~~~~~~ \n",LD_info->qvvr[i].QVVR_start);
//ƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٷ<EFBFBD>qvvr
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//printf("\n~~~~~~~qvvr node %d status is pair~~~~~~~~~~ \n",i);
//printf("Before calling: &QVVR_Amg = %p, &QVVR_PerTime = %p\n",
//&LD_info->qvvr[LD_info->qvvr_idx].QVVR_Amg,
//&LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime);
//ƥ<><C6A5><EFBFBD><EFBFBD><EFBFBD>ٷ<EFBFBD>qvvr<76><72><EFBFBD><EFBFBD>ʼʱ<CABC><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD>ǵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>ʱֻ<CAB1><D6BB>ʱ<EFBFBD><CAB1>û<EFBFBD><C3BB>ֵ<EFBFBD><D6B5><EFBFBD>Ǹ<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>
(double)LD_info->qvvr[LD_info->qvvr_idx].QVVR_Amg,
(double)LD_info->qvvr[LD_info->qvvr_idx].QVVR_PerTime,
LD_info->qvvr[i].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>