Go to file
2025-06-06 15:22:27 +08:00
.cursor 删除了Native项目,更新了发布版本和文档 2025-06-03 16:48:29 +08:00
docs 增加了 Matlab/Simulink 集成示例代码和说明 2025-06-05 18:12:14 +08:00
publish 删除了Native项目,更新了发布版本和文档 2025-06-03 16:48:29 +08:00
scripts 删除了Native项目,更新了发布版本和文档 2025-06-03 16:48:29 +08:00
ThreatSource 修改了红外成像的量化辐射强度上下限,默认值为1e-6 W/sr和1e3 W/sr 2025-06-06 15:22:27 +08:00
ThreatSource.Tests 优化了毫米波制导的性能,修改了红外成像制导的参数,包括复合制导 2025-06-05 17:14:15 +08:00
tools 进行了部分性能优化,并记录了性能优化分析报告 2025-06-04 19:52:09 +08:00
.gitignore 创建项目,添加文档 2024-12-30 15:51:19 +08:00
CHANGELOG.md 增加了 Matlab/Simulink 集成示例代码和说明 2025-06-05 18:12:14 +08:00
docfx-guide.md 增加了 C++ 原生接口 2025-01-03 11:43:50 +08:00
docfx.json 增加 pdf 文档 2024-12-31 13:05:26 +08:00
README.md 删除了Native项目,更新了发布版本和文档 2025-06-03 16:48:29 +08:00
ThreatSource.sln 删掉了 JammerType 枚举,用 JammingType 枚举表示干扰物理方式,用 JammingMode 枚举表示干扰模式 2025-04-25 18:16:22 +08:00
VERSION 增加了导弹生命周期的状态事件和制导事件,完善了集成测试的菜单逻辑,干扰器正常工作了 2025-05-26 18:47:49 +08:00

ThreatSource Library

威胁源仿真库是一个功能强大的.NET类库专门用于模拟和仿真各种军事威胁源和导弹系统。项目提供 .NET 核心库和 C++/CLI 包装器两种接口,支持复杂的制导系统、干扰对抗和多传感器融合仿真。

🚀 主要特性

制导系统

  • 激光制导:激光半主动、激光驾束、激光编码制导
  • 红外制导:红外成像、红外指令、红外测角
  • 毫米波制导:主动雷达、圆锥/螺旋扫描
  • 多模制导:毫米波/红外双模、激光/红外复合制导
  • 末敏制导:末敏弹及子弹药制导

传感器系统

  • 多传感器融合技术
  • 螺旋扫描搜索算法
  • 目标探测和识别
  • RCS特征建模
  • Swerling RCS回波模型

干扰对抗

  • 激光干扰:激光诱偏、激光告警
  • 红外干扰:红外干扰、烟幕弹干扰
  • 毫米波干扰:毫米波补偿干扰
  • 综合干扰:多频段同时干扰处理

仿真环境

  • 大气环境建模(密度、温度、湿度、风速)
  • 地形高程影响
  • 实时仿真数据同步
  • 第三方仿真环境适配

📊 版本信息

当前版本: 1.1.22
发布日期: 2025-05-26
详细变更: 请参阅 CHANGELOG.md

🏗️ 编译和打包

编译 .NET 库

编译 Debug 版本:

dotnet build ThreatSource/ThreatSource.csproj

编译 Release 版本:

dotnet build ThreatSource/ThreatSource.csproj -c Release

打包脚本

打包 .NET 库

使用打包脚本生成 zip 包:

./scripts/pack_dll.sh

生成的文件位于 publish 目录下,文件名格式为 ThreatSourceLibrary-{version}.zip。 包含以下文件:

  • ThreatSource.dll - 主要的库文件
  • ThreatSource.deps.json - 依赖配置文件
  • ThreatSource.xml - API 文档文件
  • AirTransmission.dll - 大气传输计算库
  • AirTransmission.xml - 大气传输计算库API文档文件

打包完整项目

使用打包脚本生成 zip 包:

./scripts/pack_all.sh

生成的文件位于 publish 目录下:

  • ThreatSourceLibrary-{version}.zip - .NET库包
  • ThreatSource-Library.pdf - API文档文件

生成文档

生成 HTML 和 PDF 格式的文档:

# 生成 HTML 文档
docfx build docfx.json

# 生成 PDF 文档
./scripts/generate_pdf.sh

生成的文档位于:

  • HTML: docs/_site/
  • PDF: publish/ThreatSource-Library.pdf

📁 项目结构

ThreatSourceLibaray/
├── ThreatSource/                   # 核心.NET库
│   ├── src/
│   │   ├── Equipment/              # 装备模型(坦克、直升机等)
│   │   ├── Missile/                # 导弹系统
│   │   ├── Guidance/               # 制导系统
│   │   ├── Sensor/                 # 传感器系统
│   │   ├── Indicator/              # 指示器(激光指示器、测角仪等)
│   │   ├── Jammer/                 # 干扰器系统
│   │   ├── Jammable/               # 可干扰组件
│   │   ├── Simulation/             # 仿真框架
│   │   ├── Data/                   # 数据处理
│   │   └── Utils/                  # 工具类
│   ├── data/                       # 配置文件TOML格式
│   │   ├── missiles/               # 导弹参数配置
│   │   ├── equipments/             # 装备参数配置
│   │   ├── indicators/             # 指示器配置
│   │   ├── jammers/                # 干扰器配置
│   │   ├── warners/                # 告警器配置
│   │   └── weathers/               # 天气环境配置
│   └── lib/                        # 第三方依赖库
├── ThreatSourceNative/             # C++/CLI包装器需要CLR支持
│   ├── include/
│   │   └── threat_source.h         # C接口头文件
│   └── src/
│       └── threat_source.cpp       # C++/CLI实现
├── ThreatSource.Tests/             # 单元测试项目
├── docs/                           # 文档
│   ├── articles/                   # 技术文章
│   ├── examples/                   # 示例代码
│   │   ├── Integration/            # 集成示例
│   │   │   └── UnityExample.cs     # Unity集成完整示例
│   │   └── Simulation/             # 仿真示例
│   └── api/                        # API文档
├── scripts/                        # 构建脚本
│   ├── pack_dll.sh                 # .NET库打包
│   ├── pack_all.sh                 # 完整打包
│   └── generate_pdf.sh             # PDF生成
└── tools/                          # 开发工具

