From 953ef0b96873e51fdee7feae21c20b3125d6fde8 Mon Sep 17 00:00:00 2001
From: Tian jianyong <11429339@qq.com>
Date: Mon, 9 Jun 2025 14:27:14 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BA=86=20json=20=E6=A0=BC?=
=?UTF-8?q?=E5=BC=8F=E7=9A=84=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=EF=BC=8C?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E5=9D=A6=E5=85=8B=E7=A7=BB=E5=8A=A8?=
=?UTF-8?q?=E6=A8=A1=E5=BC=8F=EF=BC=8C=E5=B9=B6=E4=BF=AE=E6=94=B9=E4=BA=86?=
=?UTF-8?q?=E5=9D=A6=E5=85=8B=E7=9A=84=E6=9C=9D=E5=90=91=E5=92=8C=E9=80=9F?=
=?UTF-8?q?=E5=BA=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../data/equipments/apcs/apc_001.json | 35 ---
.../data/equipments/helicopters/heli_001.json | 35 ---
.../data/equipments/tanks/mbt_001.json | 35 ---
.../data/indicators/ir_trackers/ir_001.json | 14 --
.../indicators/laser_beamriders/br_001.json | 19 --
.../indicators/laser_designators/ld_001.json | 19 --
.../jammers/ir_jammers/infrared_blocking.json | 14 --
.../ir_jammers/infrared_deception.json | 14 --
.../jammers/ir_jammers/infrared_standard.json | 14 --
.../ir_jammers/infrared_top_blocking.json | 14 --
.../jammers/laser_jammers/laser_blocking.json | 14 --
.../laser_jammers/laser_deception.json | 14 --
.../jammers/laser_jammers/laser_decoy.json | 16 --
.../jammers/laser_jammers/laser_decoy.toml | 2 +-
.../laser_jammers/laser_top_blocking.json | 14 --
.../jammers/mmw_jammers/mmw_blocking.json | 14 --
.../jammers/mmw_jammers/mmw_compensation.json | 15 --
.../jammers/mmw_jammers/mmw_top_blocking.json | 14 --
.../data/jammers/smoke_grenades/infrared.json | 20 --
.../data/jammers/smoke_grenades/mmw.json | 20 --
.../data/jammers/smoke_grenades/surround.json | 22 --
.../data/jammers/smoke_grenades/top.json | 20 --
.../data/missiles/ir_command/irc_001.json | 28 ---
.../data/missiles/ir_imaging/itg_001.json | 36 ---
.../data/missiles/laser_beam_rider/hj10.json | 43 ----
.../missiles/laser_beam_rider/kornet.json | 28 ---
.../data/missiles/laser_beam_rider/tow.json | 28 ---
.../missiles/laser_semi_active/lsgm_001.json | 44 ----
ThreatSource/data/missiles/mmw/mmw_001.json | 58 -----
.../missiles/terminal_sensitive/tsm_001.json | 79 -------
ThreatSource/data/weathers/heavy_fog.json | 15 --
ThreatSource/data/weathers/heavy_rain.json | 15 --
ThreatSource/data/weathers/heavy_snow.json | 15 --
ThreatSource/data/weathers/light_fog.json | 15 --
ThreatSource/data/weathers/light_rain.json | 15 --
ThreatSource/data/weathers/light_snow.json | 15 --
ThreatSource/data/weathers/medium_fog.json | 15 --
ThreatSource/data/weathers/medium_rain.json | 15 --
ThreatSource/data/weathers/medium_snow.json | 15 --
ThreatSource/data/weathers/sandstorm.json | 15 --
ThreatSource/data/weathers/sunny.json | 15 --
ThreatSource/src/Jammer/BaseJammer.cs | 2 +-
.../prtformance_test_result_0605.md | 2 +
tools/ComprehensiveMissileSimulator.cs | 223 +++++++++++-------
tools/Program.cs | 57 ++++-
45 files changed, 195 insertions(+), 996 deletions(-)
delete mode 100644 ThreatSource/data/equipments/apcs/apc_001.json
delete mode 100644 ThreatSource/data/equipments/helicopters/heli_001.json
delete mode 100644 ThreatSource/data/equipments/tanks/mbt_001.json
delete mode 100644 ThreatSource/data/indicators/ir_trackers/ir_001.json
delete mode 100644 ThreatSource/data/indicators/laser_beamriders/br_001.json
delete mode 100644 ThreatSource/data/indicators/laser_designators/ld_001.json
delete mode 100644 ThreatSource/data/jammers/ir_jammers/infrared_blocking.json
delete mode 100644 ThreatSource/data/jammers/ir_jammers/infrared_deception.json
delete mode 100644 ThreatSource/data/jammers/ir_jammers/infrared_standard.json
delete mode 100644 ThreatSource/data/jammers/ir_jammers/infrared_top_blocking.json
delete mode 100644 ThreatSource/data/jammers/laser_jammers/laser_blocking.json
delete mode 100644 ThreatSource/data/jammers/laser_jammers/laser_deception.json
delete mode 100644 ThreatSource/data/jammers/laser_jammers/laser_decoy.json
delete mode 100644 ThreatSource/data/jammers/laser_jammers/laser_top_blocking.json
delete mode 100644 ThreatSource/data/jammers/mmw_jammers/mmw_blocking.json
delete mode 100644 ThreatSource/data/jammers/mmw_jammers/mmw_compensation.json
delete mode 100644 ThreatSource/data/jammers/mmw_jammers/mmw_top_blocking.json
delete mode 100644 ThreatSource/data/jammers/smoke_grenades/infrared.json
delete mode 100644 ThreatSource/data/jammers/smoke_grenades/mmw.json
delete mode 100644 ThreatSource/data/jammers/smoke_grenades/surround.json
delete mode 100644 ThreatSource/data/jammers/smoke_grenades/top.json
delete mode 100644 ThreatSource/data/missiles/ir_command/irc_001.json
delete mode 100644 ThreatSource/data/missiles/ir_imaging/itg_001.json
delete mode 100644 ThreatSource/data/missiles/laser_beam_rider/hj10.json
delete mode 100644 ThreatSource/data/missiles/laser_beam_rider/kornet.json
delete mode 100644 ThreatSource/data/missiles/laser_beam_rider/tow.json
delete mode 100644 ThreatSource/data/missiles/laser_semi_active/lsgm_001.json
delete mode 100644 ThreatSource/data/missiles/mmw/mmw_001.json
delete mode 100644 ThreatSource/data/missiles/terminal_sensitive/tsm_001.json
delete mode 100644 ThreatSource/data/weathers/heavy_fog.json
delete mode 100644 ThreatSource/data/weathers/heavy_rain.json
delete mode 100644 ThreatSource/data/weathers/heavy_snow.json
delete mode 100644 ThreatSource/data/weathers/light_fog.json
delete mode 100644 ThreatSource/data/weathers/light_rain.json
delete mode 100644 ThreatSource/data/weathers/light_snow.json
delete mode 100644 ThreatSource/data/weathers/medium_fog.json
delete mode 100644 ThreatSource/data/weathers/medium_rain.json
delete mode 100644 ThreatSource/data/weathers/medium_snow.json
delete mode 100644 ThreatSource/data/weathers/sandstorm.json
delete mode 100644 ThreatSource/data/weathers/sunny.json
diff --git a/ThreatSource/data/equipments/apcs/apc_001.json b/ThreatSource/data/equipments/apcs/apc_001.json
deleted file mode 100644
index 1719051..0000000
--- a/ThreatSource/data/equipments/apcs/apc_001.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": {
- "zh": "装甲运兵车-001",
- "en": "Armored Personnel Carrier-001"
- },
- "type": "APC",
- "properties": {
- "type": "APC",
- "mass": 25000.0,
- "length": 7.0,
- "width": 3.2,
- "height": 2.8,
- "maxSpeed": 80.0,
- "armorThickness": 400.0,
- "radarCrossSection": 12.0,
- "infraredRadiationIntensity": 2000.0,
- "ultravioletRadiationIntensity": 12.0,
- "millimeterWaveRadiationIntensity": 8.0,
- "millimeterWaveRadiationTemperature": 350.0,
- "laserReflectivity": 0.25,
- "thermalPattern": {
- "description": "3x3 matrix representing side view temperature distribution (°C)",
- "static": [
- [35, 40, 65],
- [30, 35, 70],
- [40, 40, 45]
- ],
- "moving": [
- [40, 45, 70],
- [35, 40, 75],
- [50, 50, 55]
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/equipments/helicopters/heli_001.json b/ThreatSource/data/equipments/helicopters/heli_001.json
deleted file mode 100644
index a1c6a96..0000000
--- a/ThreatSource/data/equipments/helicopters/heli_001.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": {
- "zh": "武装直升机-001",
- "en": "Attack Helicopter-001"
- },
- "type": "Helicopter",
- "properties": {
- "type": "Helicopter",
- "mass": 10000.0,
- "length": 17.0,
- "width": 3.0,
- "height": 4.5,
- "maxSpeed": 280.0,
- "armorThickness": 150.0,
- "radarCrossSection": 8.0,
- "infraredRadiationIntensity": 3000.0,
- "ultravioletRadiationIntensity": 20.0,
- "millimeterWaveRadiationIntensity": 6.0,
- "millimeterWaveRadiationTemperature": 450.0,
- "laserReflectivity": 0.2,
- "thermalPattern": {
- "description": "3x3 matrix representing side view temperature distribution (°C)",
- "static": [
- [85, 110, 80],
- [35, 45, 40],
- [30, 35, 30]
- ],
- "moving": [
- [90, 115, 85],
- [40, 50, 45],
- [35, 40, 35]
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/equipments/tanks/mbt_001.json b/ThreatSource/data/equipments/tanks/mbt_001.json
deleted file mode 100644
index d784fc9..0000000
--- a/ThreatSource/data/equipments/tanks/mbt_001.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "name": {
- "zh": "主战坦克-001",
- "en": "Main Battle Tank-001"
- },
- "type": "Tank",
- "properties": {
- "type": "Tank",
- "mass": 50000.0,
- "length": 10.0,
- "width": 3.5,
- "height": 2.4,
- "maxSpeed": 70.0,
- "armorThickness": 800.0,
- "radarCrossSection": 15.0,
- "infraredRadiationIntensity": 250.0,
- "ultravioletRadiationIntensity": 15.0,
- "millimeterWaveRadiationIntensity": 10.0,
- "millimeterWaveRadiationTemperature": 150.0,
- "laserReflectivity": 0.3,
- "thermalPattern": {
- "description": "3x3 matrix representing side view temperature distribution (°C)",
- "static": [
- [40, 45, 80],
- [35, 40, 90],
- [50, 50, 60]
- ],
- "moving": [
- [45, 50, 85],
- [40, 45, 95],
- [65, 65, 75]
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/indicators/ir_trackers/ir_001.json b/ThreatSource/data/indicators/ir_trackers/ir_001.json
deleted file mode 100644
index 00599a9..0000000
--- a/ThreatSource/data/indicators/ir_trackers/ir_001.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "红外测角仪-001",
- "en": "IR Tracker-001"
- },
- "type": "InfraredTracker",
- "infraredTrackerConfig": {
- "maxTrackingRange": 10000.0,
- "fieldOfView": 0.2,
- "angleMeasurementAccuracy": 0.001,
- "updateFrequency": 10.0,
- "jammingResistanceThreshold": 1e-5
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/indicators/laser_beamriders/br_001.json b/ThreatSource/data/indicators/laser_beamriders/br_001.json
deleted file mode 100644
index ceefcb6..0000000
--- a/ThreatSource/data/indicators/laser_beamriders/br_001.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": {
- "zh": "激光驾束仪-001",
- "en": "Laser Beam Rider-001"
- },
- "type": "LaserBeamRider",
- "beamRiderConfig": {
- "power": 1000,
- "wavelength": 1.06,
- "jammingResistanceThreshold": 1e-5,
- "controlFieldDiameter": 6.0,
- "laserCodeConfig": {
- "code": {
- "codeType": "PRF",
- "codeValue": 1010
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/indicators/laser_designators/ld_001.json b/ThreatSource/data/indicators/laser_designators/ld_001.json
deleted file mode 100644
index dce17d9..0000000
--- a/ThreatSource/data/indicators/laser_designators/ld_001.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": {
- "zh": "前视激光指示器-001",
- "en": "Forward Looking Laser Designator-001"
- },
- "type": "LaserDesignator",
- "designatorConfig": {
- "power": 5000,
- "wavelength": 1.06,
- "divergenceAngle": 0.0003,
- "jammingResistanceThreshold": 1e-5,
- "laserCodeConfig": {
- "code": {
- "codeType": "PRF",
- "codeValue": 1010
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/ir_jammers/infrared_blocking.json b/ThreatSource/data/jammers/ir_jammers/infrared_blocking.json
deleted file mode 100644
index f7c0da3..0000000
--- a/ThreatSource/data/jammers/ir_jammers/infrared_blocking.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "红外阻塞干扰器",
- "en": "Infrared Blocking Jammer"
- },
- "type": "Infrared",
- "InfraredJammerConfig": {
- "Power": 2000,
- "Wavelength": 5,
- "AngleRange": 10,
- "Mode": "Blocking",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/ir_jammers/infrared_deception.json b/ThreatSource/data/jammers/ir_jammers/infrared_deception.json
deleted file mode 100644
index d201f5f..0000000
--- a/ThreatSource/data/jammers/ir_jammers/infrared_deception.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "红外欺骗干扰器",
- "en": "Infrared Deception Jammer"
- },
- "type": "Infrared",
- "InfraredJammerConfig": {
- "Power": 800,
- "Wavelength": 5,
- "AngleRange": 15,
- "Mode": "Deception",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/ir_jammers/infrared_standard.json b/ThreatSource/data/jammers/ir_jammers/infrared_standard.json
deleted file mode 100644
index 0ae783f..0000000
--- a/ThreatSource/data/jammers/ir_jammers/infrared_standard.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "红外阻塞干扰器",
- "en": "Infrared Blocking Jammer"
- },
- "type": "Infrared",
- "InfraredJammerConfig": {
- "Power": 1000,
- "Wavelength": 5,
- "AngleRange": 10,
- "Mode": "Blocking",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/ir_jammers/infrared_top_blocking.json b/ThreatSource/data/jammers/ir_jammers/infrared_top_blocking.json
deleted file mode 100644
index 5c71e00..0000000
--- a/ThreatSource/data/jammers/ir_jammers/infrared_top_blocking.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "红外阻塞干扰器",
- "en": "Infrared Blocking Jammer"
- },
- "type": "Infrared",
- "InfraredJammerConfig": {
- "Power": 2000,
- "Wavelength": 5,
- "AngleRange": 90,
- "Mode": "Blocking",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/laser_jammers/laser_blocking.json b/ThreatSource/data/jammers/laser_jammers/laser_blocking.json
deleted file mode 100644
index 98e5ec4..0000000
--- a/ThreatSource/data/jammers/laser_jammers/laser_blocking.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "激光阻塞干扰器",
- "en": "Laser Blocking Jammer"
- },
- "type": "Laser",
- "LaserJammerConfig": {
- "Power": 2000,
- "wavelength": 1.06,
- "angleRange": 10,
- "Mode": "Blocking",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/laser_jammers/laser_deception.json b/ThreatSource/data/jammers/laser_jammers/laser_deception.json
deleted file mode 100644
index ee11f89..0000000
--- a/ThreatSource/data/jammers/laser_jammers/laser_deception.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "激光欺骗干扰器",
- "en": "Laser Deception Jammer"
- },
- "type": "Laser",
- "LaserJammerConfig": {
- "Power": 800,
- "Wavelength": 1.06,
- "AngleRange": 15,
- "Mode": "Deception",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/laser_jammers/laser_decoy.json b/ThreatSource/data/jammers/laser_jammers/laser_decoy.json
deleted file mode 100644
index db440d4..0000000
--- a/ThreatSource/data/jammers/laser_jammers/laser_decoy.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": {
- "zh": "激光诱偏目标",
- "en": "Laser Decoy"
- },
- "type": "LaserDecoy",
- "LaserDecoyConfig": {
- "Mode": "Deception",
- "Power": 200.0,
- "Wavelength": 1.06,
- "DivergenceAngle": 0.001,
- "ReflectiveArea": 1.2,
- "ReflectionCoefficient": 0.8,
- "Duration": 60.0
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/laser_jammers/laser_decoy.toml b/ThreatSource/data/jammers/laser_jammers/laser_decoy.toml
index d6cf739..aee5a51 100644
--- a/ThreatSource/data/jammers/laser_jammers/laser_decoy.toml
+++ b/ThreatSource/data/jammers/laser_jammers/laser_decoy.toml
@@ -7,7 +7,7 @@ En = "Laser Decoy"
[LaserDecoyConfig]
Mode = "Deception" # 模式
-Power = 200.0 # 功率 (瓦特)
+Power = 10.0 # 功率 (瓦特)
Wavelength = 1.06 # 波长 (微米)
DivergenceAngle = 0.001 # 发散角 (弧度)
ReflectiveArea = 1.2 # 反射面积 (平方米)
diff --git a/ThreatSource/data/jammers/laser_jammers/laser_top_blocking.json b/ThreatSource/data/jammers/laser_jammers/laser_top_blocking.json
deleted file mode 100644
index 8e580ab..0000000
--- a/ThreatSource/data/jammers/laser_jammers/laser_top_blocking.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "激光阻塞干扰器",
- "en": "Laser Blocking Jammer"
- },
- "type": "Laser",
- "LaserJammerConfig": {
- "Power": 2000,
- "wavelength": 1.06,
- "angleRange": 90,
- "Mode": "Blocking",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/mmw_jammers/mmw_blocking.json b/ThreatSource/data/jammers/mmw_jammers/mmw_blocking.json
deleted file mode 100644
index f40ba05..0000000
--- a/ThreatSource/data/jammers/mmw_jammers/mmw_blocking.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "毫米波阻塞干扰器",
- "en": "Millimeter Wave Blocking Jammer"
- },
- "type": "MillimeterWave",
- "MillimeterWaveJammerConfig": {
- "Power": 2000,
- "Wavelength": 3.19,
- "AngleRange": 15,
- "Mode": "Blocking",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/mmw_jammers/mmw_compensation.json b/ThreatSource/data/jammers/mmw_jammers/mmw_compensation.json
deleted file mode 100644
index e40f169..0000000
--- a/ThreatSource/data/jammers/mmw_jammers/mmw_compensation.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "毫米波补偿干扰器",
- "en": "Millimeter Wave Compensation Jammer"
- },
- "type": "MillimeterWaveCompensation",
- "MillimeterWaveCompensationJammerConfig": {
- "CompensationTemperature": 293.15,
- "Power": 1000,
- "Wavelength": 8,
- "AngleRange": 90,
- "Mode": "Deception",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/mmw_jammers/mmw_top_blocking.json b/ThreatSource/data/jammers/mmw_jammers/mmw_top_blocking.json
deleted file mode 100644
index 51c7429..0000000
--- a/ThreatSource/data/jammers/mmw_jammers/mmw_top_blocking.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "name": {
- "zh": "毫米波顶部阻塞干扰器",
- "en": "Millimeter Wave Top Blocking Jammer"
- },
- "type": "MillimeterWave",
- "MillimeterWaveJammerConfig": {
- "Power": 2000,
- "Wavelength": 3.19,
- "AngleRange": 90,
- "Mode": "Blocking",
- "Duration": 60
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/smoke_grenades/infrared.json b/ThreatSource/data/jammers/smoke_grenades/infrared.json
deleted file mode 100644
index a6b689c..0000000
--- a/ThreatSource/data/jammers/smoke_grenades/infrared.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": {
- "zh": "周边烟幕弹",
- "en": "Surround Smoke Grenade"
- },
- "type": "SmokeGrenade",
- "SmokeGrenadeConfig": {
- "smokeType": "Wall",
- "IsObscuring": true,
- "RadiationTemperature": 395.0,
- "concentration": 0.2,
- "duration": 60.0,
- "wallWidth": 50.0,
- "wallHeight": 10.0,
- "cloudDiameter": 0.0,
- "thickness": 5.0,
- "formationDelay": 2.0,
- "expansionRate": 5.0
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/smoke_grenades/mmw.json b/ThreatSource/data/jammers/smoke_grenades/mmw.json
deleted file mode 100644
index 593cf94..0000000
--- a/ThreatSource/data/jammers/smoke_grenades/mmw.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": {
- "zh": "周边烟幕弹",
- "en": "Surround Smoke Grenade"
- },
- "type": "SmokeGrenade",
- "SmokeGrenadeConfig": {
- "smokeType": "Wall",
- "IsObscuring": true,
- "RadiationTemperature": 173.15,
- "concentration": 0.2,
- "duration": 60.0,
- "wallWidth": 50.0,
- "wallHeight": 10.0,
- "cloudDiameter": 0.0,
- "thickness": 5.0,
- "formationDelay": 2.0,
- "expansionRate": 5.0
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/smoke_grenades/surround.json b/ThreatSource/data/jammers/smoke_grenades/surround.json
deleted file mode 100644
index 2ca5f5a..0000000
--- a/ThreatSource/data/jammers/smoke_grenades/surround.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "name": {
- "zh": "周边烟幕弹",
- "en": "Surround Smoke Grenade"
- },
- "type": "SmokeGrenade",
- "SmokeGrenadeConfig": {
- "smokeType": "Wall",
- "IsObscuring": false,
- "IsAntiInfrared": false,
- "IsAntiMillimeterWave": false,
- "RadiationTemperature": 293.15,
- "concentration": 0.2,
- "duration": 60.0,
- "wallWidth": 50.0,
- "wallHeight": 10.0,
- "cloudDiameter": 0.0,
- "thickness": 5.0,
- "formationDelay": 2.0,
- "expansionRate": 5.0
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/jammers/smoke_grenades/top.json b/ThreatSource/data/jammers/smoke_grenades/top.json
deleted file mode 100644
index b4a5875..0000000
--- a/ThreatSource/data/jammers/smoke_grenades/top.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": {
- "zh": "顶部烟幕弹",
- "en": "Top Smoke Grenade"
- },
- "type": "SmokeGrenade",
- "SmokeGrenadeConfig": {
- "smokeType": "Cloud",
- "IsObscuring": true,
- "RadiationTemperature": 395.0,
- "concentration": 0.2,
- "duration": 60.0,
- "wallWidth": 0.0,
- "wallHeight": 0.0,
- "cloudDiameter": 20.0,
- "thickness": 5.0,
- "formationDelay": 1.5,
- "expansionRate": 5.0
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/missiles/ir_command/irc_001.json b/ThreatSource/data/missiles/ir_command/irc_001.json
deleted file mode 100644
index e794396..0000000
--- a/ThreatSource/data/missiles/ir_command/irc_001.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": {
- "zh": "红外指令导引导弹-001",
- "en": "IR Command Guided Missile-001"
- },
- "type": "InfraredCommandGuidance",
- "properties": {
- "type": "InfraredCommandGuidance",
- "maxSpeed": 300.0,
- "maxFlightTime": 60.0,
- "maxFlightDistance": 5000.0,
- "maxAcceleration": 100.0,
- "proportionalNavigationCoefficient": 3.0,
- "launchAcceleration": 100.0,
- "maxEngineBurnTime": 0.1,
- "cruiseTime": 5.0,
- "mass": 23.5,
- "explosionRadius": 5.0,
- "hitProbability": 0.9,
- "selfDestructHeight": 0.0,
- "trackerSensitivity": null,
- "commandLatency": null,
- "irSignature": null
- },
- "infraredCommandGuidanceConfig": {
- "jammingResistanceThreshold": 1e-5
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/missiles/ir_imaging/itg_001.json b/ThreatSource/data/missiles/ir_imaging/itg_001.json
deleted file mode 100644
index e700ae8..0000000
--- a/ThreatSource/data/missiles/ir_imaging/itg_001.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "name": {
- "zh": "红外成像末制导导弹-001",
- "en": "IR Imaging Terminal Guided Missile-001"
- },
- "type": "InfraredImagingTerminalGuidance",
- "properties": {
- "type": "InfraredImagingTerminalGuidance",
- "maxSpeed": 250.0,
- "maxFlightTime": 60.0,
- "maxFlightDistance": 5000.0,
- "maxAcceleration": 100.0,
- "proportionalNavigationCoefficient": 3.0,
- "launchAcceleration": 100.0,
- "maxEngineBurnTime": 0.1,
- "cruiseTime": 5.0,
- "mass": 25.0,
- "explosionRadius": 5.5,
- "hitProbability": 0.9,
- "selfDestructHeight": 0.0
- },
- "infraredImagingGuidanceConfig": {
- "maxDetectionRange": 1000,
- "searchFieldOfView": 0.209,
- "trackFieldOfView": 0.052,
- "imageWidth": 640,
- "imageHeight": 512,
- "backgroundIntensity": 1e-4,
- "searchRecognitionProbability": 0.6,
- "trackRecognitionProbability": 0.8,
- "targetLostTolerance": 0.2,
- "lockConfirmationTime": 0.3,
- "jammingResistanceThreshold": 1e-5,
- "waveLength": 3.0
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/missiles/laser_beam_rider/hj10.json b/ThreatSource/data/missiles/laser_beam_rider/hj10.json
deleted file mode 100644
index a8e363c..0000000
--- a/ThreatSource/data/missiles/laser_beam_rider/hj10.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "name": {
- "zh": "红箭-10",
- "en": "HJ-10"
- },
- "type": "LaserBeamRiderGuidance",
- "properties": {
- "type": "LaserBeamRiderGuidance",
- "maxSpeed": 300.0,
- "maxFlightTime": 60.0,
- "maxFlightDistance": 5000.0,
- "maxAcceleration": 100.0,
- "proportionalNavigationCoefficient": 3.0,
- "launchAcceleration": 100.0,
- "maxEngineBurnTime": 0.1,
- "cruiseTime": 5.0,
- "mass": 24.5,
- "explosionRadius": 5.0,
- "hitProbability": 0.9,
- "selfDestructHeight": 0.0,
- "laserCodeConfig": {
- "code": {
- "codeType": "PRF",
- "codeValue": 1010
- },
- "IsCodeEnabled": true,
- "IsCodeMatchRequired": true
- }
- },
- "LaserBeamRiderGuidanceConfig": {
- "minDetectablePower": 1e-10,
- "detectorDiameter": 0.03,
- "controlFieldDiameter": 20.0,
- "proportionalGain": 30.0,
- "integralGain": 0.05,
- "derivativeGain": 5.0,
- "nonlinearGain": 0.5,
- "maxGuidanceAcceleration": 50.0,
- "lowPassFilterCoefficient": 0.2,
- "wavelength": 1.06,
- "jammingResistanceThreshold": 1e-5
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/missiles/laser_beam_rider/kornet.json b/ThreatSource/data/missiles/laser_beam_rider/kornet.json
deleted file mode 100644
index 8643d51..0000000
--- a/ThreatSource/data/missiles/laser_beam_rider/kornet.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": {
- "zh": "科尔内特",
- "en": "Kornet"
- },
- "type": "LaserBeamRiderGuidance",
- "properties": {
- "type": "LaserBeamRiderGuidance",
- "maxSpeed": 300.0,
- "maxFlightTime": 70.0,
- "maxFlightDistance": 5500.0,
- "maxAcceleration": 110.0,
- "proportionalNavigationCoefficient": 3.0,
- "launchAcceleration": 100.0,
- "maxEngineBurnTime": 12.0,
- "cruiseTime": 5.0,
- "mass": 27.0,
- "explosionRadius": 5.5,
- "hitProbability": 0.9,
- "selfDestructHeight": 10.0,
- "laserCodeConfig": {
- "code": {
- "codeType": "PRF",
- "codeValue": 1100
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/missiles/laser_beam_rider/tow.json b/ThreatSource/data/missiles/laser_beam_rider/tow.json
deleted file mode 100644
index fc33378..0000000
--- a/ThreatSource/data/missiles/laser_beam_rider/tow.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": {
- "zh": "陶式导弹",
- "en": "TOW"
- },
- "type": "LaserBeamRiderGuidance",
- "properties": {
- "type": "LaserBeamRiderGuidance",
- "maxSpeed": 278.0,
- "maxFlightTime": 65.0,
- "maxFlightDistance": 4500.0,
- "maxAcceleration": 100.0,
- "proportionalNavigationCoefficient": 3.0,
- "launchAcceleration": 100.0,
- "maxEngineBurnTime": 10.0,
- "cruiseTime": 5.0,
- "mass": 22.6,
- "explosionRadius": 5.0,
- "hitProbability": 0.9,
- "selfDestructHeight": 10.0,
- "laserCodeConfig": {
- "code": {
- "codeType": "PRF",
- "codeValue": 1110
- }
- }
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/missiles/laser_semi_active/lsgm_001.json b/ThreatSource/data/missiles/laser_semi_active/lsgm_001.json
deleted file mode 100644
index 18aa655..0000000
--- a/ThreatSource/data/missiles/laser_semi_active/lsgm_001.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "name": {
- "zh": "激光半主动制导导弹-001",
- "en": "Laser Semi-Active Guidance Missile-001"
- },
- "type": "LaserSemiActiveGuidance",
- "properties": {
- "type": "LaserSemiActiveGuidance",
- "maxSpeed": 800.0,
- "maxFlightTime": 60.0,
- "maxFlightDistance": 4000.0,
- "maxAcceleration": 50.0,
- "proportionalNavigationCoefficient": 2.0,
- "launchAcceleration": 100.0,
- "maxEngineBurnTime": 0.1,
- "cruiseTime": 5.0,
- "mass": 22.0,
- "explosionRadius": 5.0,
- "hitProbability": 0.9,
- "selfDestructHeight": 0.0,
- "laserCodeConfig": {
- "code": {
- "codeType": "PRF",
- "codeValue": 1010
- },
- "IsCodeEnabled": true,
- "IsCodeMatchRequired": true
- }
- },
- "laserSemiActiveGuidanceConfig": {
- "fieldOfViewAngle": 30.0,
- "lensDiameter": 0.1,
- "sensorDiameter": 0.03,
- "focusedSpotDiameter": 0.006,
- "reflectionCoefficient": 0.2,
- "targetReflectiveArea": 1.0,
- "lockThreshold": 1e-7,
- "spotOffsetSensitivity": 0.05,
- "jammingResistanceThreshold": 1e-5,
- "transmitterEfficiency": 0.85,
- "receiverEfficiency": 0.8,
- "wavelength": 1.06
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/missiles/mmw/mmw_001.json b/ThreatSource/data/missiles/mmw/mmw_001.json
deleted file mode 100644
index 3c76ad4..0000000
--- a/ThreatSource/data/missiles/mmw/mmw_001.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "name": {
- "zh": "毫米波末制导导弹-001",
- "en": "Millimeter Wave Terminal Guided Missile-001"
- },
- "type": "MillimeterWaveTerminalGuidance",
- "properties": {
- "type": "MillimeterWaveTerminalGuidance",
- "maxSpeed": 250.0,
- "maxFlightTime": 60.0,
- "maxFlightDistance": 8000.0,
- "maxAcceleration": 100.0,
- "proportionalNavigationCoefficient": 3.0,
- "launchAcceleration": 100.0,
- "maxEngineBurnTime": 0.1,
- "cruiseTime": 4.0,
- "mass": 28.0,
- "explosionRadius": 5.0,
- "hitProbability": 0.9,
- "selfDestructHeight": 0.0
- },
- "millimeterWaveGuidanceConfig": {
- "maxDetectionRange": 5000.0,
- "fieldOfViewAngle": 30.0,
- "targetRecognitionProbability": 0.95,
- "waveFrequency": 94e9,
- "pulseDuration": 1e-6,
-
- "searchBeamWidth": 4.0,
- "trackBeamWidth": 3.0,
- "lockBeamWidth": 2.0,
-
- "scanAngularSpeedDeg": 180.0,
- "spiralTightness": 1.2,
- "spiralTurns": 2,
-
- "recognitionSNRThreshold": -25.0,
- "lockSNRThreshold": -15.0,
-
- "targetLostTolerance": 0.8,
- "lockConfirmationTime": 0.15,
-
- "pulseRepetitionFrequency": 1.0e-4,
- "transmitPower": 0.3,
-
- "dopplerVelocityResolution": 1.0,
- "maxMeasurableVelocity": 1000.0,
-
- "antennaGain": 35.0,
- "noiseFigureDB": 7.0,
- "systemLossDB": 6.0,
- "monopulseSensitivity": 0.1,
-
- "yawControlEffectiveness": 120.0,
- "pitchControlEffectiveness": 150.0,
- "jammingResistanceThreshold": 1e-5
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/missiles/terminal_sensitive/tsm_001.json b/ThreatSource/data/missiles/terminal_sensitive/tsm_001.json
deleted file mode 100644
index 90e1f70..0000000
--- a/ThreatSource/data/missiles/terminal_sensitive/tsm_001.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "name": {
- "zh": "末敏导弹-001",
- "en": "Terminal Sensitive Missile-001"
- },
- "type": "TerminalSensitiveMissile",
- "properties": {
- "type": "TerminalSensitiveMissile",
- "maxSpeed": 1000.0,
- "maxFlightTime": 100.0,
- "maxFlightDistance": 5000.0,
- "maxAcceleration": 200.0,
- "proportionalNavigationCoefficient": 3.0,
- "launchAcceleration": 100.0,
- "maxEngineBurnTime": 0.1,
- "cruiseTime": 5.0,
- "mass": 50.0,
- "explosionRadius": 5.0,
- "selfDestructHeight": 0.0
- },
- "submunitionProperties": {
- "maxSpeed": 2000.0,
- "maxFlightTime": 60.0,
- "maxFlightDistance": 2000.0,
- "maxAcceleration": 300.0,
- "proportionalNavigationCoefficient": 4.0,
- "launchAcceleration": 10.0,
- "maxEngineBurnTime": 0.1,
- "mass": 10.0,
- "explosionRadius": 5.0,
- "hitProbability": 0.9,
- "selfDestructHeight": 20.0
- },
- "submunitionCount": 1,
- "submunitionConfig": {
- "separationHeight": 1000.0,
- "separationDistance": 1000.0,
- "submunitionSeparationAngle": 45.0,
- "separationRange": 50.0,
- "decelerationAcceleration": 250.0,
- "decelerationEndSpeed": 50.0,
- "parachuteDeploymentHeight": 400.0,
- "parachuteDeceleration": 90.0,
- "stableScanHeight": 200.0,
- "verticalDeclineSpeed": 10.0,
- "spiralRotationSpeed": 25.13,
- "scanAngle": 30.0,
- "targetDetectionDistance": 150.0,
- "selfDestructHeight": 20.0,
- "attackSpeed": 200.0,
- "infraredDetectorConfig": {
- "maxDetectionRange": 1000.0,
- "band": "Medium",
- "fieldOfView": 1.0,
- "detectionRadiationIntensityThreshold": 50.0,
- "jammingResistanceThreshold": 1e-4
- },
- "radiometerConfig": {
- "maxDetectionRange": 1000.0,
- "band": "Band8",
- "scanFieldOfView": 1.0,
- "jammingResistanceThreshold": 1e-4
- },
- "altimeterConfig": {
- "maxAltitude": 1000.0,
- "band": "Band3",
- "measurementAccuracy": 0.5,
- "scanFieldOfView": 25.0,
- "jammingResistanceThreshold": 1e-4
- },
- "rangefinderConfig": {
- "maxDetectionRange": 1000.0,
- "wavelength": 1.06,
- "pulseRate": 100.0,
- "accuracy": 0.5,
- "jammingResistanceThreshold": 1e-4
- }
- }
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/heavy_fog.json b/ThreatSource/data/weathers/heavy_fog.json
deleted file mode 100644
index ca03b1e..0000000
--- a/ThreatSource/data/weathers/heavy_fog.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "浓雾",
- "en": "Heavy Fog"
- },
- "type": "Fog",
- "temperature": 8.0,
- "relativeHumidity": 99.0,
- "visibility": 0.1,
- "precipitation": 0.0,
- "cO2Concentration": 415.0,
- "pressure": 998.0,
- "windSpeed": 0.0,
- "windDirection": 0.0
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/heavy_rain.json b/ThreatSource/data/weathers/heavy_rain.json
deleted file mode 100644
index f7c99e2..0000000
--- a/ThreatSource/data/weathers/heavy_rain.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "大雨",
- "en": "Heavy Rain"
- },
- "type": "Rain",
- "temperature": 16.0,
- "relativeHumidity": 95.0,
- "visibility": 2.0,
- "precipitation": 25.0,
- "cO2Concentration": 415.0,
- "pressure": 985.0,
- "windSpeed": 8.0,
- "windDirection": 180.0
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/heavy_snow.json b/ThreatSource/data/weathers/heavy_snow.json
deleted file mode 100644
index 3a929d1..0000000
--- a/ThreatSource/data/weathers/heavy_snow.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "大雪",
- "en": "Heavy Snow"
- },
- "type": "Snow",
- "temperature": -7.0,
- "relativeHumidity": 85.0,
- "visibility": 1.0,
- "precipitation": 8.0,
- "cO2Concentration": 410.0,
- "pressure": 990.0,
- "windSpeed": 6.0,
- "windDirection": 270.0
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/light_fog.json b/ThreatSource/data/weathers/light_fog.json
deleted file mode 100644
index 693e6f5..0000000
--- a/ThreatSource/data/weathers/light_fog.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "轻雾",
- "en": "Light Fog"
- },
- "type": "Fog",
- "temperature": 12.0,
- "relativeHumidity": 95.0,
- "visibility": 0.8,
- "precipitation": 0.0,
- "cO2Concentration": 415.0,
- "pressure": 1000.0,
- "windSpeed": 0.5,
- "windDirection": 20.0
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/light_rain.json b/ThreatSource/data/weathers/light_rain.json
deleted file mode 100644
index 38bcfb5..0000000
--- a/ThreatSource/data/weathers/light_rain.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "小雨",
- "en": "Light Rain"
- },
- "type": "Rain",
- "temperature": 20.0,
- "relativeHumidity": 80.0,
- "visibility": 6.0,
- "precipitation": 5.0,
- "cO2Concentration": 415.0,
- "pressure": 1005.0,
- "windSpeed": 3.0,
- "windDirection": 180.0
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/light_snow.json b/ThreatSource/data/weathers/light_snow.json
deleted file mode 100644
index bb656e0..0000000
--- a/ThreatSource/data/weathers/light_snow.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "小雪",
- "en": "Light Snow"
- },
- "type": "Snow",
- "temperature": -3.0,
- "relativeHumidity": 75.0,
- "visibility": 4.0,
- "precipitation": 2.0,
- "cO2Concentration": 410.0,
- "pressure": 1002.0,
- "windSpeed": 3.0,
- "windDirection": 270.0
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/medium_fog.json b/ThreatSource/data/weathers/medium_fog.json
deleted file mode 100644
index 5236375..0000000
--- a/ThreatSource/data/weathers/medium_fog.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "中雾",
- "en": "Medium Fog"
- },
- "type": "Fog",
- "temperature": 10.0,
- "relativeHumidity": 98.0,
- "visibility": 0.4,
- "precipitation": 0.0,
- "cO2Concentration": 415.0,
- "pressure": 1000.0,
- "windSpeed": 0.2,
- "windDirection": 10.0
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/medium_rain.json b/ThreatSource/data/weathers/medium_rain.json
deleted file mode 100644
index 4fe1d6f..0000000
--- a/ThreatSource/data/weathers/medium_rain.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "中雨",
- "en": "Medium Rain"
- },
- "type": "Rain",
- "temperature": 18.0,
- "relativeHumidity": 90.0,
- "visibility": 4.0,
- "precipitation": 15.0,
- "cO2Concentration": 415.0,
- "pressure": 995.0,
- "windSpeed": 6.0,
- "windDirection": 180.0
-}
diff --git a/ThreatSource/data/weathers/medium_snow.json b/ThreatSource/data/weathers/medium_snow.json
deleted file mode 100644
index 1b43fe4..0000000
--- a/ThreatSource/data/weathers/medium_snow.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "中雪",
- "en": "Medium Snow"
- },
- "type": "Snow",
- "temperature": -5.0,
- "relativeHumidity": 80.0,
- "visibility": 2.0,
- "precipitation": 4.0,
- "cO2Concentration": 410.0,
- "pressure": 1000.0,
- "windSpeed": 4.0,
- "windDirection": 270.0
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/sandstorm.json b/ThreatSource/data/weathers/sandstorm.json
deleted file mode 100644
index 992bec2..0000000
--- a/ThreatSource/data/weathers/sandstorm.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "沙尘",
- "en": "Sandstorm"
- },
- "type": "Dust",
- "temperature": 30.0,
- "relativeHumidity": 25.0,
- "visibility": 1.5,
- "precipitation": 0.0,
- "cO2Concentration": 430.0,
- "pressure": 1005.0,
- "windSpeed": 12.0,
- "windDirection": 315.0
-}
\ No newline at end of file
diff --git a/ThreatSource/data/weathers/sunny.json b/ThreatSource/data/weathers/sunny.json
deleted file mode 100644
index 6dbbffa..0000000
--- a/ThreatSource/data/weathers/sunny.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "name": {
- "zh": "晴天",
- "en": "Sunny"
- },
- "type": "Clear",
- "temperature": 25.0,
- "relativeHumidity": 45.0,
- "visibility": 15.0,
- "precipitation": 0.0,
- "cO2Concentration": 415.0,
- "pressure": 1018.0,
- "windSpeed": 1.2,
- "windDirection": 90.0
-}
\ No newline at end of file
diff --git a/ThreatSource/src/Jammer/BaseJammer.cs b/ThreatSource/src/Jammer/BaseJammer.cs
index 70ef87d..66e7818 100644
--- a/ThreatSource/src/Jammer/BaseJammer.cs
+++ b/ThreatSource/src/Jammer/BaseJammer.cs
@@ -183,7 +183,7 @@ namespace ThreatSource.Jammer
}
///
- /// 发布干扰开始事件
+ /// 发布干扰事件
///
protected void PublishJammingEvent(JammingParameters parameters)
{
diff --git a/docs/test_result/prtformance_test_result_0605.md b/docs/test_result/prtformance_test_result_0605.md
index 6fb2ca1..3c2ef3b 100644
--- a/docs/test_result/prtformance_test_result_0605.md
+++ b/docs/test_result/prtformance_test_result_0605.md
@@ -350,6 +350,8 @@ GC频率: 优秀 ✅
Gen0 GC次数: 9 (0.3 次/秒)
Gen1 GC次数: 0 (0.0 次/秒)
Gen2 GC次数: 0 (0.0 次/秒)
+
+
总GC次数: 9
【性能评级】
帧时间表现: 优秀 ✅
diff --git a/tools/ComprehensiveMissileSimulator.cs b/tools/ComprehensiveMissileSimulator.cs
index 8e9fa2f..bcde703 100644
--- a/tools/ComprehensiveMissileSimulator.cs
+++ b/tools/ComprehensiveMissileSimulator.cs
@@ -10,6 +10,23 @@ using System.Diagnostics;
namespace ThreatSource.Tools.MissileSimulation
{
+ ///
+ /// 坦克移动模式枚举
+ ///
+ public enum TankMovementMode
+ {
+ /// 静止模式:位置(0,1.2,0),速度0
+ Stationary = 0,
+ /// 超低速模式:速度1m/s
+ VeryLowSpeed = 1,
+ /// 低速模式:速度5m/s
+ LowSpeed = 5,
+ /// 中速模式:速度10m/s
+ MediumSpeed = 10,
+ /// 高速模式:速度20m/s
+ HighSpeed = 20
+ }
+
///
/// 综合导弹模拟器 - 支持6种不同类型的导弹模拟
///
@@ -37,6 +54,9 @@ namespace ThreatSource.Tools.MissileSimulation
// 当前选中的导弹ID
public string SelectedMissileId { get; private set; }
+ // 当前坦克移动模式
+ public TankMovementMode CurrentTankMovementMode { get; private set; } = TankMovementMode.Stationary;
+
private List<(JammingType Type, string DisplayName, string JammerId, string Mode, string Target)> activeJammings;
///
@@ -203,94 +223,30 @@ namespace ThreatSource.Tools.MissileSimulation
///
private void AddTankTarget()
{
+ double speed = (double)CurrentTankMovementMode;
+
var motionParameters = new KinematicState
{
Position = new Vector3D(0, 1.2, 0),
- Orientation = new Orientation(0.0, 0.0, 0.0),
- Speed = 2.0
+ Orientation = speed > 0 ? new Orientation(0.0, 0.0, 0.0) : new Orientation(0.0, 0.0, 0.0), // 朝向Z轴正方向
+ Speed = speed
};
+ // 如果是移动模式,设置速度矢量
+ if (speed > 0)
+ {
+ motionParameters.Velocity = new Vector3D(0, 0, speed); // Z轴正方向运动
+ }
+
string targetId = "Tank_1";
var target = _threatSourceFactory.CreateEquipment(targetId, "mbt_001", motionParameters);
targets[targetId] = target;
simulationManager.RegisterEntity(targetId, target);
target.Activate(); // 激活目标
+
Console.WriteLine($"添加目标 {targetId},位置:{motionParameters.Position}");
- Console.WriteLine($"目标创建后实际位置:{target.KState.Position}");
- }
-
- ///
- /// 添加激光诱偏目标
- ///
- private void AddLaserDecoy()
- {
- var motionParameters = new KinematicState
- {
- Position = new Vector3D(0, 0, 50),
- Orientation = new Orientation(Math.PI/2, 0.0, 0.0),
- Speed = 0.0
- };
- string laserDecoyId = "LDY_1";
- if (_threatSourceFactory.CreateJammer(laserDecoyId, "laser_decoy", motionParameters, "Tank_1") is LaserDecoy laserDecoy)
- {
- simulationManager.RegisterEntity(laserDecoyId, laserDecoy);
- jammers[laserDecoyId] = laserDecoy as BaseJammer;
- Console.WriteLine($"注册激光诱偏目标 {laserDecoyId}");
- }
- }
-
- ///
- /// 添加烟幕弹
- ///
- private void AddSmokeGrenade()
- {
- var motionParameters = new KinematicState
- {
- Position = new Vector3D(50, 5, 0),
- Orientation = new Orientation(Math.PI/2, 0.0, 0.0),
- Speed = 0.0
- };
- string smokeGrenadeId = "SG_1";
- var smokeGrenade = _threatSourceFactory.CreateJammer(smokeGrenadeId, "surround", motionParameters, "Tank_1");
- if (smokeGrenade is BaseJammer jammer1)
- {
- simulationManager.RegisterEntity(smokeGrenadeId, jammer1);
- jammers[smokeGrenadeId] = jammer1;
- Console.WriteLine($"注册烟幕弹 {smokeGrenadeId}");
- }
-
- smokeGrenadeId = "SG_2";
- smokeGrenade = _threatSourceFactory.CreateJammer(smokeGrenadeId, "infrared", motionParameters, "Tank_1");
- if (smokeGrenade is BaseJammer jammer2)
- {
- simulationManager.RegisterEntity(smokeGrenadeId, jammer2);
- jammers[smokeGrenadeId] = jammer2;
- Console.WriteLine($"注册烟幕弹 {smokeGrenadeId}");
- }
-
- smokeGrenadeId = "SG_3";
- smokeGrenade = _threatSourceFactory.CreateJammer(smokeGrenadeId, "mmw", motionParameters, "Tank_1");
- if (smokeGrenade is BaseJammer jammer3)
- {
- simulationManager.RegisterEntity(smokeGrenadeId, jammer3);
- jammers[smokeGrenadeId] = jammer3;
- Console.WriteLine($"注册烟幕弹 {smokeGrenadeId}");
- }
-
- var motionParametersTop = new KinematicState
- {
- Position = new Vector3D(0, 10, 0),
- Orientation = new Orientation(0, Math.PI/2, 0.0),
- Speed = 0.0
- };
- smokeGrenadeId = "SG_4";
- smokeGrenade = _threatSourceFactory.CreateJammer(smokeGrenadeId, "top", motionParametersTop, "Tank_1");
- if (smokeGrenade is BaseJammer jammer4)
- {
- simulationManager.RegisterEntity(smokeGrenadeId, jammer4);
- jammers[smokeGrenadeId] = jammer4;
- Console.WriteLine($"注册烟幕弹 {smokeGrenadeId}");
- }
+ Console.WriteLine($"移动模式:{GetMovementModeDisplayName(CurrentTankMovementMode)}");
+ Console.WriteLine($"目标创建后实际位置:{target.KState.Position},速度:{target.KState.Speed} m/s");
}
///
@@ -863,7 +819,7 @@ namespace ThreatSource.Tools.MissileSimulation
///
/// 清除干扰 (原有方法,保留向后兼容)
///
- public void ClearJamming(JammingType type, string category)
+ public static void ClearJamming(JammingType type, string category)
{
var jammingParams = new JammingParameters
{
@@ -872,9 +828,7 @@ namespace ThreatSource.Tools.MissileSimulation
Duration = 0,
Direction = new Vector3D(1, 0, 0),
SourcePosition = new Vector3D(0, 0, 0)
- };
-
- // 保留原有实现...
+ };
}
///
@@ -1232,6 +1186,88 @@ namespace ThreatSource.Tools.MissileSimulation
return [.. activeJammings];
}
+ ///
+ /// 设置坦克移动模式
+ ///
+ /// 要设置的移动模式
+ public void SetTankMovementMode(TankMovementMode mode)
+ {
+ CurrentTankMovementMode = mode;
+ Console.WriteLine($"坦克移动模式已设置为: {GetMovementModeDisplayName(mode)}");
+
+ // 如果坦克已经存在,更新其运动参数
+ if (targets.TryGetValue("Tank_1", out var tank))
+ {
+ UpdateTankMovementParameters(tank, mode);
+ }
+ }
+
+ ///
+ /// 获取移动模式的显示名称
+ ///
+ private static string GetMovementModeDisplayName(TankMovementMode mode)
+ {
+ return mode switch
+ {
+ TankMovementMode.Stationary => "静止, 0 m/s",
+ TankMovementMode.VeryLowSpeed => "超低速, 1 m/s",
+ TankMovementMode.LowSpeed => "低速, 5 m/s",
+ TankMovementMode.MediumSpeed => "中速, 10 m/s",
+ TankMovementMode.HighSpeed => "高速, 20 m/s",
+ _ => "未知模式"
+ };
+ }
+
+ ///
+ /// 更新坦克的运动参数
+ ///
+ private void UpdateTankMovementParameters(SimulationElement tank, TankMovementMode mode)
+ {
+ double speed = (double)mode;
+
+ // 设置运动参数
+ tank.KState.Speed = speed;
+
+ if (speed > 0)
+ {
+ // 移动模式:设置X轴正方向运动,坦克面向运动方向
+ tank.KState.Orientation = new Orientation(0, 0, 0); // 面向X轴正方向
+ tank.KState.Velocity = new Vector3D(speed, 0, 0);
+ }
+ else
+ {
+ // 静止模式:清零速度和方向
+ tank.KState.Velocity = Vector3D.Zero;
+ }
+
+ Console.WriteLine($"坦克运动参数已更新 - 速度: {speed} m/s, 位置: {tank.KState.Position}");
+ }
+
+ ///
+ /// 获取可用的坦克移动模式列表
+ ///
+ /// 包含移动模式和显示名称的数组
+ public (TankMovementMode Mode, string DisplayName)[] GetAvailableMovementModes()
+ {
+ return new[]
+ {
+ (TankMovementMode.Stationary, GetMovementModeDisplayName(TankMovementMode.Stationary)),
+ (TankMovementMode.VeryLowSpeed, GetMovementModeDisplayName(TankMovementMode.VeryLowSpeed)),
+ (TankMovementMode.LowSpeed, GetMovementModeDisplayName(TankMovementMode.LowSpeed)),
+ (TankMovementMode.MediumSpeed, GetMovementModeDisplayName(TankMovementMode.MediumSpeed)),
+ (TankMovementMode.HighSpeed, GetMovementModeDisplayName(TankMovementMode.HighSpeed))
+ };
+ }
+
+ ///
+ /// 获取当前坦克移动模式信息
+ ///
+ /// 当前移动模式和显示名称
+ public (TankMovementMode Mode, string DisplayName) GetCurrentMovementMode()
+ {
+ return (CurrentTankMovementMode, GetMovementModeDisplayName(CurrentTankMovementMode));
+ }
+
///
/// 销毁所有实体并从仿真管理器中注销
///
@@ -1344,10 +1380,6 @@ namespace ThreatSource.Tools.MissileSimulation
// 根据导弹类型添加相应的干扰器
AddJammersForMissile(missileId);
- // 添加烟幕弹和激光诱偏目标
- AddSmokeGrenade();
- AddLaserDecoy();
-
// 激活选中的导弹
if (missiles.TryGetValue(missileId, out var selectedMissile))
{
@@ -1388,12 +1420,13 @@ namespace ThreatSource.Tools.MissileSimulation
{
try
{
- // 根据干扰器ID确定朝向
+ // 根据干扰器ID确定朝向和位置
Orientation orientation = GetJammerOrientation(jammerId, target);
+ Vector3D position = GetJammerPosition(jammerId);
var jammerParams = new KinematicState
{
- Position = new Vector3D(0, 0, 0),
+ Position = position,
Orientation = orientation,
Speed = 0.0
};
@@ -1406,7 +1439,7 @@ namespace ThreatSource.Tools.MissileSimulation
{
simulationManager.RegisterEntity(jammerId, jammer);
jammers[jammerId] = baseJammer;
- Console.WriteLine($"注册干扰器 {jammerId}");
+ Console.WriteLine($"注册干扰器 {jammerId},位置:{position}");
}
}
catch (Exception ex)
@@ -1500,5 +1533,19 @@ namespace ThreatSource.Tools.MissileSimulation
_ => "laser_blocking" // 默认配置
};
}
+
+ ///
+ /// 根据干扰器ID确定初始位置
+ ///
+ private Vector3D GetJammerPosition(string jammerId)
+ {
+ return jammerId switch
+ {
+ "LDY_1" => new Vector3D(0, 0, 50), // 激光诱偏目标:目标后方50米
+ "SG_1" or "SG_2" or "SG_3" => new Vector3D(50, 5, 0), // 水平烟幕弹:侧方50米,高5米
+ "SG_4" => new Vector3D(0, 10, 0), // 顶部烟幕弹:正上方10米
+ _ => new Vector3D(0, 0, 0) // 其他干扰器默认位置
+ };
+ }
}
}
\ No newline at end of file
diff --git a/tools/Program.cs b/tools/Program.cs
index 1dbdab1..3759b88 100644
--- a/tools/Program.cs
+++ b/tools/Program.cs
@@ -41,12 +41,16 @@ namespace ThreatSource.Tools.MissileSimulation
sensorStatusString = "(需先选导弹)";
}
+ // 获取当前坦克移动模式状态
+ var currentTankMode = simulator.GetCurrentMovementMode();
+
Console.WriteLine($"1. 选择导弹 ({missileStatus})");
Console.WriteLine($"2. 选择指示器 {sensorStatusString}");
Console.WriteLine($"3. 选择干扰方式 {simulator.GetActiveJammingDescription()} {(string.IsNullOrEmpty(simulator.SelectedMissileId) ? "(需先选导弹)" : "")}");
Console.WriteLine($"4. 设置日志级别 (当前级别: {simulator.CurrentLogLevel})");
Console.WriteLine($"5. 开始仿真 {(string.IsNullOrEmpty(simulator.SelectedMissileId) ? "(需先选导弹)" : "")}");
- Console.WriteLine($"6. 设置仿真步长 (当前: {simulator.TimeStep}s)");
+ Console.WriteLine($"6. 设置坦克移动模式 (当前: {currentTankMode.DisplayName})");
+ Console.WriteLine($"7. 设置仿真步长 (当前: {simulator.TimeStep}s)");
Console.WriteLine("0. 退出程序");
Console.Write("\n请选择: ");
string choice = Console.ReadLine()?.ToLower() ?? string.Empty;
@@ -82,6 +86,9 @@ namespace ThreatSource.Tools.MissileSimulation
}
break;
case "6":
+ ConfigureTankMovement(simulator);
+ break;
+ case "7":
ConfigureTimeStep(simulator);
break;
case "0":
@@ -392,5 +399,53 @@ namespace ThreatSource.Tools.MissileSimulation
}
}
}
+
+ static void ConfigureTankMovement(ComprehensiveMissileSimulator simulator)
+ {
+ bool backToMainMenu = false;
+ while (!backToMainMenu)
+ {
+ var currentMode = simulator.GetCurrentMovementMode();
+ var availableModes = simulator.GetAvailableMovementModes();
+
+ Console.WriteLine("\n--- 设置坦克移动模式 ---");
+ Console.WriteLine($"当前坦克移动模式: {currentMode.DisplayName}");
+ Console.WriteLine("\n可选移动模式:");
+
+ for (int i = 0; i < availableModes.Length; i++)
+ {
+ string indicator = availableModes[i].Mode == currentMode.Mode ? " [当前]" : "";
+ Console.WriteLine($" {i + 1}. {availableModes[i].DisplayName}{indicator}");
+ }
+
+ Console.WriteLine(" 0. 返回主菜单");
+ Console.Write("请选择坦克移动模式: ");
+
+ string input = Console.ReadLine()?.ToLower() ?? string.Empty;
+
+ if (input == "0")
+ {
+ backToMainMenu = true;
+ }
+ else if (int.TryParse(input, out int choice))
+ {
+ if (choice >= 1 && choice <= availableModes.Length)
+ {
+ var selectedMode = availableModes[choice - 1];
+ simulator.SetTankMovementMode(selectedMode.Mode);
+ Console.WriteLine($"坦克移动模式已设置为: {selectedMode.DisplayName}");
+ return; // 设置后返回主菜单
+ }
+ else
+ {
+ Console.WriteLine("无效选择,请重试。");
+ }
+ }
+ else
+ {
+ Console.WriteLine("无效输入,请输入数字。");
+ }
+ }
+ }
}
}
\ No newline at end of file