2、输入点迹、输出航迹的CPI时间和GNSS时间都改为64位整型; 3、修复TAS外推时间差计算可能为无效值的问题; Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
121 lines
4.1 KiB
C++
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
|