更新:1、调整向站/背站的判断逻辑,解决速度模糊时判断有误的问题;

Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
2026-09-23 15:40:16 +08:00
parent 50e0b5cb74
commit fc49707b08
3 changed files with 48 additions and 6 deletions
+10 -2
View File
@@ -268,11 +268,14 @@ int Data_Process:: track_delete(int delete_track_num, //手动
int Data_Process::primary_target_add(int track_index) int Data_Process::primary_target_add(int track_index)
{ {
for ( size_t i=0; i<trust_track.size();i++) for ( size_t i=0; i<trust_track.size();i++){
if(trust_track[i].Track_Index==track_index) if(trust_track[i].Track_Index==track_index)
{ {
trust_track[i].primary_target_flag = 1; trust_track[i].primary_target_flag = 1;
//std::cout<< "Add primary target :" << trust_track[i].Track_Index << std::endl;
break;
} }
}
return 0; return 0;
} }
@@ -285,6 +288,8 @@ int Data_Process::primary_target_cancel(int track_index)
if(trust_track[i].Track_Index==track_index) if(trust_track[i].Track_Index==track_index)
{ {
trust_track[i].primary_target_flag = 0; trust_track[i].primary_target_flag = 0;
//std::cout<< "Cancel primary target :" << trust_track[i].Track_Index << std::endl;
break;
} }
} }
@@ -295,11 +300,13 @@ int Data_Process::primary_target_cancel(int track_index)
int Data_Process:: tracking_start(int track_index) //需要手动转入TAS跟踪的航迹号 int Data_Process:: tracking_start(int track_index) //需要手动转入TAS跟踪的航迹号
{ {
for ( size_t i=0; i<trust_track.size();i++) for ( size_t i=0; i<trust_track.size();i++){
if(trust_track[i].Track_Index==track_index) if(trust_track[i].Track_Index==track_index)
{ {
trust_track[i].manual_tracking_flag = 1; trust_track[i].manual_tracking_flag = 1;
break;
} }
}
return 0; return 0;
} }
@@ -313,6 +320,7 @@ int Data_Process:: tracking_stop(int track_index) //需要手动转
{ {
trust_track[i].manual_tracking_flag = 0; trust_track[i].manual_tracking_flag = 0;
trust_track[i].Track_Mode = 0; trust_track[i].Track_Mode = 0;
break;
} }
} }
+20 -3
View File
@@ -65,8 +65,6 @@ int Track_Asso:: track_asso_process(std::vector<PointRecv> *point_
//输出航迹 //输出航迹
for (size_t i=0;i<trust_track->size();i++) for (size_t i=0;i<trust_track->size();i++)
{ // 输出更新航迹条件: { // 输出更新航迹条件:
// if((*trust_track)[i].manual_tracking_flag==0)
// {
if((*trust_track)[i].Track_Update_Flag==1){ if((*trust_track)[i].Track_Update_Flag==1){
(*trust_track)[i].Track_Update_Flag=0; (*trust_track)[i].Track_Update_Flag=0;
*Trust_track_num_Output= *Trust_track_num_Output+1; *Trust_track_num_Output= *Trust_track_num_Output+1;
@@ -111,7 +109,6 @@ int Track_Asso:: track_asso_process(std::vector<PointRecv> *point_
Trust_Track_Output[*Trust_track_num_Output-1][0].point_type=0; Trust_Track_Output[*Trust_track_num_Output-1][0].point_type=0;
Trust_Track_Output[*Trust_track_num_Output-1][0].prf_point = static_cast<float>((*trust_track)[i].prf_point); Trust_Track_Output[*Trust_track_num_Output-1][0].prf_point = static_cast<float>((*trust_track)[i].prf_point);
Trust_Track_Output[*Trust_track_num_Output-1][0].track_snr = static_cast<float>((*trust_track)[i].snr_point); Trust_Track_Output[*Trust_track_num_Output-1][0].track_snr = static_cast<float>((*trust_track)[i].snr_point);
Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=Trust_Track_Output[*Trust_track_num_Output-1][0].vr_point>0?1:0;
//直接输出点迹高度-20260605 //直接输出点迹高度-20260605
//Trust_Track_Output[*Trust_track_num_Output-1][0].z = (*trust_track)[i].range_point * sin((*trust_track)[i].elev_point/180.0*PI); //Trust_Track_Output[*Trust_track_num_Output-1][0].z = (*trust_track)[i].range_point * sin((*trust_track)[i].elev_point/180.0*PI);
@@ -125,6 +122,26 @@ int Track_Asso:: track_asso_process(std::vector<PointRecv> *point_
Trust_Track_Output[*Trust_track_num_Output-1][0].v_x=static_cast<float>((*trust_track)[i].X[1]); Trust_Track_Output[*Trust_track_num_Output-1][0].v_x=static_cast<float>((*trust_track)[i].X[1]);
Trust_Track_Output[*Trust_track_num_Output-1][0].v_y=static_cast<float>((*trust_track)[i].X[4]); Trust_Track_Output[*Trust_track_num_Output-1][0].v_y=static_cast<float>((*trust_track)[i].X[4]);
// Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=Trust_Track_Output[*Trust_track_num_Output-1][0].vr_point>0?1:0;
if(acos((-x * (*trust_track)[i].X[1] - y * (*trust_track)[i].X[4]) / r / Trust_Track_Output[*Trust_track_num_Output-1][0].Range_V) < PI / 4)
{
Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=1;
// if(r*abs(sin(azi - Direction_Angle))<500)
// {
// Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=1;
// }
// else
// {
// Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=0;
// }
}
else
{
Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=0;
}
Trust_Track_Output[*Trust_track_num_Output-1][0].track_rcs = static_cast<float>((*trust_track)[i].RCS); Trust_Track_Output[*Trust_track_num_Output-1][0].track_rcs = static_cast<float>((*trust_track)[i].RCS);
Trust_Track_Output[*Trust_track_num_Output-1][0].pitch_num = (*trust_track)[i].pitch_num; Trust_Track_Output[*Trust_track_num_Output-1][0].pitch_num = (*trust_track)[i].pitch_num;
+18 -1
View File
@@ -88,7 +88,24 @@ long long latest_timestamp //最新时间戳
Trust_Track_Output[*Trust_track_num_Output-1][0].v_y=static_cast<float>((*trust_track)[i].X[4]); Trust_Track_Output[*Trust_track_num_Output-1][0].v_y=static_cast<float>((*trust_track)[i].X[4]);
Trust_Track_Output[*Trust_track_num_Output-1][0].track_rcs = static_cast<float>((*trust_track)[i].RCS); Trust_Track_Output[*Trust_track_num_Output-1][0].track_rcs = static_cast<float>((*trust_track)[i].RCS);
Trust_Track_Output[*Trust_track_num_Output-1][0].pitch_num = (*trust_track)[i].pitch_num; Trust_Track_Output[*Trust_track_num_Output-1][0].pitch_num = (*trust_track)[i].pitch_num;
Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=Trust_Track_Output[*Trust_track_num_Output-1][0].vr_point>0?1:0; // Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=Trust_Track_Output[*Trust_track_num_Output-1][0].vr_point>0?1:0;
if(acos((-x * (*trust_track)[i].X[1] - y * (*trust_track)[i].X[4]) / r / Trust_Track_Output[*Trust_track_num_Output-1][0].Range_V) < PI / 4)
{
Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=1;
// if(r*abs(sin(azi - Direction_Angle))<500)
// {
// Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=1;
// }
// else
// {
// Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=0;
// }
}
else
{
Trust_Track_Output[*Trust_track_num_Output-1][0].Flag_Direction=0;
}
std::memcpy(Trust_Track_Output[*Trust_track_num_Output-1][0].speed_dim, (*trust_track)[i].speed_dim, sizeof(Trust_Track_Output[*Trust_track_num_Output-1][0].speed_dim)); std::memcpy(Trust_Track_Output[*Trust_track_num_Output-1][0].speed_dim, (*trust_track)[i].speed_dim, sizeof(Trust_Track_Output[*Trust_track_num_Output-1][0].speed_dim));
std::memcpy(Trust_Track_Output[*Trust_track_num_Output-1][0].range_dim, (*trust_track)[i].range_dim, sizeof(Trust_Track_Output[*Trust_track_num_Output-1][0].range_dim)); std::memcpy(Trust_Track_Output[*Trust_track_num_Output-1][0].range_dim, (*trust_track)[i].range_dim, sizeof(Trust_Track_Output[*Trust_track_num_Output-1][0].range_dim));