更新:1、优化数据记录的性能,满足实时运行要求;

Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
2026-10-20 17:31:50 +08:00
parent 3dee734d89
commit 17a3d998a6
14 changed files with 2029 additions and 210 deletions
+25 -6
View File
@@ -1,7 +1,6 @@
#include "data_process.h"
#include "rdp_log.h"
#include "rdp_record.h"
#include "rdp_record_entity.h"
#include <cstring>
#include <vector>
#include <cmath>
@@ -26,6 +25,11 @@ int Data_Process::data_preprocess(struct DataRev Data_Input[150])
{
data_num=min(Data_Input[0].Point_Sum, 150);
//std::cout << "TARGET azi beam idx:" <<Data_Input[0].Beam_index_aiz;
#ifdef RDP_RECORD_ENABLE
//记录输入点迹:处理线程内先收集源结构体,循环结束后一次入队(构造实体与写库由记录写线程完成)
std::vector<PointRecv> rec_points;
rec_points.reserve(static_cast<std::size_t>(data_num));
#endif
for (int i=0; i<data_num;i++)
{
PointRecv Data_buffer_temp;
@@ -54,14 +58,18 @@ int Data_Process::data_preprocess(struct DataRev Data_Input[150])
std::memcpy(Data_buffer_temp.speed_dim, Data_Input[i].speed_dim, sizeof(Data_buffer_temp.speed_dim));
std::memcpy(Data_buffer_temp.range_dim, Data_Input[i].range_dim, sizeof(Data_buffer_temp.range_dim));
//数据记录示例①:把本次接收的输入点迹写入表 RdpRecPointTws(字段为示例,可按需增删)。
//记录功能关闭时该语句展开为空操作(实参不求值),交付构建不产生任何代码,
//用法与新增记录点配方见 rdp_record.h 与 docs/data_record_debug.md。
RDP_RECORD(RdpRecPoint(Data_buffer_temp));
#ifdef RDP_RECORD_ENABLE
rec_points.push_back(Data_buffer_temp);
#endif
Data_buffer.push_back(Data_buffer_temp);
}
#ifdef RDP_RECORD_ENABLE
//判圈之前(所有 return 之前)把本帧收集的点迹一次入队
RDP_RECORD_POINTS(rec_points);
#endif
#ifdef PHASE_SCANNING
// 相扫模式下,判断前后两帧波位号的大小,来判断是否扫描一周完成
if(Data_Input[0].Beam_index_aiz <= last_beam_num) //TWS
@@ -101,6 +109,11 @@ int Data_Process::data_preprocess(struct DataRev Data_Input[150])
data_num = min(max(Data_Input[0].Point_Sum, 0), 150);
TAS_track_idx = Data_Input[0].TAS_track_index;
#ifdef RDP_RECORD_ENABLE
//记录输入点迹:处理线程内先收集源结构体,循环结束后一次入队(构造实体与写库由记录写线程完成)
std::vector<PointRecv> rec_points;
rec_points.reserve(static_cast<std::size_t>(data_num));
#endif
for (int i=0; i<data_num;i++)
{
PointRecv Data_buffer_temp;
@@ -129,7 +142,9 @@ int Data_Process::data_preprocess(struct DataRev Data_Input[150])
std::memcpy(Data_buffer_temp.speed_dim, Data_Input[i].speed_dim, sizeof(Data_buffer_temp.speed_dim));
std::memcpy(Data_buffer_temp.range_dim, Data_Input[i].range_dim, sizeof(Data_buffer_temp.range_dim));
RDP_RECORD(RdpRecPoint(Data_buffer_temp));
#ifdef RDP_RECORD_ENABLE
rec_points.push_back(Data_buffer_temp);
#endif
Data_buffer_tas.push_back(Data_buffer_temp);
@@ -140,6 +155,10 @@ int Data_Process::data_preprocess(struct DataRev Data_Input[150])
// << "data_num:" << data_num;
}
//circle_id++ 之前把本帧收集的点迹一次入队
#ifdef RDP_RECORD_ENABLE
RDP_RECORD_POINTS(rec_points);
#endif
circle_id++;
return 3;
}