更新:1、新增数据记录功能,将过程数据录入数据库;
2、增加输入点迹数据、凝聚后点迹数据记录; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -2,6 +2,9 @@
|
||||
#include <cmath>
|
||||
#include <cstring>
|
||||
#include <vector>
|
||||
#include "rdp_record.h"
|
||||
#include "rdp_record_entity.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
int Dot_Coh::dot_coh_process(std::vector <PointRecv> *data_input,
|
||||
@@ -14,20 +17,20 @@ int Dot_Coh::dot_coh_process(std::vector <PointRecv> *data_input,
|
||||
|
||||
for (unsigned int loop_of_point=0; loop_of_point<data_input->size()-1;loop_of_point++ )
|
||||
{
|
||||
if( (*data_input)[loop_of_point].Use_Flag!=1)
|
||||
if( (*data_input)[loop_of_point].use_flag!=1)
|
||||
{
|
||||
float point_0_R=static_cast<float>((*data_input)[loop_of_point].Range);
|
||||
float point_0_V=static_cast<float>((*data_input)[loop_of_point].Velocity);
|
||||
float point_0_F=static_cast<float>((*data_input)[loop_of_point].Azimuth);
|
||||
float point_0_A=static_cast<float>((*data_input)[loop_of_point].Amplitude);
|
||||
float point_0_R=static_cast<float>((*data_input)[loop_of_point].range);
|
||||
float point_0_V=static_cast<float>((*data_input)[loop_of_point].velocity);
|
||||
float point_0_F=static_cast<float>((*data_input)[loop_of_point].azimuth);
|
||||
float point_0_A=static_cast<float>((*data_input)[loop_of_point].amplitude);
|
||||
for (unsigned int i=loop_of_point+1;i<data_input->size();i++)
|
||||
{
|
||||
if((*data_input)[loop_of_point].Use_Flag!=1 && (*data_input)[i].Use_Flag!=1)
|
||||
if((*data_input)[loop_of_point].use_flag!=1 && (*data_input)[i].use_flag!=1)
|
||||
{
|
||||
float point_1_R=static_cast<float>((*data_input)[i].Range);
|
||||
float point_1_V=static_cast<float>((*data_input)[i].Velocity);
|
||||
float point_1_F=static_cast<float>((*data_input)[i].Azimuth);
|
||||
float point_1_A=static_cast<float>((*data_input)[i].Amplitude);
|
||||
float point_1_R=static_cast<float>((*data_input)[i].range);
|
||||
float point_1_V=static_cast<float>((*data_input)[i].velocity);
|
||||
float point_1_F=static_cast<float>((*data_input)[i].azimuth);
|
||||
float point_1_A=static_cast<float>((*data_input)[i].amplitude);
|
||||
|
||||
//凝聚条件: 距离、方位接近
|
||||
if(Work_Parameter.work_mode == 0)
|
||||
@@ -36,16 +39,16 @@ int Dot_Coh::dot_coh_process(std::vector <PointRecv> *data_input,
|
||||
if( (fabs(point_0_R-point_1_R)<=DOT_COH_RANGE && delta_F <=DOT_COH_AZI/180.0*PI && fabs(point_0_V-point_1_V)<=DOT_COH_V)//
|
||||
&& point_0_A <point_1_A )//
|
||||
{
|
||||
point_0_R=static_cast<float>((*data_input)[i].Range);
|
||||
point_0_V=static_cast<float>((*data_input)[i].Velocity);
|
||||
point_0_A=static_cast<float>((*data_input)[i].Amplitude);
|
||||
point_0_F=static_cast<float>((*data_input)[i].Azimuth);
|
||||
(*data_input)[loop_of_point].Use_Flag=1;
|
||||
point_0_R=static_cast<float>((*data_input)[i].range);
|
||||
point_0_V=static_cast<float>((*data_input)[i].velocity);
|
||||
point_0_A=static_cast<float>((*data_input)[i].amplitude);
|
||||
point_0_F=static_cast<float>((*data_input)[i].azimuth);
|
||||
(*data_input)[loop_of_point].use_flag=1;
|
||||
}
|
||||
else if( (fabs(point_0_R-point_1_R)<=DOT_COH_RANGE && delta_F <=DOT_COH_AZI/180.0*PI && fabs(point_0_V-point_1_V)<=DOT_COH_V)//
|
||||
&& point_0_A >= point_1_A)//
|
||||
{
|
||||
(*data_input)[i].Use_Flag=1;
|
||||
(*data_input)[i].use_flag=1;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -54,16 +57,16 @@ int Dot_Coh::dot_coh_process(std::vector <PointRecv> *data_input,
|
||||
if( (fabs(point_0_R-point_1_R)<=DOT_COH_RANGE && delta_F <=DOT_COH_AZI/180.0*PI )//
|
||||
&& point_0_A <point_1_A )//
|
||||
{
|
||||
point_0_R=static_cast<float>((*data_input)[i].Range);
|
||||
point_0_V=static_cast<float>((*data_input)[i].Velocity);
|
||||
point_0_A=static_cast<float>((*data_input)[i].Amplitude);
|
||||
point_0_F=static_cast<float>((*data_input)[i].Azimuth);
|
||||
(*data_input)[loop_of_point].Use_Flag=1;
|
||||
point_0_R=static_cast<float>((*data_input)[i].range);
|
||||
point_0_V=static_cast<float>((*data_input)[i].velocity);
|
||||
point_0_A=static_cast<float>((*data_input)[i].amplitude);
|
||||
point_0_F=static_cast<float>((*data_input)[i].azimuth);
|
||||
(*data_input)[loop_of_point].use_flag=1;
|
||||
}
|
||||
else if( (fabs(point_0_R-point_1_R)<=DOT_COH_RANGE && delta_F <=DOT_COH_AZI/180.0*PI )//
|
||||
&& point_0_A >= point_1_A)//
|
||||
{
|
||||
(*data_input)[i].Use_Flag=1;
|
||||
(*data_input)[i].use_flag=1;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -77,7 +80,7 @@ int Dot_Coh::dot_coh_process(std::vector <PointRecv> *data_input,
|
||||
std::vector <PointRecv>::iterator Iter;
|
||||
for (Iter=data_input->begin(); Iter!=data_input->end();)
|
||||
{
|
||||
if((*Iter).Use_Flag==1 || (*Iter).Range <R_MIN || (*Iter).Range > R_MAX )
|
||||
if((*Iter).use_flag==1 || (*Iter).range <R_MIN || (*Iter).range > R_MAX )
|
||||
{
|
||||
data_input->erase(Iter);
|
||||
Iter=data_input->begin();
|
||||
@@ -130,20 +133,20 @@ int Dot_Coh::dot_coh_process_buff( std::vector <PointRecv> *data_input,
|
||||
|
||||
for (unsigned int loop_of_point=0; loop_of_point<data_tmp.size()-1;loop_of_point++ )
|
||||
{
|
||||
if( data_tmp[loop_of_point].Use_Flag!=1)
|
||||
if( data_tmp[loop_of_point].use_flag!=1)
|
||||
{
|
||||
float point_0_R=static_cast<float>(data_tmp[loop_of_point].Range);
|
||||
float point_0_V=static_cast<float>(data_tmp[loop_of_point].Velocity);
|
||||
float point_0_F=static_cast<float>(data_tmp[loop_of_point].Azimuth);
|
||||
float point_0_A=static_cast<float>(data_tmp[loop_of_point].Amplitude);
|
||||
float point_0_R=static_cast<float>(data_tmp[loop_of_point].range);
|
||||
float point_0_V=static_cast<float>(data_tmp[loop_of_point].velocity);
|
||||
float point_0_F=static_cast<float>(data_tmp[loop_of_point].azimuth);
|
||||
float point_0_A=static_cast<float>(data_tmp[loop_of_point].amplitude);
|
||||
for (unsigned int i=loop_of_point+1;i<data_tmp.size();i++)
|
||||
{
|
||||
if(data_tmp[loop_of_point].Use_Flag!=1 && data_tmp[i].Use_Flag!=1)
|
||||
if(data_tmp[loop_of_point].use_flag!=1 && data_tmp[i].use_flag!=1)
|
||||
{
|
||||
float point_1_R=static_cast<float>(data_tmp[i].Range);
|
||||
float point_1_V=static_cast<float>(data_tmp[i].Velocity);
|
||||
float point_1_F=static_cast<float>(data_tmp[i].Azimuth);
|
||||
float point_1_A=static_cast<float>(data_tmp[i].Amplitude);
|
||||
float point_1_R=static_cast<float>(data_tmp[i].range);
|
||||
float point_1_V=static_cast<float>(data_tmp[i].velocity);
|
||||
float point_1_F=static_cast<float>(data_tmp[i].azimuth);
|
||||
float point_1_A=static_cast<float>(data_tmp[i].amplitude);
|
||||
|
||||
//凝聚条件: 距离、方位接近
|
||||
if(Work_Parameter.work_mode == 0)
|
||||
@@ -152,16 +155,16 @@ int Dot_Coh::dot_coh_process_buff( std::vector <PointRecv> *data_input,
|
||||
if( (fabs(point_0_R-point_1_R)<=DOT_COH_RANGE && delta_F <=DOT_COH_AZI/180.0*PI && fabs(point_0_V-point_1_V)<=DOT_COH_V)//
|
||||
&& point_0_A <point_1_A )//
|
||||
{
|
||||
point_0_R=static_cast<float>(data_tmp[i].Range);
|
||||
point_0_V=static_cast<float>(data_tmp[i].Velocity);
|
||||
point_0_A=static_cast<float>(data_tmp[i].Amplitude);
|
||||
point_0_F=static_cast<float>(data_tmp[i].Azimuth);
|
||||
data_tmp[loop_of_point].Use_Flag=1;
|
||||
point_0_R=static_cast<float>(data_tmp[i].range);
|
||||
point_0_V=static_cast<float>(data_tmp[i].velocity);
|
||||
point_0_A=static_cast<float>(data_tmp[i].amplitude);
|
||||
point_0_F=static_cast<float>(data_tmp[i].azimuth);
|
||||
data_tmp[loop_of_point].use_flag=1;
|
||||
}
|
||||
else if( (fabs(point_0_R-point_1_R)<=DOT_COH_RANGE && delta_F <=DOT_COH_AZI/180.0*PI && fabs(point_0_V-point_1_V)<=DOT_COH_V)//
|
||||
&& point_0_A >= point_1_A)//
|
||||
{
|
||||
data_tmp[i].Use_Flag=1;
|
||||
data_tmp[i].use_flag=1;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -170,16 +173,16 @@ int Dot_Coh::dot_coh_process_buff( std::vector <PointRecv> *data_input,
|
||||
if( (fabs(point_0_R-point_1_R)<=DOT_COH_RANGE && delta_F <=DOT_COH_AZI/180.0*PI )//
|
||||
&& point_0_A <point_1_A )//
|
||||
{
|
||||
point_0_R=static_cast<float>(data_tmp[i].Range);
|
||||
point_0_V=static_cast<float>(data_tmp[i].Velocity);
|
||||
point_0_A=static_cast<float>(data_tmp[i].Amplitude);
|
||||
point_0_F=static_cast<float>(data_tmp[i].Azimuth);
|
||||
data_tmp[loop_of_point].Use_Flag=1;
|
||||
point_0_R=static_cast<float>(data_tmp[i].range);
|
||||
point_0_V=static_cast<float>(data_tmp[i].velocity);
|
||||
point_0_A=static_cast<float>(data_tmp[i].amplitude);
|
||||
point_0_F=static_cast<float>(data_tmp[i].azimuth);
|
||||
data_tmp[loop_of_point].use_flag=1;
|
||||
}
|
||||
else if( (fabs(point_0_R-point_1_R)<=DOT_COH_RANGE && delta_F <=DOT_COH_AZI/180.0*PI )//
|
||||
&& point_0_A >= point_1_A)//
|
||||
{
|
||||
data_tmp[i].Use_Flag=1;
|
||||
data_tmp[i].use_flag=1;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -193,7 +196,7 @@ int Dot_Coh::dot_coh_process_buff( std::vector <PointRecv> *data_input,
|
||||
std::vector <PointRecv>::iterator Iter;
|
||||
for (Iter=data_tmp.begin(); Iter!=data_tmp.end();)
|
||||
{
|
||||
if((*Iter).Use_Flag==1 || (*Iter).Range <R_MIN || (*Iter).Range > R_MAX )
|
||||
if((*Iter).use_flag==1 || (*Iter).range <R_MIN || (*Iter).range > R_MAX )
|
||||
{
|
||||
data_tmp.erase(Iter);
|
||||
Iter=data_tmp.begin();
|
||||
@@ -223,7 +226,8 @@ int Dot_Coh::dot_coh_process_buff( std::vector <PointRecv> *data_input,
|
||||
|
||||
for (size_t i=0;i<data_input_buff.size();i++)
|
||||
{
|
||||
(*point_recv).push_back(data_input_buff[i]);
|
||||
(*point_recv).push_back(data_input_buff[i]);
|
||||
RDP_RECORD(RdpRecPointCohesionTWS(data_input_buff[i]));
|
||||
}
|
||||
|
||||
std::vector<PointRecv>().swap(data_input_buff);
|
||||
|
||||
Reference in New Issue
Block a user