更新:1、修改TAS波束控制逻辑,现在按固定数据率调度TAS波束;
Signed-off-by: waiwaylee <waiwaylee@foxmail.com>
This commit is contained in:
@@ -6,6 +6,12 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
// parameters.h 中定义了 DATA_RATE_TAS 宏(相扫0.3/机扫0.0625),
|
||||
// 而本模块的波束门控必须使用 RadarPara 结构体成员 Work_Parameter.DATA_RATE_TAS
|
||||
// (由dll调用者经 track_process_parameters_initial 输入),故取消该宏定义,
|
||||
// 否则 Work_Parameter.DATA_RATE_TAS 会被预处理器展开为非法常量表达式。
|
||||
#undef DATA_RATE_TAS
|
||||
|
||||
TAS_Ctrl::TAS_Ctrl()
|
||||
{
|
||||
memset(tas_target_queue,0,TAS_QUEUE_LENGTH*sizeof(Tracking_Target));
|
||||
@@ -31,7 +37,7 @@ void TAS_Ctrl::tas_ctrl_process(std::vector<Trust_Track> *trust_track
|
||||
*Trust_track_num_Output = 0;
|
||||
tas_target_add(trust_track, Trust_Track_Output, Trust_track_num_Output,Work_Parameter);
|
||||
tas_target_del(trust_track, Trust_Track_Output, Trust_track_num_Output,Work_Parameter);
|
||||
tas_beam_output(trust_track,Tracking_beam,latest_timestamp);
|
||||
tas_beam_output(trust_track,Tracking_beam,Work_Parameter,latest_timestamp);
|
||||
|
||||
//跟踪队列移位
|
||||
struct Tracking_Target tas_target_tmp;
|
||||
@@ -246,6 +252,7 @@ void TAS_Ctrl::tas_target_del(std::vector<Trust_Track> *trust_track,
|
||||
|
||||
void TAS_Ctrl::tas_beam_output(std::vector<Trust_Track> *trust_track,
|
||||
struct TrackingBeam *Tracking_beam,
|
||||
struct RadarPara Work_Parameter,
|
||||
long long latest_timestamp)
|
||||
{
|
||||
if(tas_target_queue[0].empty_flag==1)
|
||||
@@ -273,6 +280,20 @@ void TAS_Ctrl::tas_beam_output(std::vector<Trust_Track> *trust_track
|
||||
return;
|
||||
}
|
||||
|
||||
//数据率门控:航迹时间与当前最新时间戳的差值大于 1/DATA_RATE_TAS 时才输出TAS跟踪波束,
|
||||
//保证TAS目标数据率不随波束时间变化(使用Work_Parameter中的DATA_RATE_TAS参数值)。
|
||||
//DATA_RATE_TAS<=0 时不做门控,按原逻辑每次输出(避免除零,兼容未配置该参数的调用者)。
|
||||
if (Work_Parameter.DATA_RATE_TAS > 0)
|
||||
{
|
||||
double delta_T_track = (double)(latest_timestamp - CPI_time) / 1000.0;
|
||||
if (delta_T_track <= 1.0 / Work_Parameter.DATA_RATE_TAS)
|
||||
{
|
||||
//更新间隔未到 不输出跟踪波束
|
||||
Tracking_beam->open_flag = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
float delta_T = (latest_timestamp - CPI_time) / 1000.0f;
|
||||
|
||||
//预测目标位置 计算跟踪波束波位号 俯仰角
|
||||
|
||||
Reference in New Issue
Block a user