2026-05-01 05:54:47 +00:00
|
|
|
# C2SYS — 联合作战指挥环境任务自主规划软件系统
|
|
|
|
|
|
|
|
|
|
## 概述
|
|
|
|
|
|
|
|
|
|
**C2SYS** (Command & Control System) 是一套面向联合作战指挥环境的任务自主规划软件系统,支持集中式与分布式作战方案的可视化管理、事件驱动的任务生成、双模式(人在回路/自主执行)运行适配及全链路状态监控。
|
|
|
|
|
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
|
|
|
|
| 编号 | 功能 | 描述 |
|
|
|
|
|
|------|------|------|
|
|
|
|
|
| F-001 | 集中式方案列表与详情管理 | 展示集中式任务方案列表,支持自定义排序与详情查看 |
|
|
|
|
|
| F-002 | 集中式方案对比与重构 | 多方案资源消耗、时间窗口、成功率对比分析 |
|
|
|
|
|
| F-003 | 分布式方案管理可视化 | 分布式方案展示、排序、对比与重构 |
|
|
|
|
|
| F-004 | 方案分发与响应监控 | 方案下发至执行单元,采集节点回执,支持重试机制 |
|
|
|
|
|
| F-005 | 任务执行状态监控 | 任务执行进度监控,异常高亮告警 |
|
|
|
|
|
| F-006 | 战场事件接收与处理 | 接收外部情报源原始事件流,转化为标准化内部事件 |
|
|
|
|
|
| F-007 | 事件列表管理与交互 | 待办事件展示、排序、处理与日志记录 |
|
|
|
|
|
| F-008 | 作战任务生成关联 | 从事件到任务的联动生成与双向关联 |
|
|
|
|
|
| F-009 | 任务模板知识库管理 | 模板版本管理、参数调优、快照保存与回滚 |
|
|
|
|
|
| F-010 | 任务模板管理与模式适配 | 人在回路/自主执行双模式模板选择 |
|
|
|
|
|
|
|
|
|
|
## 工程结构
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
.
|
|
|
|
|
├── CMakeLists.txt # CMake 构建配置
|
|
|
|
|
├── README.md # 本文件
|
|
|
|
|
├── include/
|
|
|
|
|
│ ├── app.hpp # 核心业务逻辑接口
|
|
|
|
|
│ └── config.hpp # 数据实体与系统配置定义
|
|
|
|
|
├── src/
|
|
|
|
|
│ ├── main.cpp # 命令行入口与流程演示
|
|
|
|
|
│ └── app.cpp # 核心业务逻辑实现 (PIMPL)
|
|
|
|
|
└── tests/
|
|
|
|
|
└── basic_test.cpp # 基础单元测试 (标准 assert)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 数据实体
|
|
|
|
|
|
|
|
|
|
核心数据实体定义在 `include/config.hpp` 中,包括:
|
|
|
|
|
|
|
|
|
|
- **PlanData** — 作战方案(集中式/分布式)
|
|
|
|
|
- **EventRaw** — 原始战场事件
|
|
|
|
|
- **StandardEvent** — 标准化内部事件
|
|
|
|
|
- **TaskTemplate** — 任务模板
|
|
|
|
|
- **ExecutionStatus** — 执行状态遥测
|
|
|
|
|
- **DistributionAck** — 分发回执
|
|
|
|
|
- **OperationLog** — 操作审计日志
|
|
|
|
|
- **ConfigSnapshot** — 配置快照
|
|
|
|
|
- **ModeStateCache** — 模式状态缓存
|
|
|
|
|
|
|
|
|
|
## 构建与运行
|
|
|
|
|
|
|
|
|
|
### 前提条件
|
|
|
|
|
|
|
|
|
|
- CMake ≥ 3.16
|
|
|
|
|
- 支持 C++17 的编译器 (GCC 8+, Clang 7+, MSVC 2019+)
|
|
|
|
|
|
|
|
|
|
### 构建步骤
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 进入工程目录
|
|
|
|
|
cd C2SYS
|
|
|
|
|
|
|
|
|
|
# 创建构建目录
|
|
|
|
|
mkdir build && cd build
|
|
|
|
|
|
|
|
|
|
# 配置
|
|
|
|
|
cmake ..
|
|
|
|
|
|
|
|
|
|
# 编译主程序
|
|
|
|
|
cmake --build . --target C2SYS
|
|
|
|
|
|
|
|
|
|
# 编译测试程序
|
|
|
|
|
cmake --build . --target C2SYS_test
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 运行
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 运行主程序(演示完整闭环流程)
|
|
|
|
|
./C2SYS
|
|
|
|
|
|
|
|
|
|
# 运行单元测试
|
|
|
|
|
./C2SYS_test
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 设计原则
|
|
|
|
|
|
|
|
|
|
- **模块化分层设计**:数据层 (config.hpp) → 业务逻辑层 (app.hpp/cpp) → 交互层 (main.cpp)
|
|
|
|
|
- **事件驱动架构**:模块间通过消息队列解耦
|
|
|
|
|
- **PIMPL 模式**:隐藏实现细节,保证 ABI 稳定性
|
|
|
|
|
- **双模式支持**:人在回路 / 自主执行,模式切换保证上下文一致
|
|
|
|
|
- **配置化适应**:网络参数、刷新频率等可通过配置文件调整
|
|
|
|
|
|
|
|
|
|
## 配置说明
|
|
|
|
|
|
|
|
|
|
支持通过 key=value 格式的配置文件调整系统参数:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# config.txt 示例
|
|
|
|
|
refreshIntervalMs=100
|
|
|
|
|
websocketPort=9090
|
|
|
|
|
maxRetryCount=5
|
|
|
|
|
ackTimeoutMs=3000
|
|
|
|
|
logLevel=2
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 版权
|
|
|
|
|
|
|
|
|
|
© 2025 C2SYS Project
|