281 lines
10 KiB
C++
281 lines
10 KiB
C++
#ifndef STRUCT_H
|
||
#define STRUCT_H
|
||
|
||
#pragma once
|
||
#include <vector>
|
||
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; //航迹时间(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 <double> 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; //工作模式
|
||
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]; //最大方位角 (度)
|
||
};
|
||
|
||
#endif // STRUCT_H
|