ActiveProtect/docs/articles/warner-spec.md

9.6 KiB
Raw Permalink Blame History

告警器技术说明书

1. 概述

1.1 文档目的

本文档旨在详细描述主动防护系统中告警器子系统的设计实现,包括:

  1. 各型告警器的工作原理和关键算法
  2. 系统组件的交互机制和接口定义
  3. 关键参数的配置和验证方法
  4. 测试用例和验证流程

本文档可用于:

  • 系统设计和实现的参考依据
  • 测试验证的指导文档
  • 系统维护和升级的技术支持
  • 新功能开发的基础文档

1.2 适用范围

本文档适用于以下人员和场景:

  1. 开发人员

    • 系统功能实现
    • 接口开发和维护
    • 算法优化和改进
    • 新功能扩展开发
  2. 测试人员

    • 功能测试设计
    • 性能测试验证
    • 系统集成测试
    • 回归测试执行
  3. 维护人员

    • 系统问题诊断
    • 参数配置调整
    • 性能监控分析
    • 系统升级维护

1.3 系统功能

  1. 告警器类型支持

    • 激光告警器
    • 红外告警器
    • 毫米波告警器
    • 紫外告警器
  2. 核心功能

    • 威胁探测
    • 告警状态管理
    • 告警事件发布
    • 数据记录
    • 位置跟随
  3. 验证功能

    • 单元测试验证
    • 系统集成验证
    • 性能指标验证
    • 数据分析验证

1.4 参考文献

  1. 告警技术参考

    • 《激光探测技术》,国防工业出版社
    • 《红外探测原理》,科学出版社
    • 《毫米波雷达技术》,电子工业出版社
    • 《紫外探测技术》,国防工业出版社
  2. 系统设计参考

    • 《软件工程:实践者的研究方法》
    • 《面向对象分析与设计》
    • 《设计模式:可复用面向对象软件的基础》

2. 系统架构

2.1 总体架构

2.1.1 核心组件

  1. 基础告警器类 (WarnerBase)

    • 告警状态管理
    • 灵敏度控制
    • 告警持续时间管理
    • 位置跟随功能
  2. 具体告警器实现

    • 激光告警器 (LaserWarner)
    • 红外告警器 (InfraredWarner)
    • 毫米波告警器 (MillimeterWaveWarner)
    • 紫外告警器 (UltravioletWarner)
  3. 告警器接口 (IWarner)

    • 告警控制接口
    • 状态查询接口
    • 事件处理接口

2.1.2 事件系统

  1. 探测事件

    • 激光照射事件
    • 红外辐射事件
    • 毫米波辐射事件
    • 紫外辐射事件
  2. 告警控制事件

    • 告警开始事件
    • 告警停止事件
    • 告警状态更新事件

2.2 接口定义

2.2.1 IWarner 接口

public interface IWarner
{
    bool IsWarning { get; }
    void StartWarning();
    void StopWarning();
    string GetWarningStatus();
}

2.2.2 事件接口

  1. 告警事件基类

    • SenderId事件发送者ID
    • Timestamp事件时间戳
    • TargetId目标ID
  2. 具体事件类型

    • LaserWarnerAlarmEvent
    • InfraredWarnerAlarmEvent
    • MillimeterWaveWarnerAlarmEvent
    • UltravioletWarnerAlarmEvent

2.3 数据流

2.3.1 告警控制流程

graph LR
    A[威胁源] --> B[探测事件]
    B --> C[告警器]
    C --> D[告警控制]
    D --> E[告警事件]

2.3.2 状态更新流程

graph LR
    A[告警器] --> B[状态更新]
    B --> C[告警控制]
    C --> D[持续时间管理]
    D --> E[事件发布]

3. 具体实现

3.1 激光告警器

3.1.1 工作原理

激光告警器通过探测激光照射来发现威胁。其基本工作过程如下:

  1. 威胁探测

    • 接收激光照射事件
    • 计算照射功率密度
    • 判断是否超过阈值
    • 确认威胁有效性
  2. 告警过程

    • 启动告警状态
    • 维持告警持续时间
    • 发布告警事件
    • 更新告警状态
  3. 告警终止

    • 检查告警条件
    • 计算持续时间
    • 停止告警
    • 重置状态

3.1.2 关键参数

  1. 探测参数

    • 灵敏度阈值:由配置指定
    • 波长范围:由配置指定
    • 视场角:由配置指定
  2. 时间参数

    • 告警持续时间5秒
    • 更新周期:与仿真步长一致

3.2 红外告警器

3.2.1 工作原理

红外告警器通过探测红外辐射来发现威胁。其基本工作过程如下:

  1. 威胁探测

    • 接收红外辐射事件
    • 计算辐射强度
    • 判断是否超过阈值
    • 确认威胁有效性
  2. 告警过程

    • 启动告警状态
    • 维持告警持续时间
    • 发布告警事件
    • 更新告警状态
  3. 告警终止

    • 检查告警条件
    • 计算持续时间
    • 停止告警
    • 重置状态

