Files
radar_data_process/build/output/data_process_class_dll.h
T

286 lines
10 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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