# 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