#ifndef STRUCT_H #define STRUCT_H #pragma once #include using namespace std; /********************************* 数据处理结构体 **********************************************/ // 点迹数据结构 struct PointRecv { long long point_id; //点迹ID long long frame_id; //帧ID long long circle_id; //圈ID double range; //径向距离 double azimuth; //方位 (弧度) double velocity ; //速度 double amplitude ; //幅度 double height; //高度 double SNR; //信噪比 double RCS; //目标RCS float encoder_value; //码盘值 float amp_asv_point; //归一化幅度dB float prn_fftn_point; //点迹速度维FFT点数 long long CPI_time; //CPI时间 long long GNSS_time; //GNSS时间 int use_flag; //点迹使用标志 1使用 0未使用 int azimuth_beam_index; //方位波位号 int pitch_beam_index; //俯仰波位号 int PRF_index; //PRF号 int freq_index; //频点 int point_type; //TAS 1 TWS0 int point_section_asso; //点迹区 float speed_dim[129]; // 目标的十字星数据,目标点速度维129个点 float range_dim[8]; // 目标的十字星数据,目标点距离维8个点 }; // 可靠航迹数据结构 struct Trust_Track { long long track_id; //航迹ID long long point_id; //关联上的点迹ID long long circle_id; //处理圈数ID int Track_Index; //航迹号 double Range; //距离 double Azimuth; //方位 double Elevation; //俯仰 double Velocity; //航向速度 double Amplitude; //幅度 double Height; //高度 double RCS; //RCS double Quality; //航迹质量 long long T_track; //航迹时间 long long GNSS_time; //GNSS时间 int Track_Sum; //航迹总数 int Point_Index; //该航迹上的第几个点 int Point_sum; //本条航迹更新点的数目 int Valid_point_sum; //本条航迹有效点的数目 int Track_Mode; //跟踪模式 int Track_Update_Flag; //航迹更新标志 1已更新/0未更新 int Extrapolate_round; //航迹持续外推时间 int point_flag; //是否实点 1实点 0外推 int approach_flag; //接近标志 1接近 0远离 int manual_delete_flag; //手动航迹删除 int manual_tracking_flag; //手动TAS int associate_point_number; //关联的点数 int primary_target_flag; //重点目标标记 int Target_Type; //目标类型 搜索目标 低空目标 地面目标 int Track_section_idx; //航迹区号 std::vector Hight_smooth; //高度平滑 double range_point; //关联上的点信息(距离、方位、俯仰) double azi_point; double elev_point; double vr_point; double prf_point; int point_type; //TWS TAS double snr_point; //信噪比 float amp_asv_point; //关联上的点迹信息(归一化幅度) float prn_fftn_point; //点迹速度维FFT点数 int pitch_num; // 俯仰波位号 float speed_dim[129]; // 目标的十字星数据,目标点速度维129个点 float range_dim[8]; // 目标的十字星数据,目标点距离维8个点 double X[6]; //IMM double P[6][6]; double X1[6]; double X2[6]; double X3[6]; double P1[6][6]; double P2[6][6]; double P3[6][6]; double u[3]; }; //临时航迹结构体 struct Temp_track { long long temp_track_id; //临时航迹ID long long point_id; //关联上的点迹ID long long circle_id; //处理圈数ID double X[4]; //状态 double P[4][4]; //协方差 double r; //距离 double azi; //方位 double vr; //径向速度 double height; //高度 double SNR; //信噪比 double RCS; //RCS double amplitude; //幅度 double quality; //航迹质量 long long CPI_time; //时间戳 long long GNSS_time; //GNSS时间戳 double d; //关联上的点的d(马氏距离) int buff_round; //已缓存圈数 int temp_track_section_idx; //临时航迹区号 与点迹区的划分相同 int asso_flag; //关联标志 已关联:1 未关联:0 int pitch_num; // 俯仰波位号 float speed_dim[129]; // 目标的十字星数据,目标点速度维129个点 float range_dim[8]; // 目标的十字星数据,目标点距离维8个点 }; //存储关联信息 struct Asso_Info { long long point_id; long long track_id; long long circle_id; double d1; double d2; double d3; double d_min; int point_index; int track_index; double delta_T; double delta_h; double R; double VT; bool tas_flag; //TAS关联标志 1是 0否 bool thd_d; bool thd_h; bool thd_r; bool min_d_flag; }; // TAS跟踪目标结构体 struct Tracking_Target { int Index; //目标批号 int empty_flag; //是否为空标志位 1非空 0空 long long last_track_time; //最新跟踪时间 }; //引导跟踪目标结构体 struct Direct_Tracking_Target { int ID; double Azi; double Elev; double Range; int empty_flag; //是否为空标志位 1非空 0空 // int track_init_flag; //是否已经建航 1是 0否 }; #endif // STRUCT_H