ThreatSourceLibaray/docs/project/simulation_events_checklist.md

14 KiB

威胁源仿真系统事件清单

文档概述

本文档整理了威胁源仿真系统中所有实体的生命周期事件和交互事件,用于查漏补缺和系统完整性验证。

版本: 1.0
创建日期: 2024年12月
最后更新: 2024年12月


1. 导弹生命周期事件

1.1 导弹状态事件

事件名称 事件类 触发时机 包含信息 订阅者
导弹发射 MissileFireEvent 导弹Fire()方法调用时 SenderId, TargetId 仿真管理器, 外部系统
导弹激活 (缺失) 导弹Activate()时 SenderId -
导弹停用 (缺失) 导弹Deactivate()时 SenderId -
导弹自毁 (缺失) 导弹SelfDestruct()时 SenderId, 原因 -
导弹爆炸 (缺失) 导弹Explode()时 SenderId, 位置 -
导弹阶段切换 (缺失) 飞行阶段变化时 SenderId, 旧阶段, 新阶段 -

1.2 导弹运动事件

事件名称 事件类 触发时机 包含信息 订阅者
发动机启动 (缺失) 推力开始时 SenderId, 推力值 -
发动机关闭 (缺失) 推力结束时 SenderId, 关闭原因 -
速度限制触发 (缺失) 达到最大速度时 SenderId, 当前速度 -

1.3 导弹制导事件

事件名称 事件类 触发时机 包含信息 订阅者
制导获得 (缺失) IsGuidance变为true时 SenderId, 制导类型 -
制导丢失 (缺失) IsGuidance变为false时 SenderId, 丢失原因 -
制导指令更新 (缺失) GuidanceAcceleration更新时 SenderId, 制导加速度 -

2. 目标/装备生命周期事件

2.1 目标状态事件

事件名称 事件类 触发时机 包含信息 订阅者
目标被击中 TargetHitEvent 导弹命中目标时 TargetId, MissileId 仿真管理器
目标被摧毁 TargetDestroyedEvent 目标生命值≤0时 TargetId, MissileId 仿真管理器
目标激活 (缺失) 目标Activate()时 SenderId -
目标停用 (缺失) 目标Deactivate()时 SenderId -
目标受损 (缺失) TakeDamage()调用时 SenderId, 伤害值, 剩余生命值 -

2.2 目标运动事件

事件名称 事件类 触发时机 包含信息 订阅者
目标位置更新 (缺失) 位置显著变化时 SenderId, 新位置, 速度 -
目标停止 (缺失) 速度降为0时 SenderId, 停止位置 -

3. 指示器生命周期事件

3.1 激光指示器事件

事件名称 事件类 触发时机 包含信息 订阅者
激光照射开始 LaserIlluminationEvent 开始照射目标时 LaserDesignatorId, TargetId, SpotPosition, LaserCodeConfig 激光制导导弹
激光照射停止 LaserIlluminationStopEvent 停止照射时 LaserDesignatorId, TargetId 激光制导导弹
激光编码不匹配 LaserCodeMismatchEvent 编码验证失败时 MissileId, DesignatorId, ExpectedCodeConfig, ReceivedCodeConfig 导弹制导系统

3.2 激光驾束仪事件

事件名称 事件类 触发时机 包含信息 订阅者
激光波束开始 LaserBeamEvent 开始发射波束时 LaserBeamRiderId, BeamPower, LaserCodeConfig 激光驾束导弹
激光波束停止 LaserBeamStopEvent 停止发射波束时 LaserBeamRiderId 激光驾束导弹

3.3 红外测角仪事件

事件名称 事件类 触发时机 包含信息 订阅者
红外制导指令 InfraredGuidanceCommandEvent 发送制导指令时 TargetMissileId, TrackerToTargetVector, TrackerToMissileVector 红外指令导弹
导弹红外热源点亮 InfraredGuidanceMissileLightEvent 导弹发动机点火时 SenderId, RadiationPower 红外测角仪
导弹红外热源熄灭 InfraredGuidanceMissileLightOffEvent 导弹发动机关闭时 SenderId 红外测角仪

3.4 指示器状态事件

事件名称 事件类 触发时机 包含信息 订阅者
指示器激活 (缺失) 指示器Activate()时 SenderId, 指示器类型 -
指示器停用 (缺失) 指示器Deactivate()时 SenderId, 指示器类型 -
目标锁定 (缺失) 成功锁定目标时 SenderId, TargetId -
目标丢失 (缺失) 失去目标时 SenderId, TargetId, 丢失原因 -

