更新:1、增加通过配置文件决定航迹按质量消批还是按圈数消批;
2、更新配置文件; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -156,6 +156,7 @@ const IntField kIntFields[] = {
|
||||
{"track_die", "track_die_round", &RDP_parameter::track_die_round},
|
||||
{"track_die", "track_die_round_pramary", &RDP_parameter::track_die_round_pramary},
|
||||
{"track_die", "track_die_round_tas", &RDP_parameter::track_die_round_tas},
|
||||
{"track_die", "track_die_quality_enable", &RDP_parameter::track_die_quality_enable},
|
||||
// [track_index] 航迹批号管理
|
||||
{"track_index", "track_index_max", &RDP_parameter::track_index_max},
|
||||
// [beam_control] 波束调度参数
|
||||
@@ -437,6 +438,8 @@ bool validate_parameter(const RDP_parameter& p, LoadContext& ctx)
|
||||
return ctx.fail("参数 track_die_round_pramary 不能为负");
|
||||
if (p.track_die_round_tas < 0)
|
||||
return ctx.fail("参数 track_die_round_tas 不能为负");
|
||||
if (p.track_die_quality_enable != 0 && p.track_die_quality_enable != 1)
|
||||
return ctx.fail("参数 track_die_quality_enable 必须为 0(不启用)或 1(启用)(实际 " + std::to_string(p.track_die_quality_enable) + ")");
|
||||
if (p.track_die_quality < 0.0f || p.track_die_quality > 1.0f)
|
||||
return ctx.fail("参数 track_die_quality 必须在 0~1 之间");
|
||||
if (p.track_die_quality_pramary < 0.0f || p.track_die_quality_pramary > 1.0f)
|
||||
|
||||
@@ -238,6 +238,7 @@ struct RDP_parameter
|
||||
int track_die_round; //航迹消亡圈数
|
||||
int track_die_round_pramary; //重点航迹消亡圈数
|
||||
int track_die_round_tas; //TAS航迹消亡圈数
|
||||
int track_die_quality_enable; //航迹消亡质量条件使能
|
||||
float track_die_quality; //航迹消批质量条件
|
||||
float track_die_quality_pramary; //重点航迹消批质量条件
|
||||
|
||||
|
||||
@@ -22,10 +22,20 @@ void Track_Die::track_die_process( std::vector <Trust_Track> *trust_track,
|
||||
die_flag = true;
|
||||
}
|
||||
|
||||
//非重点航迹自动消亡
|
||||
if((*Iter).Track_Mode == 0 && (*Iter).primary_target_flag == 0 && (*Iter).Quality < rdp_parameter.track_die_quality)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
//重点航迹自动消亡
|
||||
|
||||
Reference in New Issue
Block a user