2026-07-09 02:02:27 +00:00
|
|
|
|
# 数据处理与交互平台(测试系统)
|
2026-07-08 07:38:14 +00:00
|
|
|
|
|
2026-07-09 02:02:27 +00:00
|
|
|
|
## 概述
|
|
|
|
|
|
|
|
|
|
|
|
本工程是一个模拟的数据处理与交互平台(测试系统),采用管道流式处理架构。
|
|
|
|
|
|
核心功能包括:
|
|
|
|
|
|
|
|
|
|
|
|
- **CSU-01 (DataReceiver)**:模拟 TCP 服务端,按自定义协议(消息头 + 消息体)接收外部数据源的数据。
|
|
|
|
|
|
- **CSU-02 (DataProcessor)**:从队列获取原始数据,进行校验(非空、长度、字符合法性)和格式转换。
|
|
|
|
|
|
- **CSU-03 (DataStorage)**:将处理后的数据持久化存储(当前版本使用内存向量模拟数据库写入)。
|
|
|
|
|
|
|
|
|
|
|
|
三个模块通过线程安全队列(`ThreadSafeQueue`)解耦,形成数据流水线。
|
|
|
|
|
|
|
|
|
|
|
|
## 工程结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
.
|
|
|
|
|
|
├── CMakeLists.txt # CMake 构建配置
|
|
|
|
|
|
├── README.md # 本文件
|
|
|
|
|
|
├── include/
|
|
|
|
|
|
│ └── app.hpp # 公共头文件(类声明、数据结构)
|
|
|
|
|
|
├── src/
|
|
|
|
|
|
│ ├── main.cpp # 命令行入口(完整流水线演示)
|
|
|
|
|
|
│ └── app.cpp # 模块实现
|
|
|
|
|
|
└── tests/
|
|
|
|
|
|
└── basic_test.cpp # 单元测试与集成测试
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 编译与运行
|
|
|
|
|
|
|
|
|
|
|
|
### 前置条件
|
|
|
|
|
|
|
|
|
|
|
|
- CMake >= 3.14
|
|
|
|
|
|
- 支持 C++17 的编译器(GCC 8+, Clang 7+, MSVC 2019+)
|
|
|
|
|
|
|
|
|
|
|
|
### 编译步骤
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd codegen-runs/codegen_fa54ba0e8c734a7683962ff923b15d4b
|
|
|
|
|
|
mkdir -p build && cd build
|
|
|
|
|
|
cmake ..
|
|
|
|
|
|
cmake --build .
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 运行主程序
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./dataflow_main
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 运行测试
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./basic_test
|
|
|
|
|
|
# 或
|
|
|
|
|
|
ctest
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 模块映射
|
|
|
|
|
|
|
|
|
|
|
|
| 文档中的软件单元 | 本工程类名 | 职责 |
|
|
|
|
|
|
|:---|:---|:---|
|
|
|
|
|
|
| CSU-01 | `DataReceiver` | 数据接收(模拟 TCP 服务端、协议拆包) |
|
|
|
|
|
|
| CSU-02 | `DataProcessor` | 数据处理(校验、格式转换) |
|
|
|
|
|
|
| CSU-03 | `DataStorage` | 数据存储(持久化到内存数据库) |
|
|
|
|
|
|
| 内部接口 IF_CSU01_02 | `ThreadSafeQueue<std::string>` | 原始数据传递队列 |
|
|
|
|
|
|
| 内部接口 CSU-02→CSU-03 | `ThreadSafeQueue<std::string>` | 处理后数据传递队列 |
|
|
|
|
|
|
|
|
|
|
|
|
## 需求追踪
|
|
|
|
|
|
|
|
|
|
|
|
| 需求标识 | 需求名称 | 对应函数 |
|
|
|
|
|
|
|:---|:---|:---|
|
|
|
|
|
|
| SRS-测试_F-001 | 数据接收功能 | `DataReceiver::start()`, `DataReceiver::receiveLoop()`, `DataReceiver::parsePacket()`, `DataProcessor::start()`, `DataProcessor::processLoop()`, `DataProcessor::validateAndTransform()`, `DataStorage::start()`, `DataStorage::storageLoop()`, `DataStorage::storeToDatabase()`, `main()` |
|