2、修复TWS时错误的将TAS航迹外推的问题; 3、修复非重点航迹消亡的条件判断的问题; 4、修改航迹指纹计算的问题; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
64 lines
1.5 KiB
C++
64 lines
1.5 KiB
C++
#include "track_die.h"
|
|
#include "kalman.h"
|
|
#include "coor_trans.h"
|
|
#include "rdp_log.h"
|
|
#include <cmath>
|
|
#include <cstring>
|
|
#include <vector>
|
|
using namespace std;
|
|
|
|
void Track_Die::track_die_process( std::vector <Trust_Track> *trust_track,
|
|
int Track_die_Index_Output[],
|
|
int *Track_die_num_Output)
|
|
{
|
|
|
|
std::vector <Trust_Track>::iterator Iter;
|
|
for (Iter=trust_track->begin(); Iter!=trust_track->end();)
|
|
{
|
|
bool die_flag = false;
|
|
|
|
//手动删除
|
|
if((*Iter).manual_delete_flag == 1)
|
|
{
|
|
die_flag = true;
|
|
}
|
|
|
|
if(rdp_parameter.track_die_quality_enable == 1){
|
|
//按质量条件消亡
|
|
//非重点航迹自动消亡
|
|
if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 0 && (*Iter).Quality < rdp_parameter.track_die_quality)
|
|
{
|
|
die_flag = true;
|
|
}
|
|
}else{
|
|
//按圈数条件消亡
|
|
//非重点航迹自动消亡
|
|
if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 0 && (*Iter).Extrapolate_round > rdp_parameter.track_die_round)
|
|
{
|
|
die_flag = true;
|
|
}
|
|
}
|
|
|
|
//重点航迹自动消亡
|
|
if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 1 && (*Iter).Extrapolate_round > rdp_parameter.track_die_round_pramary)
|
|
{
|
|
die_flag = true;
|
|
}
|
|
|
|
if(die_flag)
|
|
{
|
|
//输出消亡信息
|
|
*Track_die_num_Output=*Track_die_num_Output+1;
|
|
Track_die_Index_Output[*Track_die_num_Output-1]=(*Iter).Track_Index;
|
|
|
|
trust_track->erase(Iter);
|
|
Iter=trust_track->begin();
|
|
}
|
|
else
|
|
{
|
|
Iter++;
|
|
}
|
|
}
|
|
|
|
};
|