# 任务规划软件(TPS)— C++ 核心处理单元 ## 概述 任务规划软件(Task Planning System, TPS)是战场任务规划系统的核心处理单元,实现从事件感知到任务生成、计划管理、方案分发与状态监控的闭环管理。本工程实现了 TPS 的核心数据模型与业务逻辑。 ## 工程结构 ``` . ├── CMakeLists.txt # CMake 构建配置 ├── README.md # 本文件 ├── include/ │ ├── app.hpp # 核心数据结构(数据库表模型) │ ├── event_handler.hpp # 事件接收与处理模块 │ ├── template_manager.hpp # 模板管理模块 │ ├── plan_manager.hpp # 计划管理模块 │ └── distribution_monitor.hpp # 方案分发与状态监控模块 ├── src/ │ ├── main.cpp # 命令行入口(演示流程) │ ├── event_handler.cpp # 事件处理实现 │ ├── template_manager.cpp # 模板管理实现 │ ├── plan_manager.cpp # 计划管理实现 │ └── distribution_monitor.cpp # 分发监控实现 └── tests/ └── basic_test.cpp # 单元测试(标准库 assert) ``` ## 需求覆盖 | CSCI需求标识 | 需求名称 | 模块/函数 | |--------------|----------|-----------| | SRS-F-01-001 | 接收临机事件和规划事件 | `EventHandler::receiveEvent()` | | SRS-F-01-002 | 事件数据过滤转化封装 | `EventHandler::processEvent()` | | SRS-F-02-001 | 接收待处理事件列表 | `EventHandler::getPendingEvents()` | | SRS-F-02-004 | 生成作战任务并送交处理 | `PlanManager::createPlan()` | | SRS-F-03-001 | 任务模板先验知识库版本选择 | `TemplateManager::getConfig()` | | SRS-F-03-002 | 先验知识库配置调整 | `TemplateManager::updateConfig()` | | SRS-F-04-001 | 接收推送的任务模板集合数据 | `TemplateManager::receiveTemplates()` | | SRS-F-04-005 | 人环模式下用户选择任务模板 | `TemplateManager::selectTemplate()` | | SRS-F-04-006 | 自主执行模式下任务模板自动选择提示 | `TemplateManager::autoSelectTemplate()` | | SRS-F-05-001 | 集中式计划管理与偏好排序 | `PlanManager::sortPlans()` | | SRS-F-05-002 | 计划详情可视化与HITL通知 | `PlanManager::notifyHITL()` | | SRS-F-05-003 | 计划重配置操作与可视化 | `PlanManager::reconfigurePlan()` | | SRS-F-05-004 | 分布式计划管理与算法处理 | `PlanManager::mergeAndCheckConsistency()` | | SRS-F-06-001 | 方案驱动分发与状态响应 | `DistributionMonitor::distributePlan()` / `receiveAck()` | | SRS-F-06-002 | 驱动状态监控与异常信息展示 | `DistributionMonitor::receiveTelemetry()` / `triggerAlarm()` | ## 编译与运行 ### 前置条件 - CMake ≥ 3.14 - C++17 兼容的编译器(GCC 8+, Clang 10+, MSVC 2019+) ### 构建 ```bash cd codegen-runs/codegen_af1ed1d727e14f1cb7e99c1a9f65e3f6 mkdir build && cd build cmake .. cmake --build . ``` ### 运行主程序 ```bash # Linux/macOS ./tps # Windows tps.exe ``` ### 运行单元测试 ```bash # Linux/macOS ./tps_test # Windows tps_test.exe ```