| .cursor | ||
| docs | ||
| publish | ||
| scripts | ||
| ThreatSource | ||
| ThreatSource.Tests | ||
| tools | ||
| .gitignore | ||
| CHANGELOG.md | ||
| docfx-guide.md | ||
| docfx.json | ||
| README.md | ||
| ThreatSource.sln | ||
| VERSION | ||
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
- 下载最新的
ThreatSourceLibrary-{version}.zip - 解压并引用
ThreatSource.dll - 确保配置文件位于正确路径
基本使用示例
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项目中使用。
快速开始
- 下载
ThreatSourceLibrary-{version}.zip - 将
ThreatSource.dll复制到 Unity 项目的Assets/Plugins/目录 - 参考
docs/examples/Integration/UnityExample.cs示例代码 - 在Unity脚本中直接使用库的API
详细集成指导
完整的Unity集成教程、示例代码和最佳实践,请参阅: 📖 Unity集成指南
C++ 用户
⚠️ 重要提醒:ThreatSourceNative 是 C++/CLI 包装器,必须在支持 CLR 的环境中运行,不是传统的原生 C++ 库。
使用 C++/CLI 包装器
- 下载
ThreatSourceNative-{version}.zip - 将
bin/目录下所有DLL复制到程序目录 - 项目配置要求:
- CLR 支持:启用 (
/clr) - 平台工具集:Visual Studio 2022 (v143)
- .NET 目标框架:net8.0 或更高
- CLR 支持:启用 (
- 包含头文件:
#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 中使用,建议:
- 直接使用 .NET 库:引用
ThreatSource.dll - 创建 Unity Package 形式分发
- 如需原生性能,考虑重新设计为纯 C++ + P/Invoke 架构
纯 C++ 环境说明
如需在不支持 CLR 的纯 C++ 环境中使用,当前的 ThreatSourceNative 无法直接支持。建议:
- 通过进程间通信调用 .NET 库
- 重新设计为纯 C++ + P/Invoke 接口
- 考虑使用其他跨语言调用方案(如 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
📚 示例和文档
- 集成示例:docs/examples/Integration/
- 仿真示例:docs/examples/Simulation/
- API文档:在线文档 或
docs/_site/ - 技术文章:docs/articles/
🔄 持续集成
项目支持自动化构建和测试:
# 运行所有测试
dotnet test ThreatSource.Tests/
# 代码覆盖率分析
dotnet test --collect:"XPlat Code Coverage"
🤝 贡献指南
- Fork 项目仓库
- 创建功能分支:
git checkout -b feature/amazing-feature - 提交更改:
git commit -m 'Add amazing feature' - 推送分支:
git push origin feature/amazing-feature - 提交 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