#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; //航迹号 int Track_fingerprint; //航迹指纹 double Range; //距离 double Azimuth; //方位 double Elevation; //俯仰 double Velocity; //航向速度 double Amplitude; //幅度 double Height; //高度 double RCS; //RCS double Quality; //航迹质量 long long T_track; //航迹时间(CPI时间) long long GNSS_time; //GNSS时间 long long Unupdated_time; //航迹未更新时间 int Track_Sum; //航迹总数 int Point_Index; //该航迹上的第几个点 int Point_sum; //本条航迹更新点的数目 int Valid_point_sum; //本条航迹有效点的数目 int associate_point_number; //关联的点数 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 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否 }; // 系统工作参数结构体 struct RDP_parameter { // ******************* 雷达工作参数 ************************// int radar_work_mode; //工作模式 int scan_mode; //扫描模式 0=相扫模式 1=机扫模式 float freq_0_GHz; //频点0频率 float radar_height; //雷达平台高度 (m) float radar_system_delay; //系统延迟 (s) float data_rate_tws; //TWS模式数据率 float data_rate_tas; //TAS模式数据率 float data_rate_track_only; //纯跟踪模式数据率 // ******************* 点迹凝聚参数 ************************// float point_cohesion_range; //距离凝聚范围 float point_cohesion_velocity; //速度凝聚范围 float point_cohesion_azimuth; //方位凝聚范围 float point_cohesion_range_min; //最小凝聚距离 float point_cohesion_range_max; //最大凝聚距离 // ******************* 航迹关联参数 ************************// float sigma_range; //距离量测精度 float sigma_azimuth; //方位量测精度 float sigma_pitch; //俯仰量测精度 float sigma_velocity; //速度量测精度 float associate_threshold; //关联门限 int extrapolate_max; //最大外推点数 int extrapolate_max_tas; //TAS最大外推点数 int height_smooth_win; //高度平滑窗长 // ******************* 航迹起始参数 ************************// float track_init_threshold; //起航门限 float track_init_angle; //起航夹角 int track_init_point_num_min; //最少起批点数 float track_init_quality_L3; //3点起批质量门限 float track_init_quality_L4; //4点起批质量门限 float track_init_quality_L5; //5点起批质量门限 float track_init_quality_L6; //6点起批质量门限 float track_init_quality_L7; //7点起批质量门限 float track_init_velocity_min; //航迹起始最小速度 float track_init_velocity_max; //航迹起始最大速度 // ******************* 航迹消亡参数 ************************// int track_die_round; //航迹消亡圈数 int track_die_round_pramary; //重点航迹消亡圈数 int track_die_round_tas; //TAS航迹消亡圈数 float track_die_quality; //航迹消批质量条件 float track_die_quality_pramary; //重点航迹消批质量条件 // ******************* 航迹质量管理参数 ************************// float track_quality_max; //航迹质量最大值 float track_quality_min; //航迹质量最小值 float track_quality_d_weight; //马氏距离权重 float track_quality_snr_weight; //信噪比权重 float track_quality_len_weight; //航迹长度权重 float track_quality_iter_coeff; //航迹质量迭代系数 float track_quality_decrease_coeff_o2; //航迹质量下降系数2次项 float track_quality_decrease_coeff_o1; //航迹质量下降系数1次项 // ******************* 航迹批号管理 ************************// int track_index_max; //最大航迹批号 // ******************* 波束调度参数 ************************// int default_track_beam_type; //默认跟踪波束类型 int tas_track_num_max; //最大同时跟踪目标数 // ******************* singer模型机动参数 ************************// float model_1_Q_fast; //模型1 float model_1_Q_slow; //模型1 float model_2_Q_fast; //模型2 float model_2_Q_slow; //模型2 float model_3_Q_fast; //模型3 float model_3_Q_slow; //模型3 // ******************* 航迹起始屏蔽区 ************************// int track_init_prohibite_area_num; //航迹起始屏蔽区数 float track_init_prohibite_area_range_min[30]; //最小距离 (m) float track_init_prohibite_area_range_max[30]; //最大距离 (m) float track_init_prohibite_area_azimuth_min[30]; //最小方位角 (度) float track_init_prohibite_area_azimuth_max[30]; //最大方位角 (度) // ******************* 禁止TAS跟踪区 ************************// int tas_prohibite_area_num; //禁止TAS的区域数 float tas_prohibite_area_range_min[30]; //最小距离 (m) float tas_prohibite_area_range_max[30]; //最大距离 (m) float tas_prohibite_area_azimuth_min[30]; //最小方位角 (度) float tas_prohibite_area_azimuth_max[30]; //最大方位角 (度) }; // ******************* 全局工作参数对象 ************************// // 所有处理模块直接访问该全局对象,不再通过函数参数逐层传递。 // 定义在 data_process.cpp;由 Data_Process::parameters_reload() 在配置文件完整校验通过后整体赋值 // (失败时保持原值)。处理期间只读;配置重载应与处理互斥,宿主按单线程接口使用(见 README BUG-03)。 extern RDP_parameter rdp_parameter; #endif // STRUCT_H