更新:1、使用VS code+cmake重新编译,编译器保持不变;
2、修复若干逻辑bug,具体参考BUG_FIX_REPORT.md Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -1,17 +1,11 @@
|
||||
#include <tas_ctrl.h>
|
||||
#include "tas_ctrl.h"
|
||||
#include "coor_trans.h"
|
||||
#include <qmath.h>
|
||||
#include"memory.h"
|
||||
#include <QVector>
|
||||
#include <QDebug>
|
||||
#include <cmath>
|
||||
#include <cstring>
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
TAS_Ctrl::TAS_Ctrl()
|
||||
{
|
||||
memset(tas_target_queue,0,TAS_QUEUE_LENGTH*sizeof(Tracking_Target));
|
||||
@@ -19,13 +13,22 @@ TAS_Ctrl::TAS_Ctrl()
|
||||
tas_target_num=0;
|
||||
}
|
||||
|
||||
void TAS_Ctrl::tas_ctrl_process(QVector<Trust_Track> *trust_track,
|
||||
void TAS_Ctrl::reset()
|
||||
{
|
||||
memset(tas_target_queue,0,sizeof(tas_target_queue));
|
||||
tas_target_num=0;
|
||||
}
|
||||
|
||||
|
||||
void TAS_Ctrl::tas_ctrl_process(std::vector<Trust_Track> *trust_track,
|
||||
struct TrackingBeam *Tracking_beam,
|
||||
struct Track Trust_Track_Output[][10],
|
||||
int *Trust_track_num_Output,
|
||||
struct RadarPara Work_Parameter,
|
||||
qint64 latest_timestamp)
|
||||
long long latest_timestamp)
|
||||
{
|
||||
if (Trust_track_num_Output == 0) return;
|
||||
*Trust_track_num_Output = 0;
|
||||
tas_target_add(trust_track, Trust_Track_Output, Trust_track_num_Output,Work_Parameter);
|
||||
tas_target_del(trust_track, Trust_Track_Output, Trust_track_num_Output,Work_Parameter);
|
||||
tas_beam_output(trust_track,Tracking_beam,latest_timestamp);
|
||||
@@ -40,8 +43,7 @@ void TAS_Ctrl::tas_ctrl_process(QVector<Trust_Track> *trust_track,
|
||||
memcpy(&tas_target_queue[0], &tas_target_tmp, sizeof(Tracking_Target));
|
||||
};
|
||||
|
||||
|
||||
void TAS_Ctrl::tas_target_add(QVector<Trust_Track> *trust_track,
|
||||
void TAS_Ctrl::tas_target_add(std::vector<Trust_Track> *trust_track,
|
||||
struct Track Trust_Track_Output[][10],
|
||||
int *Trust_track_num_Output,
|
||||
struct RadarPara Work_Parameter)
|
||||
@@ -67,6 +69,9 @@ void TAS_Ctrl::tas_target_add(QVector<Trust_Track> *trust_track,
|
||||
{
|
||||
if(tas_target_queue[j].empty_flag==0)// && j%2==0)
|
||||
{
|
||||
if (*Trust_track_num_Output >= MAX_TRACK_NUM)
|
||||
break;
|
||||
|
||||
//插入跟踪队列
|
||||
tas_target_queue[j].Index=(*trust_track)[i].Track_Index;
|
||||
tas_target_queue[j].empty_flag=1;
|
||||
@@ -102,12 +107,8 @@ void TAS_Ctrl::tas_target_add(QVector<Trust_Track> *trust_track,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
//int TAS_Ctrl:: tas_auto_start(double v, double r, double h, struct RadarPara Work_Parameter)
|
||||
//{
|
||||
|
||||
@@ -128,7 +129,6 @@ void TAS_Ctrl::tas_target_add(QVector<Trust_Track> *trust_track,
|
||||
|
||||
//};
|
||||
|
||||
|
||||
int TAS_Ctrl::tas_prohibite_area(double r,double azi, double v, double h,struct RadarPara Work_Parameter)
|
||||
{
|
||||
|
||||
@@ -142,10 +142,9 @@ int TAS_Ctrl::tas_prohibite_area(double r,double azi, double v, double h,struct
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
void TAS_Ctrl::tas_target_del(QVector<Trust_Track> *trust_track,
|
||||
void TAS_Ctrl::tas_target_del(std::vector<Trust_Track> *trust_track,
|
||||
struct Track Trust_Track_Output[][10],
|
||||
int *Trust_track_num_Output,
|
||||
struct RadarPara Work_Parameter)
|
||||
@@ -224,7 +223,6 @@ void TAS_Ctrl::tas_target_del(QVector<Trust_Track> *trust_track,
|
||||
|
||||
// }
|
||||
|
||||
|
||||
};
|
||||
|
||||
//int TAS_Ctrl::tas_auto_end(double v, double r, double h, struct RadarPara Work_Parameter)
|
||||
@@ -246,18 +244,17 @@ void TAS_Ctrl::tas_target_del(QVector<Trust_Track> *trust_track,
|
||||
|
||||
//};
|
||||
|
||||
|
||||
|
||||
void TAS_Ctrl::tas_beam_output(QVector<Trust_Track> *trust_track,
|
||||
void TAS_Ctrl::tas_beam_output(std::vector<Trust_Track> *trust_track,
|
||||
struct TrackingBeam *Tracking_beam,
|
||||
int latest_timestamp)
|
||||
long long latest_timestamp)
|
||||
{
|
||||
if(tas_target_queue[0].empty_flag==1)
|
||||
{
|
||||
|
||||
double H_track;
|
||||
double X_now[6];
|
||||
int CPI_time = 0;
|
||||
double H_track = 0;
|
||||
double X_now[6] = {0};
|
||||
long long CPI_time = 0;
|
||||
bool found_track = false;
|
||||
for (int i=0;i<trust_track->size();i++ )
|
||||
{
|
||||
if((*trust_track)[i].Track_Index == tas_target_queue[0].Index)
|
||||
@@ -266,9 +263,16 @@ void TAS_Ctrl::tas_beam_output(QVector<Trust_Track> *trust_track,
|
||||
CPI_time = (*trust_track)[i].T_track;
|
||||
for(int ii=0;ii<6;ii++)
|
||||
X_now[ii]=(*trust_track)[i].X[ii];
|
||||
found_track = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found_track)
|
||||
{
|
||||
Tracking_beam->open_flag = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
float delta_T = (latest_timestamp - CPI_time) / 1000.0f;
|
||||
|
||||
//预测目标位置 计算跟踪波束波位号 俯仰角
|
||||
@@ -286,7 +290,6 @@ void TAS_Ctrl::tas_beam_output(QVector<Trust_Track> *trust_track,
|
||||
//目标俯仰角
|
||||
double elev=asin(H_track/range)/PI*180;
|
||||
|
||||
|
||||
// if(elev<=0)
|
||||
// elev=0;
|
||||
// else if(elev>=40)
|
||||
@@ -294,7 +297,6 @@ void TAS_Ctrl::tas_beam_output(QVector<Trust_Track> *trust_track,
|
||||
// else
|
||||
// elev=elev;
|
||||
|
||||
|
||||
Tracking_beam->Elev=elev;
|
||||
|
||||
//跟踪波束类型
|
||||
@@ -306,7 +308,7 @@ void TAS_Ctrl::tas_beam_output(QVector<Trust_Track> *trust_track,
|
||||
//跟踪波束开关开启
|
||||
Tracking_beam->open_flag=1;
|
||||
|
||||
//qDebug() << "TAS: range: " <<Tracking_beam->Range << "azi: " <<Tracking_beam->Azi <<"pit: " <<Tracking_beam->Elev;
|
||||
//std::cout << "TAS: range: " <<Tracking_beam->Range << "azi: " <<Tracking_beam->Azi <<"pit: " <<Tracking_beam->Elev;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -314,6 +316,4 @@ void TAS_Ctrl::tas_beam_output(QVector<Trust_Track> *trust_track,
|
||||
Tracking_beam->open_flag=0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user