3.2.2 关键参数

  1. 探测参数

    • 灵敏度阈值:由配置指定
    • 波长范围:由配置指定
    • 视场角:由配置指定
  2. 时间参数

    • 告警持续时间5秒
    • 更新周期:与仿真步长一致

3.3 毫米波告警器

3.3.1 工作原理

毫米波告警器通过探测毫米波辐射来发现威胁。其基本工作过程如下:

  1. 威胁探测

    • 接收毫米波辐射事件
    • 计算辐射强度
    • 判断是否超过阈值
    • 确认威胁有效性
  2. 告警过程

    • 启动告警状态
    • 维持告警持续时间
    • 发布告警事件
    • 更新告警状态
  3. 告警终止

    • 检查告警条件
    • 计算持续时间
    • 停止告警
    • 重置状态

3.3.2 关键参数

  1. 探测参数

    • 灵敏度阈值:由配置指定
    • 波长范围:由配置指定
    • 视场角:由配置指定
  2. 时间参数

    • 告警持续时间5秒
    • 更新周期:与仿真步长一致

3.4 紫外告警器

3.4.1 工作原理

紫外告警器通过探测紫外辐射来发现威胁。其基本工作过程如下:

  1. 威胁探测

    • 接收紫外辐射事件
    • 计算辐射强度
    • 判断是否超过阈值
    • 确认威胁有效性
  2. 告警过程

    • 启动告警状态
    • 维持告警持续时间
    • 发布告警事件
    • 更新告警状态
  3. 告警终止

    • 检查告警条件
    • 计算持续时间
    • 停止告警
    • 重置状态

3.4.2 关键参数

  1. 探测参数

    • 灵敏度阈值:由配置指定
    • 波长范围:由配置指定
    • 视场角:由配置指定
  2. 时间参数

    • 告警持续时间5秒
    • 更新周期:与仿真步长一致

4. 验证方法

4.1 单元测试

  1. 基础功能测试

    • 告警器初始化测试
    • 状态转换测试
    • 参数设置测试
    • 事件处理测试
  2. 探测功能测试

    • 阈值判断测试
    • 波长范围测试
    • 视场角测试
    • 探测精度测试
  3. 告警管理测试

    • 告警时间计算测试
    • 状态转换测试
    • 重置条件测试
    • 异常处理测试

4.2 系统测试

  1. 集成测试

    • 威胁响应测试
    • 事件处理测试
    • 状态同步测试
    • 数据记录测试
  2. 性能测试

    • 响应时间测试
    • 资源占用测试
    • 并发处理测试
    • 稳定性测试

4.3 验证要点

  1. 功能验证

    • 探测可靠性
    • 告警及时性
    • 状态管理有效性
    • 事件处理及时性
  2. 性能验证

    • 响应延迟
    • 探测精度
    • 状态转换时间
    • 系统稳定性

5. 附录

5.1 关键参数表

5.1.1 激光告警器参数

参数 单位 说明
灵敏度阈值 配置指定 W/m² 告警触发阈值
波长范围 配置指定 nm 探测波长范围
告警持续时间 5 s 单次告警时间

5.1.2 红外告警器参数

参数 单位 说明
灵敏度阈值 配置指定 W/m² 告警触发阈值
波长范围 配置指定 nm 探测波长范围
告警持续时间 5 s 单次告警时间

5.1.3 毫米波告警器参数

参数 单位 说明
灵敏度阈值 配置指定 W/m² 告警触发阈值
波长范围 配置指定 nm 探测波长范围
告警持续时间 5 s 单次告警时间

5.1.4 紫外告警器参数

参数 单位 说明
灵敏度阈值 配置指定 W/m² 告警触发阈值
波长范围 配置指定 nm 探测波长范围
告警持续时间 5 s 单次告警时间

5.2 标准测试用例

5.2.1 功能测试用例

  1. 告警器启动测试

    [Test]
    public void TestWarnerStart()
    {
        var warner = new LaserWarner(/*参数*/);
        warner.StartWarning();
        Assert.IsTrue(warner.IsWarning);
    }
    
  2. 告警持续时间测试

    [Test]
    public void TestWarningDuration()
    {
        var warner = new LaserWarner(/*参数*/);
        warner.StartWarning();
        warner.Update(5.0); // 更新5秒
        Assert.IsFalse(warner.IsWarning);
    }
    
  3. 阈值判断测试

    [Test]
    public void TestThreshold()
    {
        var warner = new LaserWarner(/*参数*/);
        var evt = new LaserIlluminationEvent { Intensity = threshold + 1 };
        warner.OnLaserIllumination(evt);
        Assert.IsTrue(warner.IsWarning);
    }
    

5.3 数据格式说明

5.3.1 配置数据格式

{
    "warnerId": "string",
    "sensitivityThreshold": "double",
    "wavelengthMin": "double",
    "wavelengthMax": "double",
    "alarmDuration": "double"
}

5.3.2 事件数据格式

{
    "eventType": "WarningEvent",
    "senderId": "string",
    "timestamp": "long",
    "targetId": "string",
    "intensity": "double",
    "status": "string"
}