|
|
||
|---|---|---|
| include | ||
| src | ||
| tests | ||
| .gitignore | ||
| CMakeLists.txt | ||
| README.md | ||
| events.ndjson | ||
README.md
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+)
构建步骤
# 进入工程目录
cd C2SYS
# 创建构建目录
mkdir build && cd build
# 配置
cmake ..
# 编译主程序
cmake --build . --target C2SYS
# 编译测试程序
cmake --build . --target C2SYS_test
运行
# 运行主程序(演示完整闭环流程)
./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