490 lines
12 KiB
C#
490 lines
12 KiB
C#
using ActiveProtect.Utility;
|
|
using ActiveProtect.Models;
|
|
using System.Net.Mime;
|
|
|
|
namespace ActiveProtect.Simulation
|
|
{
|
|
/// <summary>
|
|
/// 仿真事件的基类
|
|
/// </summary>
|
|
public class SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 事件发送者的ID
|
|
/// </summary>
|
|
public string? SenderId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 事件发生的时间戳
|
|
/// </summary>
|
|
public double Timestamp { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 导弹发射事件
|
|
/// </summary>
|
|
public class MissileFireEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 激光照射事件
|
|
/// </summary>
|
|
public class LaserIlluminationStartEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 激光定位器
|
|
/// </summary>
|
|
public LaserDesignator? LaserDesignator { get; set; }
|
|
|
|
/// <summary>
|
|
/// 目标元素
|
|
/// </summary>
|
|
public SimulationElement? Target { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 激光照射更新事件
|
|
/// </summary>
|
|
public class LaserIlluminationUpdateEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 激光定位器
|
|
/// </summary>
|
|
public LaserDesignator? LaserDesignator { get; set; }
|
|
|
|
/// <summary>
|
|
/// 目标元素
|
|
/// </summary>
|
|
public SimulationElement? Target { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 激光照射停止事件
|
|
/// </summary>
|
|
public class LaserIlluminationStopEvent : SimulationEvent
|
|
{
|
|
public LaserDesignator? LaserDesignator { get; set; }
|
|
public SimulationElement? Target { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 激光干扰事件
|
|
/// </summary>
|
|
public class LaserJammingEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 干扰功率
|
|
/// </summary>
|
|
public double JammingPower { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 实体销毁事件
|
|
/// </summary>
|
|
public class EntityDestroyedEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 被销毁实体的ID
|
|
/// </summary>
|
|
public string? DestroyedEntityId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 激光告警器警报事件
|
|
/// </summary>
|
|
public class LaserWarnerAlarmEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 激光告警器警报停止事件
|
|
/// </summary>
|
|
public class LaserWarnerAlarmStopEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 实体激活事件
|
|
/// </summary>
|
|
public class EntityActivatedEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 被激活实体的ID
|
|
/// </summary>
|
|
public string? ActivatedEntityId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 实体停用事件
|
|
/// </summary>
|
|
public class EntityDeactivatedEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 被停用实体的ID
|
|
/// </summary>
|
|
public string? DeactivatedEntityId { get; set; }
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 激光开始事件
|
|
/// </summary>
|
|
public class LaserBeamStartEvent : SimulationEvent
|
|
{
|
|
public LaserBeamRider? LaserBeamRider { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 激光更新事件
|
|
/// </summary>
|
|
public class LaserBeamUpdateEvent : SimulationEvent
|
|
{
|
|
public LaserBeamRider? LaserBeamRider { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 激光停止事件
|
|
/// </summary>
|
|
public class LaserBeamStopEvent : SimulationEvent
|
|
{
|
|
public LaserBeamRider? LaserBeamRider { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 红外指令制导事件
|
|
/// </summary>
|
|
public class InfraredGuidanceCommandEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标导弹ID
|
|
/// </summary>
|
|
public string? TargetMissileId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 视线向量
|
|
/// </summary>
|
|
public Vector3D TrackerToTargetVector { get; set; } = Vector3D.Zero;
|
|
|
|
/// <summary>
|
|
/// 视线向量
|
|
/// </summary>
|
|
public Vector3D TrackerToMissileVector { get; set; } = Vector3D.Zero;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 红外指令制导导弹点亮红外热源事件
|
|
/// </summary>
|
|
public class InfraredGuidanceMissileLightEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 红外热源辐射功率(瓦特)
|
|
/// </summary>
|
|
public double RadiationPower { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 红外指令制导导弹熄灭红外热源事件
|
|
/// </summary>
|
|
public class InfraredGuidanceMissileLightOffEvent : SimulationEvent
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// 毫米波干扰事件
|
|
/// </summary>
|
|
public class MillimeterWaveJammingEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 干扰功率(瓦特)
|
|
/// </summary>
|
|
public double JammingPower { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 坦克辐射事件
|
|
/// </summary>
|
|
public class TankRadiationEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 激光漫反射强度
|
|
/// </summary>
|
|
public double LaserReflectionIntensity { get; set; }
|
|
|
|
/// <summary>
|
|
/// 毫米波反射强度
|
|
/// </summary>
|
|
public double MillimeterWaveReflectionIntensity { get; set; }
|
|
|
|
/// <summary>
|
|
/// 毫米波辐射温度
|
|
/// </summary>
|
|
public double MillimeterWaveRadiationTemperature { get; set; }
|
|
|
|
/// <summary>
|
|
/// 红外辐射强度
|
|
/// </summary>
|
|
public double InfraredRadiationIntensity { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 目标被击中事件
|
|
/// </summary>
|
|
public class TargetHitEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 导弹ID
|
|
/// </summary>
|
|
public string? MissileId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 红外探测事件
|
|
/// </summary>
|
|
public class InfraredDetectionEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 红外辐射强度
|
|
/// </summary>
|
|
public double Intensity { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 红外告警器警报事件
|
|
/// </summary>
|
|
public class InfraredWarnerAlarmEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 红外告警器警报停止事件
|
|
/// </summary>
|
|
public class InfraredWarnerAlarmStopEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 紫外探测事件
|
|
/// </summary>
|
|
public class UltravioletDetectionEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 紫外辐射强度
|
|
/// </summary>
|
|
public double Intensity { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 紫外告警器警报事件
|
|
/// </summary>
|
|
public class UltravioletWarnerAlarmEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 紫外告警器警报停止事件
|
|
/// </summary>
|
|
public class UltravioletWarnerAlarmStopEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 毫米波探测事件
|
|
/// </summary>
|
|
public class MillimeterWaveDetectionEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 毫米波辐射强度
|
|
/// </summary>
|
|
public double Intensity { get; set; }
|
|
|
|
/// <summary>
|
|
/// 毫米波频率(GHz)
|
|
/// </summary>
|
|
public double Frequency { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 毫米波告警器警报事件
|
|
/// </summary>
|
|
public class MillimeterWaveWarnerAlarmEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 探测到的频率(GHz)
|
|
/// </summary>
|
|
public double DetectedFrequency { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 毫米波告警器警报停止事件
|
|
/// </summary>
|
|
public class MillimeterWaveWarnerAlarmStopEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 红外干扰事件
|
|
/// </summary>
|
|
public class InfraredJammingEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 干扰功率(瓦特)
|
|
/// </summary>
|
|
public double JammingPower { get; set; }
|
|
|
|
/// <summary>
|
|
/// 最小波长(微米)
|
|
/// </summary>
|
|
public double WavelengthMin { get; set; }
|
|
|
|
/// <summary>
|
|
/// 最大波长(微米)
|
|
/// </summary>
|
|
public double WavelengthMax { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 烟幕干扰事件
|
|
/// </summary>
|
|
public class SmokeJammingEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 烟幕类型
|
|
/// </summary>
|
|
public SmokeType SmokeType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 烟幕浓度(kg/m³)
|
|
/// </summary>
|
|
public float Density { get; set; }
|
|
|
|
/// <summary>
|
|
/// 烟幕厚度(米)
|
|
/// </summary>
|
|
public float Thickness { get; set; }
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 末敏弹毫米波干扰事件
|
|
/// </summary>
|
|
public class TerminalMillimeterWaveJammingEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 干扰功率(瓦特)
|
|
/// </summary>
|
|
public double JammingPower { get; set; }
|
|
|
|
/// <summary>
|
|
/// 干扰频率(GHz)
|
|
/// </summary>
|
|
public double Frequency { get; set; }
|
|
|
|
/// <summary>
|
|
/// 距离(米)
|
|
/// </summary>
|
|
public double Distance { get; set; }
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 末敏弹威胁探测事件
|
|
/// </summary>
|
|
public class TerminalThreatDetectionEvent : SimulationEvent
|
|
{
|
|
/// <summary>
|
|
/// 目标ID
|
|
/// </summary>
|
|
public string? TargetId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 目标距离(米)
|
|
/// </summary>
|
|
public double Distance { get; set; }
|
|
}
|
|
|
|
}
|