更新:修改扫描一周完成的判断逻辑,改成用波位号变小来判断。
Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -0,0 +1,285 @@
|
||||
#pragma once
|
||||
#ifndef DATA_PROCESS_CLASS_DLL_H
|
||||
#define DATA_PROCESS_CLASS_DLL_H
|
||||
|
||||
#include "data_process_class_dll_global.h"
|
||||
|
||||
/***************************************************** 结构体 ********************************************************/
|
||||
// 输入点迹的数据结构 用户可见
|
||||
struct DATA_PROCESS_CLASS_DLLSHARED_EXPORT DataRev
|
||||
{
|
||||
float Range; //径向距离 (米)
|
||||
float Azimuth; //方位 (度)
|
||||
float Elevation; //俯仰 (度)
|
||||
float Velocity; //速度 (m/s)
|
||||
float Amplitude; //幅度
|
||||
float Threshold; //目标门限
|
||||
float Snr; //目标信噪比
|
||||
float RCS; //目标RCS
|
||||
float Encoder_value; //码盘值
|
||||
int CPI_time; //CPI时间 该波位无点迹输入时也需要给出当前时间
|
||||
int Beam_index_azi_0; //上一个cpi波位
|
||||
int Beam_index_aiz; //方位波位号(0-24) 该波位无输入点迹时 也需要给出当前波位
|
||||
int Beam_index_elev; //俯仰波位号(0-13)
|
||||
int PRI; //PRI(us) 给0
|
||||
int Freq_index; //频点号 给0
|
||||
int Point_Sum; //输入点迹总数 若该波位无点迹输入 置为0
|
||||
int Point_Num; //点迹号(1,2,3,4...)
|
||||
int UseFlag; //点迹使用标记 使用1/未使用0 主程序存入数据时置为0
|
||||
int TAS_track_index; //TAS的航迹号
|
||||
int point_type; //点迹类型 TAS 1/TWS 0
|
||||
int pitch_num; // 俯仰波位号
|
||||
float speed_dim[129]; // 目标的十字星数据,目标点速度维129个点
|
||||
float range_dim[8]; // 目标的十字星数据,目标点距离维8个点
|
||||
};
|
||||
|
||||
|
||||
//输出航迹的数据结构 用户可见
|
||||
struct DATA_PROCESS_CLASS_DLLSHARED_EXPORT Track
|
||||
{
|
||||
float x; //x坐标
|
||||
float y; //y坐标
|
||||
float z; //z坐标
|
||||
float v_x; //x速度
|
||||
float v_y; //y速度
|
||||
float v_z; //z速度
|
||||
float Range; //径向距离
|
||||
float Azimuth; //方位
|
||||
float Elevation; //俯仰
|
||||
float Range_V; //速度
|
||||
float Amplitude; //幅度
|
||||
int Track_Index; //航迹号
|
||||
int Point_Sum; //本条航迹更新点的数目
|
||||
int Flag_Direction; //方向标志1靠近/0远离
|
||||
int Flag_Point; //点迹类型1实点/0补点
|
||||
float x_Predict; //x坐标的一步预测
|
||||
float y_Predict; //y坐标的一步预测
|
||||
float z_Predict; //z坐标的一步预测
|
||||
float Range_Predict; //径向距离的一步预测
|
||||
float Azimuth_Predict; //方位的一步预测
|
||||
float Elevation_Predict; //俯仰的一步预测
|
||||
int Track_Mode; //跟踪模式,TAS 1/TWS 0
|
||||
float Direction_Angle; //目标航向角
|
||||
int Target_Type; //目标类型
|
||||
|
||||
int point_type; //点迹类型 TAS 1/TWS 0
|
||||
|
||||
float range_point; //关联上的点迹信息(距离、方位、俯仰、径向速度)
|
||||
float azi_point;
|
||||
float elev_point;
|
||||
float vr_point;
|
||||
float prf_point;
|
||||
|
||||
float track_time; //航迹时间 (单位 s)
|
||||
float track_snr; //信噪比
|
||||
float track_rcs; //rcs
|
||||
|
||||
int pitch_num; // 俯仰波位号
|
||||
float speed_dim[129]; // 目标的十字星数据,目标点速度维129个点
|
||||
float range_dim[8]; // 目标的十字星数据,目标点距离维8个点
|
||||
};
|
||||
|
||||
|
||||
|
||||
// 跟踪波束信息的结构体
|
||||
struct DATA_PROCESS_CLASS_DLLSHARED_EXPORT TrackingBeam
|
||||
{
|
||||
int open_flag; //是否开启 1开启 0不开启
|
||||
|
||||
int type; //类型
|
||||
float Range; //跟踪目标距离
|
||||
float Azi; //跟踪目标方位
|
||||
float Elev; //跟踪目标俯仰
|
||||
|
||||
int TAS_track_index; //目标批号
|
||||
};
|
||||
|
||||
//引导跟踪信息的结构体
|
||||
struct DATA_PROCESS_CLASS_DLLSHARED_EXPORT Target_direct_tracking
|
||||
{
|
||||
int Track_ID; //引导目标批号
|
||||
float Range; //引导目标距离
|
||||
float Azi; //引导目标方位
|
||||
float Elev; //引导目标俯仰
|
||||
int open_flag; // 1 引导跟踪 0 结束引导跟踪
|
||||
};
|
||||
|
||||
|
||||
|
||||
// 雷达参数结构体
|
||||
struct DATA_PROCESS_CLASS_DLLSHARED_EXPORT RadarPara
|
||||
{
|
||||
int Beam_num; //波位数
|
||||
|
||||
float Height; //雷达平台高度 (m)
|
||||
|
||||
float Sys_delay; //系统延迟 (s)
|
||||
float R_TAS_max; //TAS最大距离 (m)
|
||||
float R_TAS_min; //TAS最小距离 (m)
|
||||
|
||||
float V_TAS_max; //TAS最大速度 (m/s)
|
||||
float V_TAS_min; //TAS最小速度 (m/s)
|
||||
|
||||
float TAS_Height_1; //TAS跟踪高度1 (m)
|
||||
float TAS_Height_2; //TAS跟踪高度2 (m)
|
||||
float TAS_Height_3; //TAS跟踪高度3 (m)
|
||||
float TAS_Height_4; //TAS跟踪高度4 (m)
|
||||
float TAS_Height_5; //TAS跟踪高度5 (m)
|
||||
|
||||
|
||||
int track_prohibite_area_num; //禁止航迹起始的区域数目
|
||||
float R_max_track_prohibited[30]; //最大距离 (m)
|
||||
float R_min_track_prohibited[30]; //最小距离 (m)
|
||||
float Azimuth_max_track_prohibited[30]; //最大方位角 (度)
|
||||
float Azimuth_min_track_prohibited[30]; //最小方位角 (度)
|
||||
|
||||
|
||||
int TAS_prohibite_area_num; //禁止TAS的区域数目
|
||||
float R_max_TAS_prohibited[30]; //最大距离 (m)
|
||||
float R_min_TAS_prohibited[30]; //最小距离 (m)
|
||||
float Azimuth_max_TAS_prohibited[30]; //最大方位角 (度)
|
||||
float Azimuth_min_TAS_prohibited[30]; //最小方位角 (度)
|
||||
|
||||
int cfar_th; //cfar门限
|
||||
|
||||
int work_mode; //工作模式 0进程 1中程 3远程
|
||||
int north_angle; //北偏角
|
||||
|
||||
float V_MAX; //最大速度
|
||||
float V_MIN; //最小速度
|
||||
|
||||
float DATA_RATE_SHORT; //三种不同模式下的 数据率
|
||||
float DATA_RATE_MIDDLE;
|
||||
float DATA_RATE_FAR;
|
||||
|
||||
|
||||
//数据关联参数
|
||||
int track_start_point_num; //起批点数(典型值 3或4)
|
||||
float track_start_threshold; //起航波门大小(典型值 3)
|
||||
float track_asso_threshold; //关联波门大小(典型值 3)
|
||||
float track_asso_threshold_tas; //关联波门大小tas (典型值 3)
|
||||
|
||||
//singer模型机动参数
|
||||
float Model1_Q_fast; //0.00001
|
||||
float Model1_Q_slow; //0.00001
|
||||
|
||||
float Model2_Q_fast; //0.1
|
||||
float Model2_Q_slow; //0.001
|
||||
|
||||
float Model3_Q_fast; //0.8
|
||||
float Model3_Q_slow; //0.4
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
class DATA_PROCESS_CLASS_DLLSHARED_EXPORT Data_process_class_dll
|
||||
{
|
||||
|
||||
public:
|
||||
// Data_process_class_dll();
|
||||
|
||||
//数据预处理函数
|
||||
virtual int data_preprocess(struct DataRev Data_Input[150]) //雷达的输入点迹 主程序创建全局变量 输入数据
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//数据处理函数
|
||||
virtual int track_process(struct Track Trust_Track_Output[][10], //数据处理输出的航迹更新信息 主程序创建全局变量 数据处理函数更新其中数据
|
||||
int *Trust_track_num_Output, //数据处理后输出的航迹数目 主程序创建全局变量 数据处理函数更新其中数据
|
||||
int Track_die_Index_Output[], //数据处理后要消亡的航迹 主程序创建全局变量 数据处理函数更新其中数据
|
||||
int *Track_die_num_Output, //数据处理后要消亡的航迹数目
|
||||
int model //模式 输入data_preprocess的返回值
|
||||
)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//波束控制
|
||||
virtual void Beam_Ctrl(struct TrackingBeam *Tracking_beam,
|
||||
struct Track Trust_Track_Output[][10],
|
||||
int *Trust_track_num_Output)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//引导跟踪处理函数
|
||||
virtual int direct_tracking_process(struct Target_direct_tracking Target_direct_info, //引导信息
|
||||
struct DataRev Data_Input[150], //雷达的输入点迹
|
||||
struct Track Trust_Track_Output[][10], //数据处理输出的航迹更新信息 主程序创建全局变量 数据处理函数更新其中数据
|
||||
int *Trust_track_num_Output, //数据处理后输出的航迹数目 主程序创建全局变量 数据处理函数更新其中数据
|
||||
int Track_die_Index_Output[], //数据处理后要消亡的航迹 主程序创建全局变量 数据处理函数更新其中数据
|
||||
int *Track_die_num_Output, //数据处理后要消亡的航迹数目
|
||||
struct TrackingBeam *Tracking_beam //波束控制信息
|
||||
)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//航迹清空函数
|
||||
virtual int track_clear_all(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//手动航迹删除函数
|
||||
virtual int track_delete(int delete_track_num, //手动删除的航迹数目
|
||||
int delete_track_index[]) //手动删除的航迹号
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//手动转TAS跟踪函数
|
||||
virtual int tracking_start(int track_index) //需要手动转入TAS跟踪的航迹号
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//手动打跟踪波束
|
||||
virtual int tracking_point(float Azimuth) //方位角
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//参数设置初始化函数
|
||||
virtual int track_process_parameters_initial(struct RadarPara Radar_Parameter)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//参数设置修改函数
|
||||
virtual int track_process_parameters_modify(struct RadarPara Radar_Parameter)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
//工厂类 用户可见
|
||||
class DATA_PROCESS_CLASS_DLLSHARED_EXPORT Data_Process_Factory
|
||||
{
|
||||
public:
|
||||
static Data_process_class_dll *GetB(); //创建
|
||||
static void Destroy(); //销毁
|
||||
|
||||
private:
|
||||
static Data_process_class_dll *p;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // DATA_PROCESS_CLASS_DLL_H
|
||||
Reference in New Issue
Block a user