🔧 开发环境要求

基础要求

  • .NET 8.0 或更高版本
  • Visual Studio 2022 或更高版本(原生库开发)
  • Git 版本控制

文档生成

  • DocFX 3.0+ API文档生成
  • wkhtmltopdf PDF文档生成

依赖项

  • Tomlyn 0.19.0 - TOML配置文件解析
  • AirTransmission - 大气传输计算库

📖 使用说明

C#/.NET 用户

通过NuGet安装推荐

dotnet add package ThreatSource

直接引用DLL

  1. 下载最新的 ThreatSourceLibrary-{version}.zip
  2. 解压并引用 ThreatSource.dll
  3. 确保配置文件位于正确路径

基本使用示例

using ThreatSource.Missile;
using ThreatSource.Equipment;

// 创建目标
var tank = new Tank("T72", position, orientation);

// 创建导弹
var missile = new LaserSemiActiveGuidedMissile("Hellfire");
missile.Launch(launchPosition, targetPosition);

// 仿真循环
while (missile.IsActive)
{
    missile.Update(deltaTime);
    // 处理仿真逻辑
}

Unity 集成

🎮 Unity引擎完全支持项目提供了专门的Unity集成方案可以直接在Unity项目中使用。

快速开始

  1. 下载 ThreatSourceLibrary-{version}.zip
  2. ThreatSource.dll 复制到 Unity 项目的 Assets/Plugins/ 目录
  3. 参考 docs/examples/Integration/UnityExample.cs 示例代码
  4. 在Unity脚本中直接使用库的API

详细集成指导

完整的Unity集成教程、示例代码和最佳实践请参阅 📖 Unity集成指南

C++ 用户

⚠️ 重要提醒ThreatSourceNative 是 C++/CLI 包装器,必须在支持 CLR 的环境中运行,不是传统的原生 C++ 库。

使用 C++/CLI 包装器

  1. 下载 ThreatSourceNative-{version}.zip
  2. bin/ 目录下所有DLL复制到程序目录
  3. 项目配置要求:
    • CLR 支持:启用 (/clr)
    • 平台工具集Visual Studio 2022 (v143)
    • .NET 目标框架net8.0 或更高
  4. 包含头文件:#include "threat_source.h"
#include "threat_source.h"

int main() {
    // 初始化仿真
    TS_CreateSimulation();
    
    // 创建导弹实例
    TS_CreateMissile("missile1", 0, 0, 0, 100, 0, 0, 
                     300, 50, 60, 8000, 45.0);
    
    // 激活并发射
    TS_ActivateMissile("missile1");
    TS_FireMissile("missile1");
    
    return 0;
}

Unity 兼容性说明

⚠️ Unity 不支持 C++/CLI 混合模式程序集。如需在 Unity 中使用,建议:

  1. 直接使用 .NET 库:引用 ThreatSource.dll
  2. 创建 Unity Package 形式分发
  3. 如需原生性能,考虑重新设计为纯 C++ + P/Invoke 架构

纯 C++ 环境说明

如需在不支持 CLR 的纯 C++ 环境中使用,当前的 ThreatSourceNative 无法直接支持。建议:

  1. 通过进程间通信调用 .NET 库
  2. 重新设计为纯 C++ + P/Invoke 接口
  3. 考虑使用其他跨语言调用方案(如 COM

配置文件使用

项目使用TOML格式的配置文件位于 data/ 目录:

# missiles/hellfire.toml
[basic]
name = "AGM-114 Hellfire"
type = "LaserSemiActive"
mass = 45.0
length = 1.6

[guidance]
max_range = 8000.0
terminal_guidance = true
proportional_gain = 3.0

📚 示例和文档

🔄 持续集成

项目支持自动化构建和测试:

# 运行所有测试
dotnet test ThreatSource.Tests/

# 代码覆盖率分析
dotnet test --collect:"XPlat Code Coverage"

🤝 贡献指南

  1. Fork 项目仓库
  2. 创建功能分支:git checkout -b feature/amazing-feature
  3. 提交更改:git commit -m 'Add amazing feature'
  4. 推送分支:git push origin feature/amazing-feature
  5. 提交 Pull Request

📄 许可证

本项目基于 MIT License 开源协议。详情请查看 LICENSE 文件。

📞 技术支持

  • 问题反馈Issues
  • 功能请求Feature Requests
  • 文档反馈Documentation Issues
  • Unity集成支持Unity相关问题请在Issues中标注"Unity"标签
  • 架构选择指导
    • .NET项目直接使用ThreatSource.dll
    • Unity项目:推荐.NET库 + Unity适配器方案
    • 纯C++项目当前C++/CLI包装器需要CLR支持如需真正原生支持请提交Feature Request

最后更新: 2025-05-26
文档版本: 1.1.22