# ETMS - Event and Task Management System 战场任务规划系统(BTPS)核心组件 —— 事件与任务管理软件。 ## 功能概述 - **事件接收与校验**:接收战场态势事件(JSON),校验完整性并确认ACK/NACK。 - **事件处理与存储**:清洗、格式化事件数据,写入事件表并管理状态流转。 - **事件列表展示**:分页查询、等级着色、排序等前端展示支持。 - **事件操作**:处理、拒绝等交互操作及即时反馈。 - **任务生成准备**:建立事件与任务的映射,构建任务生成上下文。 - **任务模板管理**:管理上级推送的任务模板集合,支持搜索、排序与详情查看。 - **知识库版本选择**:查询与选择用于模板生成的先验知识库版本。 - **人环/自主模式**:支持手动选择与自动推荐两种模板选择模式。 - **任务请求发送**:组装并发送任务生成请求至外部任务规划引擎。 ## 编译与运行 ### 前置条件 - CMake ≥ 3.14 - 支持 C++17 的编译器(GCC 8+, Clang 7+, MSVC 2019+) ### 编译步骤 ```bash # 创建构建目录 mkdir build && cd build # 配置 cmake .. # 编译 cmake --build . # 运行主程序 ./etms # 运行测试 ./etms_test ``` ## 工程结构 ``` ├── CMakeLists.txt # CMake 构建配置 ├── README.md # 本文件 ├── include/ │ └── app.hpp # 公开 API 头文件(数据模型与核心业务类) ├── src/ │ ├── main.cpp # 命令行入口 │ └── app.cpp # 核心业务实现 └── tests/ └── basic_test.cpp # 使用标准 assert 的单元测试 ``` ## 核心类说明 | 类名 | 职责 | |------|------| | `Event` | 战场事件数据模型,包含事件ID、类型、时间戳、等级、位置、描述、状态 | | `TaskTemplate` | 任务模板数据模型,包含模板ID、名称、类型、参数、子任务列表 | | `KBVersion` | 知识库版本数据模型,包含版本ID、描述、生效时间、状态 | | `EventManager` | 事件管理器,负责事件接收、校验、处理、存储与查询 | | `TaskGenerator` | 任务生成器,负责模板管理、知识库版本选择、事件映射与任务请求组装 |