Files
radar_data_process/data_process_class_dll/data_process.h
T

126 lines
4.6 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.
#ifndef DATA_PROCESS_H
#define DATA_PROCESS_H
#pragma once
#include "data_process_class_dll.h"
#include "parameters.h"
#include "struct.h"
#include "dot_coh.h"
#include "dot_coh_tas.h"
#include "track_init.h"
#include "track_asso.h"
#include "track_asso_tas.h"
#include "track_die.h"
#include "track_die_tas.h"
#include "tas_ctrl.h"
#include <vector>
#include <climits>
#include <Eigen/Dense>
using namespace Eigen;
using namespace std;
/********************************** 数据处理类 *************************************************/
class Data_Process : public Data_process_class_dll
{
public:
Data_Process(void)
{
}
//数据预处理函数
int data_preprocess(struct DataRev Data_Input[150]);
//航迹处理函数
int track_process( struct Track Trust_Track_Output[MAX_TRACK_NUM][10], //数据处理输出的航迹更新信息 主程序创建全局变量 数据处理函数更新其中数据
int *Trust_track_num_Output, //数据处理后输出的航迹数目 主程序创建全局变量 数据处理函数更新其中数据
int Track_die_Index_Output[], //数据处理后要消亡的航迹 主程序创建全局变量 数据处理函数更新其中数据
int *Track_die_num_Output, //数据处理后要消亡的航迹数目 主程序创建全局变量 数据处理函数更新其中数据
int model
);
//波束控制
void Beam_Ctrl(struct TrackingBeam *Tracking_beam,
struct Track Trust_Track_Output[][10],
int *Trust_track_num_Output);
//航迹清空函数
int track_clear_all(void);
//手动航迹删除函数
int track_delete(int delete_track_num, //手动删除的航迹数目
int delete_track_index[]); //手动删除的航迹号
//手动转TAS跟踪函数
int tracking_start(int track_index); //需要手动转入TAS跟踪的航迹号
//手动取消TAS跟踪函数
int tracking_stop(int track_index); //需要取消TAS跟踪的航迹号
//手动添加重点目标
int primary_target_add(int track_index); //将指定目标转为重点目标
//手动取消重点目标
int primary_target_cancel(int track_index); //将指定重点目标取消
//手动打跟踪波束
int tracking_point(float Azimuth); //方位角
//参数加载函数(从 TOML 配置文件加载全部工作参数到 rdp_parameter)
//参数:parameter_file_path - 配置文件路径
//返回:成功返回 0;失败返回 -1(失败时不改变当前参数)
int parameters_reload(const char* parameter_file_path) override;
private:
std::vector <PointRecv> Data_buffer; //接收点迹 TWS 输入凝聚
std::vector <PointRecv> Data_buffer_tas; //接收点迹 TAS 输入凝聚
std::vector <PointRecv> point_recv; //凝聚后输出的点迹 按点迹区存入 输入航迹关联、起始
std::vector <PointRecv> point_recv_tas; //凝聚后输出的点迹 TAS
std::vector <Trust_Track> trust_track; //可靠航迹 按航迹区存入
std::vector <std::vector<Temp_track>> temp_track; //临时航迹 按临时航迹区存入
// 工作参数为全局对象 struct.h::rdp_parameter(由 parameters_reload() 加载),不再作为类成员。
int Beam_num; //波位数
int beam_count; //波位计数
int data_num; //波位1点数
int beam_index[3]; //3个波位号(当前帧)
int TAS_track_idx; //TAS数据的目标批号
int Track_Mode; //跟踪模式 1TAS 0TWS
int last_beam_num = INT_MAX; //上一个波位号,用于判断是否搜索完一圈
long long latest_timestamp = 0; //最新时间戳
long long point_id = 0; //点迹id
long long frame_id = 0; //帧id
long long circle_id = 0; //圈id
Dot_Coh dot_coh; //点迹凝聚
Dot_Coh_TAS dot_coh_tas;
Track_Asso track_asso; //航迹关联
Track_Asso_Tas track_asso_tas;
Track_Init track_init; //航迹起始
Track_Die track_die; //航迹消亡
Track_Die_Tas track_die_tas;
TAS_Ctrl tas_ctrl; //TAS波束控制
};
#endif // DATA_PROCESS_H