Files
radar_data_process/data_process_class_dll/data_process.h
T
waiwaylee 0cb31b48ca 更新:1、删除不必要的文件;
2、输入点迹、输出航迹的CPI时间和GNSS时间都改为64位整型;
3、修复TAS外推时间差计算可能为无效值的问题;

Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
2026-08-17 14:08:29 +08:00

121 lines
4.1 KiB
C++

#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 <QVector>
#include <Eigen/Dense>
#include <QDebug>
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 tracking_point(float Azimuth); //方位角
//参数设置初始化
int track_process_parameters_initial(struct RadarPara Radar_Parameter);
//参数设置修改函数
int track_process_parameters_modify(struct RadarPara Radar_Parameter);
private:
QVector <PointRecv> Data_buffer; //接收点迹 TWS 输入凝聚
QVector <PointRecv> Data_buffer_tas; //接收点迹 TAS 输入凝聚
QVector <PointRecv> point_recv; //凝聚后输出的点迹 按点迹区存入 输入航迹关联、起始
QVector <PointRecv> point_recv_tas; //凝聚后输出的点迹 TAS
QVector <Trust_Track> trust_track; //可靠航迹 按航迹区存入
QVector <QVector<Temp_track>> temp_track; //临时航迹 按临时航迹区存入
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; //上一个波位号,用于判断是否搜索完一圈
qint64 latest_timestamp = 0; //最新时间戳
struct RadarPara Work_Parameter; //工作参数 参数设置函数外部输入
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