From a7abba5de7680803ac55ef2208fcfdbb360e6ba4 Mon Sep 17 00:00:00 2001
From: Tian jianyong <11429339@qq.com>
Date: Thu, 10 Apr 2025 19:39:00 +0800
Subject: [PATCH] =?UTF-8?q?Fix=E4=BA=86=E4=B8=80=E4=BA=9B=E5=B9=B2?=
=?UTF-8?q?=E6=89=B0=E6=B5=8B=E8=AF=95=E7=9A=84=20BUG?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/Indicator/LaserDesignatorTests.cs | 10 ++--
.../Jamming/InfraredDetectorJammingTests.cs | 24 +++++-----
.../src/Jamming/LaserBeamRiderJammingTests.cs | 11 +++--
.../Jamming/LaserDesignatorJammingTests.cs | 46 +++++++++---------
.../Jamming/LaserRangefinderJammingTests.cs | 48 +++++++++----------
.../MillimeterWaveAltimeterJammingTests.cs | 38 +++++++--------
.../MillimeterWaveRadiometerJammingTests.cs | 34 +++++++------
.../indicators/laser_designators/ld_001.json | 2 +-
ThreatSource/src/Indicator/LaserBeamRider.cs | 18 +++++--
ThreatSource/src/Indicator/LaserDesignator.cs | 10 ++--
ThreatSource/src/Sensor/LaserRangefinder.cs | 2 +
.../src/Sensor/MillimeterWaveAltimeter.cs | 2 +
.../src/Simulation/SimulationConfig.cs | 9 ++++
13 files changed, 135 insertions(+), 119 deletions(-)
diff --git a/ThreatSource.Tests/src/Indicator/LaserDesignatorTests.cs b/ThreatSource.Tests/src/Indicator/LaserDesignatorTests.cs
index 7116ba4..20efeab 100644
--- a/ThreatSource.Tests/src/Indicator/LaserDesignatorTests.cs
+++ b/ThreatSource.Tests/src/Indicator/LaserDesignatorTests.cs
@@ -26,7 +26,7 @@ namespace ThreatSource.Tests.Indicator
{
LaserPower = 1000,
LaserDivergenceAngle = 0.001,
- JammingResistanceThreshold = 10000,
+ JammingResistanceThreshold = 1.0,
LaserWavelength = 1.06
};
@@ -42,7 +42,7 @@ namespace ThreatSource.Tests.Indicator
var designatorInitialMotion = new MotionParameters
{
- Position = new Vector3D(0, 0, 0),
+ Position = new Vector3D(0, 100, 0),
Orientation = new Orientation(0, 0, 0),
InitialSpeed = 0
};
@@ -106,9 +106,9 @@ namespace ThreatSource.Tests.Indicator
_simulationManager.PublishEvent(new LaserJammingEvent
{
JammingPower = jammingPower,
- Wavelength = 1.05,
- JammingSourcePosition = new Vector3D(50, 0, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
+ Wavelength = 1.06,
+ JammingSourcePosition = new Vector3D(0, 10, 0),
+ JammingDirection = new Vector3D(0, 1, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise,
SenderId = "jammer1"
diff --git a/ThreatSource.Tests/src/Jamming/InfraredDetectorJammingTests.cs b/ThreatSource.Tests/src/Jamming/InfraredDetectorJammingTests.cs
index 04ef939..c114f21 100644
--- a/ThreatSource.Tests/src/Jamming/InfraredDetectorJammingTests.cs
+++ b/ThreatSource.Tests/src/Jamming/InfraredDetectorJammingTests.cs
@@ -75,13 +75,13 @@ namespace ThreatSource.Tests.Jamming
// 创建干扰事件
var jammingEvent = new InfraredJammingEvent
{
- JammingPower = 500.0, // 高于阈值
- Wavelength = 4, // 中波红外范围
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0), // 指向探测器
- JammingAngleRange = Math.PI / 4, // 45度角
+ JammingPower = 500.0,
+ Wavelength = 4,
+ JammingSourcePosition = new Vector3D(10, 10, 0), // 更靠近探测器,且角度更小
+ JammingDirection = new Vector3D(-0.7071, -0.7071, 0), // 45度角指向探测器
+ JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise,
- Duration = null // 持续干扰
+ Duration = null
};
// Act
@@ -147,11 +147,11 @@ namespace ThreatSource.Tests.Jamming
{
JammingPower = 500.0,
Wavelength = 4,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
+ JammingSourcePosition = new Vector3D(10, 10, 0),
+ JammingDirection = new Vector3D(-0.7071, -0.7071, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise,
- Duration = 0.5 // 0.5秒后过期
+ Duration = 0.5
};
// Act - 应用干扰
@@ -180,11 +180,11 @@ namespace ThreatSource.Tests.Jamming
{
JammingPower = 500.0,
Wavelength = 4,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
+ JammingSourcePosition = new Vector3D(10, 10, 0),
+ JammingDirection = new Vector3D(-0.7071, -0.7071, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise,
- Duration = null // 持续干扰
+ Duration = null
};
// Act - 应用干扰
diff --git a/ThreatSource.Tests/src/Jamming/LaserBeamRiderJammingTests.cs b/ThreatSource.Tests/src/Jamming/LaserBeamRiderJammingTests.cs
index 0cbea2e..cd27c7f 100644
--- a/ThreatSource.Tests/src/Jamming/LaserBeamRiderJammingTests.cs
+++ b/ThreatSource.Tests/src/Jamming/LaserBeamRiderJammingTests.cs
@@ -30,6 +30,7 @@ namespace ThreatSource.Tests.Jamming
var config = new LaserBeamRiderConfig
{
LaserPower = 100,
+ LaserWavelength = 1.06,
ControlFieldDiameter = 5.0,
MaxGuidanceDistance = 5000,
JammingResistanceThreshold = 0.05 // 设置干扰抗性阈值为50mW
@@ -77,7 +78,7 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new LaserJammingEvent
{
JammingPower = 2000, // 高功率干扰
- Wavelength = 1.05,
+ Wavelength = 1.06,
JammingSourcePosition = new Vector3D(50, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0), // 指向激光驾束仪
JammingAngleRange = Math.PI / 4, // 45度角
@@ -109,7 +110,7 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new LaserJammingEvent
{
JammingPower = 2000, // 高功率干扰
- Wavelength = 1.05,
+ Wavelength = 1.06,
JammingSourcePosition = new Vector3D(50, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
@@ -152,7 +153,7 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new LaserJammingEvent
{
JammingPower = 2000, // 高功率干扰
- Wavelength = 1.05,
+ Wavelength = 1.06,
JammingSourcePosition = new Vector3D(50, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
@@ -190,7 +191,7 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new LaserJammingEvent
{
JammingPower = 2000, // 高功率干扰
- Wavelength = 1.05,
+ Wavelength = 1.06,
JammingSourcePosition = new Vector3D(50, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
@@ -225,7 +226,7 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new LaserJammingEvent
{
JammingPower = 2000, // 高功率干扰
- Wavelength = 1.05,
+ Wavelength = 1.06,
JammingSourcePosition = new Vector3D(50, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
diff --git a/ThreatSource.Tests/src/Jamming/LaserDesignatorJammingTests.cs b/ThreatSource.Tests/src/Jamming/LaserDesignatorJammingTests.cs
index 72f75df..35502f1 100644
--- a/ThreatSource.Tests/src/Jamming/LaserDesignatorJammingTests.cs
+++ b/ThreatSource.Tests/src/Jamming/LaserDesignatorJammingTests.cs
@@ -30,8 +30,8 @@ namespace ThreatSource.Tests.Jamming
{
LaserPower = 100,
LaserDivergenceAngle = 0.001,
- JammingResistanceThreshold = 0.01, // 设置干扰抗性阈值为10mW,适应球面扩散模型
- LaserWavelength = 1.06
+ JammingResistanceThreshold = 0.05, // 干扰阈值50mW
+ LaserWavelength = 1.06 // 工作波长1.06μm
};
// 初始化激光指示器
@@ -76,13 +76,13 @@ namespace ThreatSource.Tests.Jamming
// 创建干扰事件
var jammingEvent = new LaserJammingEvent
{
- JammingPower = 2000, // 高于阈值
- Wavelength = 1.05,
- JammingSourcePosition = new Vector3D(50, 0, 0),
- JammingDirection = new Vector3D(-1, 0, 0), // 指向激光指示器
- JammingAngleRange = Math.PI / 4, // 45度角
+ JammingPower = 2000,
+ Wavelength = 1.06, // 匹配波长1.06μm
+ JammingSourcePosition = new Vector3D(5, 0, 0),
+ JammingDirection = new Vector3D(-1, 0, 0),
+ JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise,
- Duration = null // 持续干扰
+ Duration = null
};
// Act
@@ -105,7 +105,7 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new LaserJammingEvent
{
JammingPower = 500, // 角度范围外的干扰
- Wavelength = 1.05,
+ Wavelength = 1.06,
JammingSourcePosition = new Vector3D(0, 50, 0), // 位于上方
JammingDirection = new Vector3D(0, 0, 1), // 指向前方,不是指向指示器
JammingAngleRange = 0.1, // 很小的角度范围
@@ -132,7 +132,7 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new LaserJammingEvent
{
JammingPower = 10, // 低功率干扰
- Wavelength = 1.05,
+ Wavelength = 1.06,
JammingSourcePosition = new Vector3D(50, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
@@ -181,13 +181,13 @@ namespace ThreatSource.Tests.Jamming
// 创建有限时间的干扰事件
var jammingEvent = new LaserJammingEvent
{
- JammingPower = 500, // 有限时间的干扰
- Wavelength = 1.05,
- JammingSourcePosition = new Vector3D(50, 0, 0),
+ JammingPower = 500,
+ Wavelength = 1.06, // 匹配波长1.06μm
+ JammingSourcePosition = new Vector3D(5, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise,
- Duration = 0.5 // 0.5秒后过期
+ Duration = 0.5
};
// Act - 应用干扰
@@ -217,13 +217,13 @@ namespace ThreatSource.Tests.Jamming
// 创建持续干扰事件
var jammingEvent = new LaserJammingEvent
{
- JammingPower = 500, // 持续干扰
- Wavelength = 1.05,
- JammingSourcePosition = new Vector3D(50, 0, 0),
+ JammingPower = 500,
+ Wavelength = 1.06, // 匹配波长1.06μm
+ JammingSourcePosition = new Vector3D(5, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise,
- Duration = null // 持续干扰
+ Duration = null
};
// Act - 应用干扰
@@ -253,9 +253,9 @@ namespace ThreatSource.Tests.Jamming
// 创建干扰事件
var jammingEvent = new LaserJammingEvent
{
- JammingPower = 500, // 照射禁用测试
- Wavelength = 1.05,
- JammingSourcePosition = new Vector3D(50, 0, 0),
+ JammingPower = 500,
+ Wavelength = 1.06, // 匹配波长1.06μm
+ JammingSourcePosition = new Vector3D(5, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise
@@ -285,7 +285,7 @@ namespace ThreatSource.Tests.Jamming
var matchingJammingEvent = new LaserJammingEvent
{
JammingPower = 2000,
- Wavelength = 1.05,
+ Wavelength = 1.06, // 匹配波长1.06μm
JammingSourcePosition = new Vector3D(50, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
@@ -306,7 +306,7 @@ namespace ThreatSource.Tests.Jamming
var nonMatchingJammingEvent = new LaserJammingEvent
{
JammingPower = 2000,
- Wavelength = 1.55,
+ Wavelength = 1.56,
JammingSourcePosition = new Vector3D(50, 0, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
diff --git a/ThreatSource.Tests/src/Jamming/LaserRangefinderJammingTests.cs b/ThreatSource.Tests/src/Jamming/LaserRangefinderJammingTests.cs
index 933fa2b..8d4de6b 100644
--- a/ThreatSource.Tests/src/Jamming/LaserRangefinderJammingTests.cs
+++ b/ThreatSource.Tests/src/Jamming/LaserRangefinderJammingTests.cs
@@ -73,13 +73,12 @@ namespace ThreatSource.Tests.Jamming
// 创建干扰事件
var jammingEvent = new LaserJammingEvent
{
- JammingPower = 500.0, // 高于阈值
- Wavelength = 1.064, // 匹配测距仪波长
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0), // 指向测距仪
- JammingAngleRange = Math.PI / 4, // 45度角
- JammingMode = JammingMode.Noise,
- Duration = null // 持续干扰
+ JammingPower = 500,
+ Wavelength = 1.06,
+ JammingSourcePosition = new Vector3D(0, 10, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
+ JammingAngleRange = Math.PI / 4,
+ JammingMode = JammingMode.Noise
};
// Act
@@ -97,8 +96,8 @@ namespace ThreatSource.Tests.Jamming
// 创建角度范围外的干扰事件
var jammingEvent = new LaserJammingEvent
{
- JammingPower = 500.0,
- Wavelength = 1.064,
+ JammingPower = 500,
+ Wavelength = 1.06,
JammingSourcePosition = new Vector3D(0, 150, 0), // 位于上方
JammingDirection = new Vector3D(0, 0, 1), // 指向前方,不是指向测距仪
JammingAngleRange = 0.1, // 很小的角度范围
@@ -121,7 +120,7 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new LaserJammingEvent
{
JammingPower = 10.0, // 低于阈值
- Wavelength = 1.064,
+ Wavelength = 1.06,
JammingSourcePosition = new Vector3D(50, 100, 0),
JammingDirection = new Vector3D(-1, 0, 0),
JammingAngleRange = Math.PI / 4,
@@ -143,13 +142,13 @@ namespace ThreatSource.Tests.Jamming
// 创建有限时间的干扰事件
var jammingEvent = new LaserJammingEvent
{
- JammingPower = 500.0,
- Wavelength = 1.064,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
+ JammingPower = 500,
+ Wavelength = 1.06,
+ JammingSourcePosition = new Vector3D(0, 10, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise,
- Duration = 0.5 // 0.5秒后过期
+ Duration = 0.5
};
// Act - 应用干扰
@@ -176,13 +175,12 @@ namespace ThreatSource.Tests.Jamming
// 创建持续干扰事件
var jammingEvent = new LaserJammingEvent
{
- JammingPower = 500.0,
- Wavelength = 1.064,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
+ JammingPower = 500,
+ Wavelength = 1.06,
+ JammingSourcePosition = new Vector3D(0, 10, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
JammingAngleRange = Math.PI / 4,
- JammingMode = JammingMode.Noise,
- Duration = null // 持续干扰
+ JammingMode = JammingMode.Noise
};
// Act - 应用干扰
@@ -212,10 +210,10 @@ namespace ThreatSource.Tests.Jamming
// 创建干扰事件
var jammingEvent = new LaserJammingEvent
{
- JammingPower = 500.0,
- Wavelength = 1.064,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
+ JammingPower = 500,
+ Wavelength = 1.06,
+ JammingSourcePosition = new Vector3D(0, 10, 0),
+ JammingDirection = new Vector3D(0, 1, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise
};
diff --git a/ThreatSource.Tests/src/Jamming/MillimeterWaveAltimeterJammingTests.cs b/ThreatSource.Tests/src/Jamming/MillimeterWaveAltimeterJammingTests.cs
index 249c3cd..5f8a5a4 100644
--- a/ThreatSource.Tests/src/Jamming/MillimeterWaveAltimeterJammingTests.cs
+++ b/ThreatSource.Tests/src/Jamming/MillimeterWaveAltimeterJammingTests.cs
@@ -73,13 +73,12 @@ namespace ThreatSource.Tests.Jamming
// 创建干扰事件
var jammingEvent = new MillimeterWaveJammingEvent
{
- JammingPower = 500.0, // 高于阈值
- Wavelength = 3.0, // 3毫米波长
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0), // 指向测高雷达
- JammingAngleRange = Math.PI / 4, // 45度角
- JammingMode = JammingMode.Noise,
- Duration = null // 持续干扰
+ JammingPower = 500,
+ Wavelength = 3.0,
+ JammingSourcePosition = new Vector3D(0, 50, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
+ JammingAngleRange = Math.PI / 6,
+ JammingMode = JammingMode.Noise
};
// Act
@@ -167,10 +166,10 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new MillimeterWaveJammingEvent
{
JammingPower = 500.0,
- Wavelength = 3.0,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
- JammingAngleRange = Math.PI / 4,
+ Wavelength = 3.0, // 设置为3mm波段的波长
+ JammingSourcePosition = new Vector3D(0, 120, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
+ JammingAngleRange = Math.PI / 6,
JammingMode = JammingMode.Noise,
Duration = 0.5 // 0.5秒后过期
};
@@ -200,12 +199,11 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new MillimeterWaveJammingEvent
{
JammingPower = 500.0,
- Wavelength = 3.0,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
- JammingAngleRange = Math.PI / 4,
- JammingMode = JammingMode.Noise,
- Duration = null // 持续干扰
+ Wavelength = 3.0, // 设置为3mm波段的波长
+ JammingSourcePosition = new Vector3D(0, 120, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
+ JammingAngleRange = Math.PI / 6,
+ JammingMode = JammingMode.Noise
};
// Act - 应用干扰
@@ -237,9 +235,9 @@ namespace ThreatSource.Tests.Jamming
{
JammingPower = 500.0,
Wavelength = 3.0,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
- JammingAngleRange = Math.PI / 4,
+ JammingSourcePosition = new Vector3D(0, 120, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
+ JammingAngleRange = Math.PI / 6,
JammingMode = JammingMode.Noise
};
diff --git a/ThreatSource.Tests/src/Jamming/MillimeterWaveRadiometerJammingTests.cs b/ThreatSource.Tests/src/Jamming/MillimeterWaveRadiometerJammingTests.cs
index 6f40071..094d6f2 100644
--- a/ThreatSource.Tests/src/Jamming/MillimeterWaveRadiometerJammingTests.cs
+++ b/ThreatSource.Tests/src/Jamming/MillimeterWaveRadiometerJammingTests.cs
@@ -75,9 +75,8 @@ namespace ThreatSource.Tests.Jamming
var jammingEvent = new MillimeterWaveJammingEvent
{
JammingPower = 500.0, // 高于阈值
- Wavelength = 3.0, // 3毫米波长
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0), // 指向辐射计
+ JammingSourcePosition = new Vector3D(10, 10, 0),
+ JammingDirection = new Vector3D(-0.7071, -0.7071, 0), // 45度角指向辐射计
JammingAngleRange = Math.PI / 4, // 45度角
JammingMode = JammingMode.Noise,
Duration = null // 持续干扰
@@ -167,13 +166,13 @@ namespace ThreatSource.Tests.Jamming
// 创建有限时间的干扰事件
var jammingEvent = new MillimeterWaveJammingEvent
{
- JammingPower = 500.0,
- Wavelength = 3.0,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
+ JammingPower = 500,
+ Wavelength = 3.0, // 3mm波段
+ JammingSourcePosition = new Vector3D(0, 120, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise,
- Duration = 0.5 // 0.5秒后过期
+ Duration = 0.5
};
// Act - 应用干扰
@@ -200,13 +199,12 @@ namespace ThreatSource.Tests.Jamming
// 创建持续干扰事件
var jammingEvent = new MillimeterWaveJammingEvent
{
- JammingPower = 500.0,
- Wavelength = 3.0,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
+ JammingPower = 500,
+ Wavelength = 3.0, // 3mm波段
+ JammingSourcePosition = new Vector3D(0, 120, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
JammingAngleRange = Math.PI / 4,
- JammingMode = JammingMode.Noise,
- Duration = null // 持续干扰
+ JammingMode = JammingMode.Noise
};
// Act - 应用干扰
@@ -245,10 +243,10 @@ namespace ThreatSource.Tests.Jamming
// 创建干扰事件
var jammingEvent = new MillimeterWaveJammingEvent
{
- JammingPower = 500.0,
- Wavelength = 3.0,
- JammingSourcePosition = new Vector3D(50, 100, 0),
- JammingDirection = new Vector3D(-1, 0, 0),
+ JammingPower = 500,
+ Wavelength = 3.0, // 3mm波段
+ JammingSourcePosition = new Vector3D(0, 10, 0),
+ JammingDirection = new Vector3D(0, -1, 0),
JammingAngleRange = Math.PI / 4,
JammingMode = JammingMode.Noise
};
diff --git a/ThreatSource/data/indicators/laser_designators/ld_001.json b/ThreatSource/data/indicators/laser_designators/ld_001.json
index 9dc8216..6c1c1b8 100644
--- a/ThreatSource/data/indicators/laser_designators/ld_001.json
+++ b/ThreatSource/data/indicators/laser_designators/ld_001.json
@@ -6,8 +6,8 @@
"type": "LaserDesignator",
"designatorConfig": {
"laserPower": 5000,
- "laserDivergenceAngle": 0.0003,
"laserWavelength": 1.06,
+ "laserDivergenceAngle": 0.0003,
"laserCodeConfig": {
"code": {
"codeType": "PRF",
diff --git a/ThreatSource/src/Indicator/LaserBeamRider.cs b/ThreatSource/src/Indicator/LaserBeamRider.cs
index d45c251..96405d4 100644
--- a/ThreatSource/src/Indicator/LaserBeamRider.cs
+++ b/ThreatSource/src/Indicator/LaserBeamRider.cs
@@ -46,6 +46,17 @@ namespace ThreatSource.Indicator
///
public double LaserPower { get; private set; }
+
+ ///
+ /// 获取或设置激光波长
+ ///
+ ///
+ /// 单位:微米
+ /// 影响激光波束的波长特性
+ ///
+ public double LaserWavelength { get; private set; } = 1.06;
+
+
///
/// 获取或设置激光发散角
///
@@ -120,6 +131,7 @@ namespace ThreatSource.Indicator
: base(id, motionParameters, simulationManager)
{
LaserPower = config.LaserPower;
+ LaserWavelength = config.LaserWavelength;
ControlFieldDiameter = config.ControlFieldDiameter;
LaserDirection = Vector3D.Zero;
MaxGuidanceDistance = config.MaxGuidanceDistance;
@@ -249,12 +261,10 @@ namespace ThreatSource.Indicator
Mode = evt.JammingMode,
Duration = evt.Duration
};
-
- // 检查波长匹配(激光特定逻辑)
- bool isWavelengthInRange = evt.Wavelength >= 1.0 && evt.Wavelength <= 1.1;
// 使用JammableComponent进行干扰判断
- if (isWavelengthInRange)
+ // 检查波长匹配(激光特定逻辑)
+ if (evt.Wavelength == LaserWavelength)
{
ApplyJamming(parameters);
Debug.WriteLine($"干扰状态 - IsJammed: {IsJammed}");
diff --git a/ThreatSource/src/Indicator/LaserDesignator.cs b/ThreatSource/src/Indicator/LaserDesignator.cs
index 36237b2..c550b27 100644
--- a/ThreatSource/src/Indicator/LaserDesignator.cs
+++ b/ThreatSource/src/Indicator/LaserDesignator.cs
@@ -85,7 +85,7 @@ namespace ThreatSource.Indicator
/// 指示器工作所需的工作波长
/// 用于波长范围匹配检查
///
- public double Wavelength { get; private set; } = 1.06;
+ public double LaserWavelength { get; private set; } = 1.06;
///
/// 初始化激光指示器的新实例
@@ -114,7 +114,7 @@ namespace ThreatSource.Indicator
LaserDivergenceAngle = config.LaserDivergenceAngle;
LaserCodeConfig = config.LaserCodeConfig;
JammingThreshold = config.JammingResistanceThreshold;
- Wavelength = config.LaserWavelength;
+ LaserWavelength = config.LaserWavelength;
// 设置干扰阈值并添加支持的干扰类型
InitializeJamming(JammingThreshold, [JammingType.Laser]);
@@ -220,12 +220,10 @@ namespace ThreatSource.Indicator
Mode = evt.JammingMode,
Duration = evt.Duration
};
-
- // 检查波长匹配(激光特定逻辑)
- bool isWavelengthInRange = evt.Wavelength == Wavelength;
// 使用JammableComponent进行干扰判断
- if (isWavelengthInRange)
+ // 检查波长匹配(激光特定逻辑)
+ if (evt.Wavelength == LaserWavelength)
{
ApplyJamming(parameters);
Debug.WriteLine($"干扰状态 - IsJammed: {IsJammed}");
diff --git a/ThreatSource/src/Sensor/LaserRangefinder.cs b/ThreatSource/src/Sensor/LaserRangefinder.cs
index 034c891..a1dae56 100644
--- a/ThreatSource/src/Sensor/LaserRangefinder.cs
+++ b/ThreatSource/src/Sensor/LaserRangefinder.cs
@@ -227,6 +227,7 @@ namespace ThreatSource.Sensor
{
Debug.WriteLine($"激光测距仪受到干扰,功率:{parameters.Power}瓦特");
sensorData.IsValid = false;
+ sensorData.Distance = 0; // 在干扰状态下将距离设置为0
}
}
@@ -240,6 +241,7 @@ namespace ThreatSource.Sensor
{
Debug.WriteLine("激光测距仪干扰已清除");
sensorData.IsValid = true;
+ sensorData.Distance = currentDistance;
}
}
diff --git a/ThreatSource/src/Sensor/MillimeterWaveAltimeter.cs b/ThreatSource/src/Sensor/MillimeterWaveAltimeter.cs
index f712b18..b04fe6f 100644
--- a/ThreatSource/src/Sensor/MillimeterWaveAltimeter.cs
+++ b/ThreatSource/src/Sensor/MillimeterWaveAltimeter.cs
@@ -230,6 +230,7 @@ namespace ThreatSource.Sensor
{
Debug.WriteLine($"毫米波测高雷达受到干扰,功率:{parameters.Power}瓦特");
sensorData.IsValid = false;
+ sensorData.Altitude = 0; // 被干扰时将高度值设为0
}
}
@@ -243,6 +244,7 @@ namespace ThreatSource.Sensor
{
Debug.WriteLine("毫米波测高雷达干扰已清除");
sensorData.IsValid = true;
+ sensorData.Altitude = currentAltitude; // 恢复正常的高度测量值
}
}
}
diff --git a/ThreatSource/src/Simulation/SimulationConfig.cs b/ThreatSource/src/Simulation/SimulationConfig.cs
index a23da81..bd379ff 100644
--- a/ThreatSource/src/Simulation/SimulationConfig.cs
+++ b/ThreatSource/src/Simulation/SimulationConfig.cs
@@ -174,6 +174,15 @@ namespace ThreatSource.Simulation
///
public double LaserPower { get; set; } = 0;
+ ///
+ /// 获取或设置激光波长
+ ///
+ ///
+ /// 单位:微米
+ /// 影响制导波束的波长特性
+ ///
+ public double LaserWavelength { get; set; } = 1.06;
+
///
/// 获取或设置控制场直径
///