更新:1、增加通过配置文件决定航迹按质量消批还是按圈数消批;

2、更新配置文件;

Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
2026-11-05 10:49:21 +08:00
parent 4a57dd6dbe
commit 2c0d2c26a5
11 changed files with 34 additions and 4 deletions
@@ -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)
+1
View File
@@ -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; //重点航迹消批质量条件
+14 -4
View File
@@ -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;
}
}
//重点航迹自动消亡