diff --git a/CHANGELOG.md b/CHANGELOG.md index f6a37a2..4484cd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,25 @@ 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/)。 版本规范基于 [Semantic Versioning](https://semver.org/lang/zh-CN/)。 +## [未发布] + +### 计划功能 +- Matlab/Simulink 仿真环境适配器 + - 支持与 Simulink 模型的数据交互 + - 实现实时仿真数据同步 + - 处理不同时间步长的协调 + - +## [0.2.2] - 2025-02-13 + +### 功能优化 +- 修改第三方仿真环境适配器接口 + - 增加状态数据接口 + - 增加环境参数设置接口 + - 增加仿真时间同步接口 + +- 增加仿真环境数据类 + - 增加大气密度、温度、湿度、风速、能见度、地形高程等参数 + ## [0.2.1] - 2025-01-10 ### 功能优化 diff --git a/ThreatSource/src/Simulation/ISimulationManager.cs b/ThreatSource/src/Simulation/ISimulationManager.cs index 10207a8..14d6696 100644 --- a/ThreatSource/src/Simulation/ISimulationManager.cs +++ b/ThreatSource/src/Simulation/ISimulationManager.cs @@ -1,8 +1,47 @@ using System; using System.Collections.Generic; +using ThreatSource.Utils; namespace ThreatSource.Simulation { + /// + /// 仿真环境数据类,包含环境相关的参数 + /// + /// + /// 该类封装了仿真环境的关键参数: + /// - 大气参数(密度、温度、湿度) + /// - 气象条件(风速、能见度) + /// - 地理信息(地形、高程) + /// 用于模拟真实环境对仿真的影响 + /// + public class SimulationEnvironmentData + { + /// + /// 获取或设置大气密度,单位:千克/立方米 + /// + public double AtmosphericDensity { get; set; } + + /// + /// 获取或设置风速向量,单位:米/秒 + /// + public Vector3D WindVelocity { get; set; } = Vector3D.Zero; + + /// + /// 获取或设置环境温度,单位:开尔文 + /// + public double Temperature { get; set; } + + /// + /// 获取或设置相对湿度,范围:0-1 + /// + public double RelativeHumidity { get; set; } + + /// + /// 获取或设置能见度,单位:米 + /// + public double Visibility { get; set; } + } + /// /// 第三方仿真环境适配器接口 /// @@ -22,7 +61,7 @@ namespace ThreatSource.Simulation /// /// 发布事件到第三方仿真环境 /// - /// 事件类型 + /// 事件类型 /// 要发布的事件 /// /// 用于将威胁源仿真库中的事件同步到外部仿真环境 @@ -38,6 +77,26 @@ namespace ThreatSource.Simulation /// 用于接收外部仿真环境的事件并在威胁源仿真库中处理 /// void ReceiveFromExternalSimulation(T evt); + + /// + /// 获取实体的状态 + /// + /// 实体ID + /// 实体的状态数据 + SimulationElement GetEntityState(string id); + + /// + /// 设置实体的环境数据 + /// + /// 实体ID + /// 实体的环境数据 + void SetEntityEnvironment(string id, SimulationEnvironmentData data); + + /// + /// 同步仿真时间 + /// + /// 仿真时间 + void SynchronizeTime(double simulationTime); } /// diff --git a/VERSION b/VERSION index 5a78111..f477849 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.2.1 \ No newline at end of file +0.2.2 \ No newline at end of file