task_plan_execute_2/README.md

84 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 任务规划软件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
```