更新:1、使用VS code+cmake重新编译,编译器保持不变;
2、修复若干逻辑bug,具体参考BUG_FIX_REPORT.md Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#include "data_process.h"
|
||||
#include "memory.h"
|
||||
#include <QVector>
|
||||
#include <qmath.h>
|
||||
#include <cstring>
|
||||
#include <vector>
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
@@ -11,7 +11,6 @@ using namespace std;
|
||||
/*******************************************************************************/
|
||||
/*******************************************************************************/
|
||||
|
||||
|
||||
//数据预处理
|
||||
int Data_Process::data_preprocess(struct DataRev Data_Input[150])
|
||||
{
|
||||
@@ -22,7 +21,7 @@ int Data_Process::data_preprocess(struct DataRev Data_Input[150])
|
||||
if(Data_Input[0].point_type == 0) //tws数据
|
||||
{
|
||||
data_num=min(Data_Input[0].Point_Sum, 150);
|
||||
//qDebug() << "TARGET azi beam idx:" <<Data_Input[0].Beam_index_aiz;
|
||||
//std::cout << "TARGET azi beam idx:" <<Data_Input[0].Beam_index_aiz;
|
||||
for (int i=0; i<data_num;i++)
|
||||
{
|
||||
PointRecv Data_buffer_temp;
|
||||
@@ -61,10 +60,10 @@ int Data_Process::data_preprocess(struct DataRev Data_Input[150])
|
||||
|
||||
else if(Data_Input[0].point_type == 1) //tas数据
|
||||
{
|
||||
// qDebug() << "TAS TARGET :" <<Data_Input[0].TAS_track_index;
|
||||
//qDebug() << "TAS time :" <<Data_Input[0].CPI_time;
|
||||
// std::cout << "TAS TARGET :" <<Data_Input[0].TAS_track_index;
|
||||
//std::cout << "TAS time :" <<Data_Input[0].CPI_time;
|
||||
|
||||
data_num=Data_Input[0].Point_Sum;
|
||||
data_num = min(max(Data_Input[0].Point_Sum, 0), 150);
|
||||
TAS_track_idx = Data_Input[0].TAS_track_index;
|
||||
latest_timestamp = Data_Input[0].CPI_time;
|
||||
for (int i=0; i<data_num;i++)
|
||||
@@ -88,7 +87,7 @@ int Data_Process::data_preprocess(struct DataRev Data_Input[150])
|
||||
|
||||
Data_buffer_tas.push_back(Data_buffer_temp);
|
||||
|
||||
// qDebug() << "Azimuth:" << Data_Input[i].Azimuth
|
||||
// std::cout << "Azimuth:" << Data_Input[i].Azimuth
|
||||
// << "Range:" << Data_Input[i].Range
|
||||
// << "EL:" << Data_Input[i].Elevation
|
||||
// << "CPI_Time"<< Data_Input[i].CPI_time
|
||||
@@ -106,8 +105,6 @@ int Data_Process::data_preprocess(struct DataRev Data_Input[150])
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//数据处理
|
||||
int Data_Process::track_process(struct Track Trust_Track_Output[MAX_TRACK_NUM][10],
|
||||
int *Trust_track_num_Output,
|
||||
@@ -121,12 +118,10 @@ int model)
|
||||
{
|
||||
|
||||
dot_coh.dot_coh_process_buff(&Data_buffer,&point_recv,Work_Parameter);
|
||||
//qDebug() << "point_recv :" <<point_recv.size();
|
||||
QVector<PointRecv>().swap(Data_buffer);
|
||||
//std::cout << "point_recv :" <<point_recv.size();
|
||||
std::vector<PointRecv>().swap(Data_buffer);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(model==1)
|
||||
{
|
||||
*Trust_track_num_Output=0; //航迹更新数
|
||||
@@ -149,11 +144,11 @@ int model)
|
||||
Trust_Track_Output,
|
||||
Trust_track_num_Output,
|
||||
Work_Parameter);
|
||||
// qDebug() << "point_recv: " <<point_recv.size();
|
||||
// qDebug() << "trust_track: " <<trust_track.size();
|
||||
// qDebug() << "temp_track: " <<temp_track.size();
|
||||
// qDebug() << "Trust_track_num_Output: " <<*Trust_track_num_Output;
|
||||
// qDebug() << "Track_die_num_Output: " <<*Track_die_num_Output;
|
||||
// std::cout << "point_recv: " <<point_recv.size();
|
||||
// std::cout << "trust_track: " <<trust_track.size();
|
||||
// std::cout << "temp_track: " <<temp_track.size();
|
||||
// std::cout << "Trust_track_num_Output: " <<*Trust_track_num_Output;
|
||||
// std::cout << "Track_die_num_Output: " <<*Track_die_num_Output;
|
||||
|
||||
}
|
||||
|
||||
@@ -167,11 +162,11 @@ int model)
|
||||
|
||||
// if(point_recv_tas.size()>0)
|
||||
// {
|
||||
// qDebug() << "point_recv_tas :" <<point_recv_tas[0].Azimuth/PI*180<<" "<<point_recv_tas[0].Range;
|
||||
// std::cout << "point_recv_tas :" <<point_recv_tas[0].Azimuth/PI*180<<" "<<point_recv_tas[0].Range;
|
||||
// }
|
||||
//qDebug() << "TAS process :" << TAS_track_idx << "p a r:"<<point_recv_tas[0].Point_Sum<<" " <<point_recv_tas[0].Azimuth/PI*180<<" "<<point_recv_tas[0].Range;
|
||||
//std::cout << "TAS process :" << TAS_track_idx << "p a r:"<<point_recv_tas[0].Point_Sum<<" " <<point_recv_tas[0].Azimuth/PI*180<<" "<<point_recv_tas[0].Range;
|
||||
|
||||
QVector<PointRecv>().swap(Data_buffer_tas);//凝聚完毕 清除Data_buffer
|
||||
std::vector<PointRecv>().swap(Data_buffer_tas);//凝聚完毕 清除Data_buffer
|
||||
|
||||
track_asso_tas.track_asso_process_tas(&point_recv_tas, //点迹文件
|
||||
&trust_track, //航迹文件
|
||||
@@ -182,22 +177,18 @@ int model)
|
||||
latest_timestamp //最新时间戳
|
||||
);
|
||||
|
||||
|
||||
QVector<PointRecv>().swap(point_recv_tas); //清除 point_recv_tas
|
||||
std::vector<PointRecv>().swap(point_recv_tas); //清除 point_recv_tas
|
||||
|
||||
track_die_tas.track_die_process_tas( &trust_track,
|
||||
Track_die_Index_Output,
|
||||
Track_die_num_Output);
|
||||
|
||||
|
||||
//qDebug() << "Extrapolate_round :" << trust_track[TAS_track_idx].Extrapolate_round;
|
||||
//std::cout << "Extrapolate_round :" << trust_track[TAS_track_idx].Extrapolate_round;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//波束控制
|
||||
void Data_Process::Beam_Ctrl(struct TrackingBeam *Tracking_beam,
|
||||
struct Track Trust_Track_Output[][10],
|
||||
@@ -212,6 +203,8 @@ int Data_Process::track_process_parameters_initial(struct RadarPara Radar_Parame
|
||||
{
|
||||
|
||||
//工作参数设置
|
||||
if (Radar_Parameter.track_start_point_num < 3 || Radar_Parameter.track_start_point_num > 9)
|
||||
return -1;
|
||||
memcpy(&Work_Parameter, &Radar_Parameter, sizeof(RadarPara));
|
||||
|
||||
return 0;
|
||||
@@ -220,11 +213,12 @@ int Data_Process::track_process_parameters_initial(struct RadarPara Radar_Parame
|
||||
//数据处理参数修改
|
||||
int Data_Process::track_process_parameters_modify(struct RadarPara Radar_Parameter)
|
||||
{
|
||||
if (Radar_Parameter.track_start_point_num < 3 || Radar_Parameter.track_start_point_num > 9)
|
||||
return -1;
|
||||
memcpy(&Work_Parameter, &Radar_Parameter, sizeof(RadarPara));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//航迹清空函数
|
||||
int Data_Process::track_clear_all(void)
|
||||
{
|
||||
@@ -236,10 +230,17 @@ int Data_Process::track_clear_all(void)
|
||||
trust_track.clear();
|
||||
temp_track.clear();
|
||||
|
||||
// 同步清理内部缓存和状态,避免重连后输出幽灵航迹/幽灵波束
|
||||
dot_coh.reset();
|
||||
track_asso.reset();
|
||||
track_asso_tas.reset();
|
||||
track_init.reset();
|
||||
tas_ctrl.reset();
|
||||
last_beam_num = INT_MAX;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//手动航迹删除函数
|
||||
int Data_Process:: track_delete(int delete_track_num, //手动删除的航迹数目
|
||||
int delete_track_index[]) //手动删除的航迹号
|
||||
@@ -252,13 +253,12 @@ int Data_Process:: track_delete(int delete_track_num, //手动
|
||||
{
|
||||
|
||||
trust_track[j].manual_delete_flag=1;
|
||||
qDebug() << "Delete :" << trust_track[j].Track_Index;
|
||||
std::cout << "Delete :" << trust_track[j].Track_Index << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -272,7 +272,6 @@ int Data_Process:: tracking_start(int track_index) //需要手动
|
||||
trust_track[i].manual_tracking_flag = 1;
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -292,12 +291,8 @@ int Data_Process:: tracking_stop(int track_index) //需要手动转
|
||||
}
|
||||
|
||||
//手动打跟踪波束
|
||||
int Data_Process::tracking_point(float Azimuth)//方位角
|
||||
int Data_Process::tracking_point(float Azimuth)//方位角(当前接口未启用,保留空实现)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user