diff --git a/data_process_class_dll/data_process.cpp b/data_process_class_dll/data_process.cpp index 2124d11..46601f4 100644 --- a/data_process_class_dll/data_process.cpp +++ b/data_process_class_dll/data_process.cpp @@ -268,11 +268,14 @@ int Data_Process:: track_delete(int delete_track_num, //手动 int Data_Process::primary_target_add(int track_index) { - for ( size_t i=0; i *point_ //输出航迹 for (size_t i=0;isize();i++) { // 输出更新航迹条件: -// if((*trust_track)[i].manual_tracking_flag==0) -// { if((*trust_track)[i].Track_Update_Flag==1){ (*trust_track)[i].Track_Update_Flag=0; *Trust_track_num_Output= *Trust_track_num_Output+1; @@ -111,7 +109,6 @@ int Track_Asso:: track_asso_process(std::vector *point_ 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((*trust_track)[i].prf_point); Trust_Track_Output[*Trust_track_num_Output-1][0].track_snr = static_cast((*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 //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 *point_ Trust_Track_Output[*Trust_track_num_Output-1][0].v_x=static_cast((*trust_track)[i].X[1]); Trust_Track_Output[*Trust_track_num_Output-1][0].v_y=static_cast((*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((*trust_track)[i].RCS); Trust_Track_Output[*Trust_track_num_Output-1][0].pitch_num = (*trust_track)[i].pitch_num; diff --git a/data_process_class_dll/track_asso_tas.cpp b/data_process_class_dll/track_asso_tas.cpp index 411eeb2..6f74c68 100644 --- a/data_process_class_dll/track_asso_tas.cpp +++ b/data_process_class_dll/track_asso_tas.cpp @@ -88,7 +88,24 @@ long long latest_timestamp //最新时间戳 Trust_Track_Output[*Trust_track_num_Output-1][0].v_y=static_cast((*trust_track)[i].X[4]); Trust_Track_Output[*Trust_track_num_Output-1][0].track_rcs = static_cast((*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].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].range_dim, (*trust_track)[i].range_dim, sizeof(Trust_Track_Output[*Trust_track_num_Output-1][0].range_dim));