SensorSpec +HasRadar/HasEO/HasIR 显式类型字段

- SensorSpec 新增三个 bool 字段,前端直接读取探测设备类型,无需推断
- DefaultData.Load 后由 Range 字段派生填充
- 支持复合传感器(如光电+红外 eo-station)
- 对接文档同步更新
- 262 测试通过,Unity 编译通过
This commit is contained in:
tian 2026-06-21 10:39:14 +08:00
parent a6ad8a348e
commit 0002e7efbe
5 changed files with 19 additions and 0 deletions

View File

@ -795,6 +795,9 @@ ScenarioConfig
| `RadarRange` | double | 雷达探测距离 m0=无) |
| `EORange` | double | 光电探测距离 m |
| `IRRange` | double | 红外探测距离 m |
| `HasRadar` | bool | 是否含雷达探测能力(由 RadarRange>0 派生) |
| `HasEO` | bool | 是否含光电探测能力(由 EORange>0 派生) |
| `HasIR` | bool | 是否含红外探测能力(由 IRRange>0 派生) |
| `Accuracy` | double | 探测精度(位置误差 m |
| `MinElevation` | double? | 最小仰角 |
| `MaxElevation` | double? | 最大仰角 |

View File

@ -69,6 +69,14 @@ namespace CounterDrone.Core
throw new InvalidOperationException($"默认数据缺少 environments: {source}");
if (data.Sensors == null)
data.Sensors = new();
// 由 Range 字段派生 HasRadar/HasEO/HasIRJSON 可能未显式设置)
foreach (var s in data.Sensors)
{
s.HasRadar = s.RadarRange > 0;
s.HasEO = s.EORange > 0;
s.HasIR = s.IRRange > 0;
}
}
}
}

View File

@ -13,6 +13,14 @@ namespace CounterDrone.Core.Models
public double RadarRange { get; set; }
public double EORange { get; set; }
public double IRRange { get; set; }
/// <summary>是否含雷达探测能力</summary>
public bool HasRadar { get; set; }
/// <summary>是否含光电探测能力</summary>
public bool HasEO { get; set; }
/// <summary>是否含红外探测能力</summary>
public bool HasIR { get; set; }
public double Accuracy { get; set; } = 50.0;
/// <summary>3D 模型 IDFK → ModelInfoUnity 可视化用</summary>

Binary file not shown.