Qt AFSim雷达显控端-威胁目标信息卡片

Qt AFSim雷达显控端-威胁目标信息卡片

概述

ThreatTargetCard 是一个基于 Qt 的威胁目标信息卡片组件,用于在战术显示界面中展示单个威胁目标的详细信息。该组件支持选中状态、威胁等级可视化以及丰富的目标数据展示。

主要功能

1. 目标数据管理

  • 设置目标数据 :通过 setTargetData() 方法设置 LocalTrack 类型的目标数据
  • 获取目标数据 :通过 getTargetData() 方法获取当前显示的目标数据
  • 数据更新:当目标数据更新时,自动刷新界面显示

2. 选中状态管理

  • 支持可选中功能(checkable
  • 通过 setSelected()isSelected() 方法管理选中状态
  • 选中状态改变时自动更新外观

3. 威胁等级可视化

  • 根据目标的 IFF 状态和实体类型自动推断威胁等级
  • 威胁等级分为:High (高威胁)、Medium (中威胁)、Low(低威胁)
  • 不同威胁等级对应不同的颜色标识:
    • High:红色 (#FF0000)
    • Medium:橙色 (#FF9900)
    • Low:绿色 (#00CC66)

4. 信息展示

卡片按顺序显示以下信息:

  1. 目标批号(ID):显示在顶部,带有威胁等级背景色
  2. 目标名称:显示目标名称,如果为空则显示 "-"
  3. 平台类型:根据高度自动判断(Aircraft/Surface/Submarine/Land)
  4. 航向:显示目标航向角度(度)
  5. 速度:显示目标速度(米/秒)
  6. 高度:显示目标高度(英尺),带有接近/远离箭头指示
  7. 电子战信号:显示传感器信息
  8. IFF 状态:显示敌我识别状态(Friend/Foe/Neutral/No IFF Response)

推断规则

  • 如果 IFF 状态为 IFF_FOE,返回 "High"
  • 如果 IFF 状态为 IFF_NEUTRAL,返回 "Medium"
  • 如果 IFF 状态为 IFF_FRIEND,返回 "Low"
  • 如果 IFF 状态未知,根据实体类型推断:
    • 空中目标(Air):"High"
    • 水面目标(Surface):"Medium"
    • 其他:"Low"
QString getThreatLevelBg(const QString &level) const

根据威胁等级返回对应的背景颜色。

QString targetTypeToText(diting::EntityType t) const

将实体类型枚举转换为文本显示。

映射关系

  • EntityType::Air → "Aircraft"
  • EntityType::Surface → "Surface"
  • EntityType::Submarine → "Submarine"
  • EntityType::Land → "Land"
  • 其他 → "Unknown"

使用示例

基本使用

cpp 复制代码
#include "threattargetcard.h"
#include "situation_types.h"

// 创建卡片
ThreatTargetCard *card = new ThreatTargetCard(parent);

// 设置目标数据
diting::LocalTrack track;
track.track_number = 1001;
track.target_name = "Target-001";
track.pos.altitude = 5000.0;  // 米
track.ground_heading = 45.0;
track.ground_speed = 250.0;
track.iff_status = diting::IFFStatus::IFF_FOE;

card->setTargetData(track);

// 监听选中状态
connect(card, &QPushButton::toggled, [](bool checked) {
    if (checked) {
        qDebug() << "Card selected";
    }
});

数据依赖

依赖的数据结构

组件依赖 diting::LocalTrack 结构体,主要使用的字段包括:

  • track_number:航迹号(用于显示 ID)
  • target_name:目标名称
  • pos.altitude:高度(用于判断平台类型和显示)
  • ground_heading:地面航向
  • ground_speed:地面速度
  • ground_velocity_valid:地面速度有效性
  • bearing:方位角(用于判断接近/远离)
  • iff_status:IFF 状态(用于威胁等级推断)

接近/远离判断

通过比较航向(ground_heading)和方位角(bearing)的差值来判断目标是否接近:

  • 差值绝对值 ≤ 90°:远离(显示 → 箭头)
  • 差值绝对值 > 90°:接近(显示 ← 箭头)
相关推荐
雨田哥1 天前
Qt AFSim雷达显控终端飞腾D3000适配教程
qt雷达·qt afsim·qt国产化适配·qtgis·qt显控端·qt飞腾d3000·qt国产arm
雨田哥1 天前
Qt AFSim雷达显控端-战术显示面板
qt雷达·qt仿真·qt地图·qt afsim·qt雷达显控·qt战术显示面板·qt模拟
雨田哥1 天前
Qt AFSim雷达探测显示
qt·afsim·qt雷达·qt仿真·雷达显控端·qt雷达模拟器
信必诺3 个月前
AFSim2.9.0学习笔记 —— 2、AFSim的Wizard软件概述(ArkSIM集成开发环境 (IDE))
afsim·仿真推演·仿真作战
信必诺3 个月前
AFSim2.9.0学习笔记 —— 3、Wizard平台类型与ArkSIM平台介绍
afsim·推演仿真·作战推演
幽迷狂4 个月前
AFSIM入门教程03.03:更新所有依赖库版本
c++·qt·仿真·osgearth·osg·军事·afsim
天边树若荠10 个月前
(一)afsim第三方库编译
跨平台·麒麟·afsim