4. 告警器事件

4.1 激光告警器事件

事件名称 事件类 触发时机 包含信息 订阅者
激光告警开始 LaserWarnerAlarmEvent 检测到激光照射时 SenderId, TargetId 目标防护系统
激光告警停止 LaserWarnerAlarmStopEvent 激光照射结束时 SenderId, TargetId 目标防护系统

4.2 红外告警器事件

事件名称 事件类 触发时机 包含信息 订阅者
红外探测 InfraredDetectionEvent 检测到红外辐射时 SenderId, TargetId, Intensity -
红外告警开始 InfraredWarnerAlarmEvent 红外威胁告警时 SenderId, TargetId 目标防护系统
红外告警停止 InfraredWarnerAlarmStopEvent 红外威胁消失时 SenderId, TargetId 目标防护系统

4.3 紫外告警器事件

事件名称 事件类 触发时机 包含信息 订阅者
紫外探测 UltravioletDetectionEvent 检测到紫外辐射时 SenderId, TargetId, Intensity -
紫外告警开始 UltravioletWarnerAlarmEvent 紫外威胁告警时 SenderId, TargetId 目标防护系统
紫外告警停止 UltravioletWarnerAlarmStopEvent 紫外威胁消失时 SenderId, TargetId 目标防护系统

4.4 毫米波告警器事件

事件名称 事件类 触发时机 包含信息 订阅者
毫米波探测 MillimeterWaveDetectionEvent 检测到毫米波辐射时 SenderId, TargetId, Intensity, Frequency -
毫米波告警开始 MillimeterWaveWarnerAlarmEvent 毫米波威胁告警时 SenderId, TargetId, DetectedFrequency 目标防护系统
毫米波告警停止 MillimeterWaveWarnerAlarmStopEvent 毫米波威胁消失时 SenderId, TargetId 目标防护系统

5. 干扰器事件

5.1 通用干扰事件

事件名称 事件类 触发时机 包含信息 订阅者
干扰开始 JammingEvent 干扰器开始工作时 SenderId, Parameters(功率、波长、位置、方向等) 所有可干扰设备
干扰停止 JammingStoppedEvent 干扰器停止工作时 SenderId, Parameters 所有可干扰设备

5.2 干扰器状态事件

事件名称 事件类 触发时机 包含信息 订阅者
干扰器激活 (缺失) 干扰器Activate()时 SenderId, 干扰类型 -
干扰器停用 (缺失) 干扰器Deactivate()时 SenderId, 干扰类型 -
干扰器故障 (缺失) 状态变为Fault时 SenderId, 故障原因 -
干扰器冷却 (缺失) 状态变为Cooling时 SenderId, 冷却时间 -

6. 系统级事件

6.1 仿真控制事件

事件名称 事件类 触发时机 包含信息 订阅者
仿真开始 (缺失) StartSimulation()时 时间步长 所有实体
仿真暂停 (缺失) PauseSimulation()时 暂停时间 所有实体
仿真恢复 (缺失) ResumeSimulation()时 恢复时间 所有实体
仿真停止 (缺失) StopSimulation()时 停止时间 所有实体

6.2 实体管理事件

事件名称 事件类 触发时机 包含信息 订阅者
实体注册 (缺失) RegisterEntity()时 EntityId, EntityType 仿真管理器
实体注销 (缺失) UnregisterEntity()时 EntityId, EntityType 仿真管理器
实体销毁 EntityDestroyedEvent 实体被销毁时 DestroyedEntityId 仿真管理器

6.3 环境事件

事件名称 事件类 触发时机 包含信息 订阅者
天气变化 (缺失) SetWeather()时 新天气条件 所有实体
时间同步 (缺失) 时间步进时 当前仿真时间 外部系统

7. 交互事件矩阵

7.1 导弹-目标交互

发送者 接收者 事件 触发条件
导弹 目标 TargetHitEvent 导弹命中目标
目标 系统 TargetDestroyedEvent 目标生命值耗尽

7.2 指示器-导弹交互

发送者 接收者 事件 触发条件
激光指示器 激光制导导弹 LaserIlluminationEvent 照射目标
激光驾束仪 激光驾束导弹 LaserBeamEvent 发射波束
红外测角仪 红外指令导弹 InfraredGuidanceCommandEvent 发送制导指令
导弹 红外测角仪 InfraredGuidanceMissileLightEvent 发动机点火

