diff --git a/config/Ku2304_PS.toml b/config/Ku2304_PS.toml index 3524032..fef3c68 100644 --- a/config/Ku2304_PS.toml +++ b/config/Ku2304_PS.toml @@ -88,6 +88,8 @@ track_die_round = 25 track_die_round_pramary = 50 # TAS航迹消亡圈数 track_die_round_tas = 50 +# 航迹消批质量条件使能 +track_die_quality_enable = 1 # 航迹消批质量条件 track_die_quality = 0.3 # 重点航迹消批质量条件 diff --git a/config/X1024_MS_4.8S.toml b/config/X1024_MS_4.8S.toml index b68595a..a50dbd2 100644 --- a/config/X1024_MS_4.8S.toml +++ b/config/X1024_MS_4.8S.toml @@ -88,6 +88,8 @@ track_die_round = 5 track_die_round_pramary = 10 # TAS航迹消亡圈数 track_die_round_tas = 300 +# 航迹消批质量条件使能 +track_die_quality_enable = 1 # 航迹消批质量条件 track_die_quality = 0.3 # 重点航迹消批质量条件 diff --git a/config/X1024_MS_5S.toml b/config/X1024_MS_5S.toml index 2f2f66a..8b8aa28 100644 --- a/config/X1024_MS_5S.toml +++ b/config/X1024_MS_5S.toml @@ -88,6 +88,8 @@ track_die_round = 5 track_die_round_pramary = 10 # TAS航迹消亡圈数 track_die_round_tas = 450 +# 航迹消批质量条件使能 +track_die_quality_enable = 1 # 航迹消批质量条件 track_die_quality = 0.3 # 重点航迹消批质量条件 diff --git a/config/X1024_PS_3S_TAS_2Hz.toml b/config/X1024_PS_3S_TAS_2Hz.toml index 75387f8..7a5dd70 100644 --- a/config/X1024_PS_3S_TAS_2Hz.toml +++ b/config/X1024_PS_3S_TAS_2Hz.toml @@ -88,6 +88,8 @@ track_die_round = 6 track_die_round_pramary = 10 # TAS航迹消亡圈数 track_die_round_tas = 20 +# 航迹消批质量条件使能 +track_die_quality_enable = 1 # 航迹消批质量条件 track_die_quality = 0.3 # 重点航迹消批质量条件 diff --git a/config/X256_MS_4S.toml b/config/X256_MS_4S.toml index 5f0180e..b5c53ff 100644 --- a/config/X256_MS_4S.toml +++ b/config/X256_MS_4S.toml @@ -88,6 +88,8 @@ track_die_round = 6 track_die_round_pramary = 10 # TAS航迹消亡圈数 track_die_round_tas = 90 +# 航迹消批质量条件使能 +track_die_quality_enable = 1 # 航迹消批质量条件 track_die_quality = 0.3 # 重点航迹消批质量条件 diff --git a/config/X256_PS_3S_TAS_1Hz.toml b/config/X256_PS_3S_TAS_1Hz.toml index ab465dd..9b29a25 100644 --- a/config/X256_PS_3S_TAS_1Hz.toml +++ b/config/X256_PS_3S_TAS_1Hz.toml @@ -88,6 +88,8 @@ track_die_round = 6 track_die_round_pramary = 10 # TAS航迹消亡圈数 track_die_round_tas = 20 +# 航迹消批质量条件使能 +track_die_quality_enable = 1 # 航迹消批质量条件 track_die_quality = 0.3 # 重点航迹消批质量条件 diff --git a/config/X256_PS_3S_TAS_2Hz.toml b/config/X256_PS_3S_TAS_2Hz.toml index ed4e27a..39a8dc6 100644 --- a/config/X256_PS_3S_TAS_2Hz.toml +++ b/config/X256_PS_3S_TAS_2Hz.toml @@ -88,6 +88,8 @@ track_die_round = 6 track_die_round_pramary = 10 # TAS航迹消亡圈数 track_die_round_tas = 20 +# 航迹消批质量条件使能 +track_die_quality_enable = 1 # 航迹消批质量条件 track_die_quality = 0.3 # 重点航迹消批质量条件 diff --git a/config/config_tmp.toml b/config/config_tmp.toml index e205fe7..04c9201 100644 --- a/config/config_tmp.toml +++ b/config/config_tmp.toml @@ -90,6 +90,8 @@ track_die_round = 6 track_die_round_pramary = 10 # TAS航迹消亡圈数 track_die_round_tas = 20 +# 航迹消批质量条件使能 +track_die_quality_enable = 1 # 航迹消批质量条件 track_die_quality = 0.3 # 重点航迹消批质量条件 diff --git a/data_process_class_dll/rdp_parameter_loader.cpp b/data_process_class_dll/rdp_parameter_loader.cpp index 32a824b..c317195 100644 --- a/data_process_class_dll/rdp_parameter_loader.cpp +++ b/data_process_class_dll/rdp_parameter_loader.cpp @@ -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) diff --git a/data_process_class_dll/struct.h b/data_process_class_dll/struct.h index 90608ad..6d0fa9c 100644 --- a/data_process_class_dll/struct.h +++ b/data_process_class_dll/struct.h @@ -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; //重点航迹消批质量条件 diff --git a/data_process_class_dll/track_die.cpp b/data_process_class_dll/track_die.cpp index f4abead..2a2409f 100644 --- a/data_process_class_dll/track_die.cpp +++ b/data_process_class_dll/track_die.cpp @@ -22,10 +22,20 @@ void Track_Die::track_die_process( std::vector *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; + } } //重点航迹自动消亡