Go to file
2025-03-11 18:25:26 +08:00
docs 将各组件参数都保存到配置文件中;增加了装甲车和直升机;实现了红外成像机制; 2025-03-11 18:25:26 +08:00
publish 增加威胁源仿真系统技术说明书 2025-01-03 15:48:02 +08:00
scripts 增加威胁源仿真系统技术说明书 2025-01-03 15:48:02 +08:00
ThreatSource 将各组件参数都保存到配置文件中;增加了装甲车和直升机;实现了红外成像机制; 2025-03-11 18:25:26 +08:00
ThreatSource.Tests 将各组件参数都保存到配置文件中;增加了装甲车和直升机;实现了红外成像机制; 2025-03-11 18:25:26 +08:00
ThreatSourceNative 增加了 C++ 原生接口 2025-01-03 11:43:50 +08:00
tools 将各组件参数都保存到配置文件中;增加了装甲车和直升机;实现了红外成像机制; 2025-03-11 18:25:26 +08:00
.gitignore 创建项目,添加文档 2024-12-30 15:51:19 +08:00
CHANGELOG.md 将各组件参数都保存到配置文件中;增加了装甲车和直升机;实现了红外成像机制; 2025-03-11 18:25:26 +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 增加了 C++ 原生接口 2025-01-03 11:43:50 +08:00
ThreatSource.sln 创建项目,添加文档 2024-12-30 15:51:19 +08:00
VERSION 将各组件参数都保存到配置文件中;增加了装甲车和直升机;实现了红外成像机制; 2025-03-11 18:25:26 +08:00

ThreatSource Library

威胁源仿真库是一个用于模拟和仿真各种威胁源的.NET类库。提供 .NET 和原生 C++ 两种接口。

编译和打包

编译 .NET 库

编译 Debug 版本:

dotnet build ThreatSource/ThreatSource.csproj

编译 Release 版本:

dotnet build ThreatSource/ThreatSource.csproj -c Release

编译原生库

  1. 使用 Visual Studio 2022 打开 ThreatSourceNative/ThreatSourceNative.vcxproj
  2. 选择配置Release平台x64
  3. 编译解决方案

打包

打包 .NET 库

使用打包脚本生成 zip 包:

./scripts/pack_dll.sh

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

  • ThreatSource.dll - 主要的库文件
  • ThreatSource.deps.json - 依赖配置文件
  • ThreatSource.xml - API 文档文件

打包原生库

使用打包脚本生成 zip 包:

./scripts/pack_native.sh

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

  • bin/ThreatSourceNative.dll - 原生接口库
  • bin/ThreatSource.dll - 核心库
  • bin/ThreatSource.deps.json - 依赖配置文件
  • include/threat_source.h - C接口头文件

生成文档

生成 PDF 格式的文档:

# 先生成 HTML 文档
docfx build docfx.json

# 然后生成 PDF
./scripts/generate_pdf.sh

生成的 PDF 文件位于 publish 目录下,文件名为 ThreatSource-Library.pdf

项目结构

ThreatSource/
├── src/
│   ├── Target/
│   │   └── Tank.cs
│   ├── Indicator/
│   │   ├── LaserDesignator.cs
│   │   ├── LaserBeamRider.cs
│   │   └── InfraredTracker.cs
│   └── Missile/
│       ├── BaseMissile.cs
│       ├── LaserBeamRiderMissile.cs
│       ├── InfraredCommandGuidedMissile.cs
│       ├── LaserSemiActiveGuidedMissile.cs
│       ├── InfraredImagingTerminalGuidedMissile.cs
│       ├── MillimeterWaveTerminalGuidedMissile.cs
│       ├── TerminalSensitiveMissile.cs
│       └── TerminalSensitiveSubmunition.cs
├── docs/ - 文档目录
├── ThreatSourceNative/ - 原生接口库
│   ├── include/
│   │   └── threat_source.h - C接口头文件
│   └── src/
│       └── threat_source.cpp - C接口实现
└── scripts/ - 工具脚本目录
    ├── pack_dll.sh - .NET库打包脚本
    ├── pack_native.sh - 原生库打包脚本
    └── generate_pdf.sh - PDF生成脚本

开发环境要求

  • .NET 8.0 或更高版本
  • Visual Studio 2022 或更高版本
  • DocFX用于生成文档
  • wkhtmltopdf用于生成 PDF

使用说明

C#/.NET 用户

  1. 通过 NuGet 包管理器安装:

    dotnet add package ThreatSource
    
  2. 或直接引用 DLL 文件:

    • 下载最新的 zip 包
    • 解压并引用 ThreatSource.dll

C++用户

有两种使用方式:

方式一:动态加载(推荐)

  1. 下载 ThreatSourceNative 包
  2. 将 bin 目录下的所有 DLL 复制到程序目录
  3. 将 include/threat_source.h 添加到项目
  4. 使用 C 风格接口调用库功能

方式二CLR 集成

如果需要使用 .NET 的完整功能:

  1. 配置项目属性:

    • C/C++ -> 常规 -> 公共语言运行时支持:/clr
    • 常规 -> 平台工具集Visual Studio 2022 (v143)
    • 常规 -> .NET目标框架net8.0
  2. 引用 ThreatSource.dll

示例代码

请参考 docs/examples 目录下的示例代码:

许可证

MIT License