7.3 干扰器-设备交互

发送者 接收者 事件 触发条件
干扰器 所有可干扰设备 JammingEvent 开始干扰
干扰器 所有可干扰设备 JammingStoppedEvent 停止干扰

7.4 告警器-目标交互

发送者 接收者 事件 触发条件
告警器 目标 *WarnerAlarmEvent 检测到威胁
告警器 目标 *WarnerAlarmStopEvent 威胁消失

8. 缺失事件分析

8.1 高优先级缺失事件

  1. 导弹状态变化事件: 激活、停用、自毁、爆炸、阶段切换
  2. 制导状态事件: 制导获得、制导丢失、制导指令更新
  3. 发动机事件: 启动、关闭、推力变化
  4. 仿真控制事件: 开始、暂停、恢复、停止
  5. 实体管理事件: 注册、注销

8.2 中优先级缺失事件

  1. 目标状态事件: 激活、停用、受损、位置更新
  2. 指示器状态事件: 激活、停用、目标锁定、目标丢失
  3. 干扰器状态事件: 激活、停用、故障、冷却
  4. 环境事件: 天气变化、时间同步

8.3 低优先级缺失事件

  1. 性能监控事件: CPU使用率、内存使用率、帧率
  2. 调试事件: 断点触发、变量变化、异常捕获
  3. 统计事件: 命中率统计、干扰效果统计

9. 事件订阅关系图

仿真管理器
├── 订阅所有实体的生命周期事件
├── 发布系统级事件
└── 转发事件到外部系统

导弹
├── 订阅: TargetHitEvent, JammingEvent, LaserIlluminationEvent等
├── 发布: MissileFireEvent, InfraredGuidanceMissileLightEvent等
└── 响应: 制导指令、干扰信号

目标/装备
├── 订阅: *WarnerAlarmEvent, JammingEvent
├── 发布: TargetHitEvent, TargetDestroyedEvent
└── 响应: 告警信号、干扰信号

指示器
├── 订阅: JammingEvent, InfraredGuidanceMissileLightEvent
├── 发布: LaserIlluminationEvent, InfraredGuidanceCommandEvent等
└── 响应: 干扰信号、导弹状态

干扰器
├── 订阅: 无(主动发射)
├── 发布: JammingEvent, JammingStoppedEvent
└── 响应: 控制指令

告警器
├── 订阅: 辐射探测信号
├── 发布: *WarnerAlarmEvent, *DetectionEvent
└── 响应: 威胁信号

10. 改进建议

10.1 立即实施

  1. 添加导弹生命周期事件: 激活、停用、自毁、爆炸事件
  2. 添加制导状态事件: 制导获得、丢失事件
  3. 添加仿真控制事件: 开始、停止、暂停、恢复事件

10.2 短期实施

  1. 完善实体管理事件: 注册、注销事件
  2. 添加发动机事件: 启动、关闭事件
  3. 添加环境事件: 天气变化事件

10.3 长期实施

  1. 性能监控事件系统
  2. 调试事件系统
  3. 统计分析事件系统

11. 事件命名规范

11.1 命名约定

  • 状态变化事件: [Entity][State]Event (如: MissileActivatedEvent)
  • 动作事件: [Entity][Action]Event (如: MissileFiredEvent)
  • 交互事件: [Source]To[Target][Action]Event (如: LaserToMissileIlluminationEvent)

11.2 属性约定

  • 必需属性: SenderId, Timestamp
  • 标识属性: TargetId, EntityId
  • 数据属性: 具体的状态或参数信息

事件设计原则

包含的事件类型

  1. 关键业务动作: 导弹发射、激光照射、制导指令等
  2. 重要结果状态: 目标命中、摧毁、爆炸等
  3. 系统级变化: 实体激活/停用、仿真控制等

不包含的事件类型

  1. 运行时状态变化: 目标丢失、FOV变化、临时干扰等
  2. 可查询的状态: 通过属性直接获取的信息
  3. 高频变化状态: 可能产生事件泛滥的状态变化

设计理念

保持事件系统的简洁性和高效性,专注于用户真正需要响应的关键事件, 避免因过度细化而增加系统复杂性。


文档结束

此文档将随着系统发展持续更新,请定期检查事件完整性。