创建仓库
This commit is contained in:
93
项目交接文档:软件定义雷达前端模拟器 (SDR-FES).md
Normal file
93
项目交接文档:软件定义雷达前端模拟器 (SDR-FES).md
Normal file
@@ -0,0 +1,93 @@
|
||||
---
|
||||
tags:
|
||||
title: 项目交接文档:软件定义雷达前端模拟器 (SDR-FES)
|
||||
date created: 星期六, 十一月 29日 2025, 10:14:41 晚上
|
||||
date modified: 星期四, 十二月 4日 2025, 8:30:07 晚上
|
||||
---
|
||||
|
||||
这份文档经过了严格修订,完全聚焦于 **" 雷达前端模拟器 (MockDACS)"** 这一工具本身的构建与演进。它强调了工具的**通用性、可移植性**以及**现代软件工程标准**。
|
||||
|
||||
请保存此文档,在新对话开始时直接发送。
|
||||
|
||||
---
|
||||
|
||||
# 项目交接文档:软件定义雷达前端模拟器 (SDR-FES)
|
||||
|
||||
**Project Handover: Software-Defined Radar Front-End Simulator (MockDACS)**
|
||||
|
||||
## 1. 项目目标 (Project Goal)
|
||||
|
||||
构建一个**高可移植、高性能、容器化**的雷达前端模拟工具。
|
||||
|
||||
该工具不依赖特定的硬件架构(如飞腾/天数),旨在通过 Docker 容器在任何支持 Linux 的环境(x86/ARM)中运行。它作为标准的**测试信号发生器**,用于向后端信号处理系统提供符合 **FES-SPS v2.1 协议** 的 10Gbps 线速数据流,验证后端系统的协议栈鲁棒性与吞吐能力。
|
||||
|
||||
## 2. 当前进度状态 (Current Status)
|
||||
|
||||
- **工程阶段**:
|
||||
- **Phase 1-3 (完成)**:已实现基础 UDP 收发、多线程并发、CPU 亲和性绑定、自旋锁高精度控速。
|
||||
- **Phase 4 (进行中)**:已集成故障注入引擎 (`ChaosEngine`),正在验证 Docker 环境下的故障注入(丢包/误码/乱序)效果。
|
||||
- **部署状态**:已完成 Docker 化封装。验证了在容器内通过 `cpus: 2.0` 限制下,依然能跑满 2000Hz PRF,且多站多线程逻辑正常。
|
||||
|
||||
## 3. 技术基线与需求快照 (Technical Baseline & Requirements)
|
||||
|
||||
### A. 运行环境 (Environment - Portable)
|
||||
|
||||
- **核心理念**:**Docker First**。无论是开发本机的 WSL/Mac,还是部署端的服务器,均通过容器抹平差异。
|
||||
- **架构支持**:`linux/amd64` (x86_64) & `linux/arm64` (aarch64)。
|
||||
- **网络依赖**:支持 Host 模式或 Bridge 模式下的 UDP 通信,依赖 **Jumbo Frame (MTU 9000)** 以实现最高性能。
|
||||
|
||||
### B. 通信协议 (v2.1 Implementation)
|
||||
|
||||
- **帧结构**:`Magic="RADR"` + Big-Endian Header + Little-Endian Payload + **CRC32c 校验**。
|
||||
- **时序**:**TAI 时间戳** + 16-bit 对齐载荷。
|
||||
- **策略**:数据流 Fire-and-Forget,控制流 K-Redundancy。
|
||||
|
||||
### C. 模拟器架构 (Architecture)
|
||||
|
||||
- **核心机制**:多线程 (Multi-thread) + 忙等待 (Busy Wait) + 零拷贝 (Zero-Copy)。
|
||||
- **设计原则 (新增)**:
|
||||
- **现代化**:强制使用 **C++17/20** 标准。
|
||||
- **模块化**:发送逻辑、协议封装、物理仿真、配置管理必须解耦。
|
||||
- **配置驱动**:一切可变参数(IP/端口/速率/故障率)严禁硬编码。
|
||||
|
||||
## 4. 新对话启动所需资料 (Materials Required)
|
||||
|
||||
为了确保新会话能无缝接手代码开发,请提供以下**文件内容**或**目录结构**:
|
||||
|
||||
1. **工程配置文件**:
|
||||
- `CMakeLists.txt` (Root)
|
||||
- `common/CMakeLists.txt`
|
||||
- `simulator/CMakeLists.txt`
|
||||
- `tools/CMakeLists.txt`
|
||||
- `Dockerfile` & `docker-compose.yml`
|
||||
2. **核心源码**:
|
||||
- `common/include/protocol.h` (v2.1 协议定义)
|
||||
- `common/include/chaos.h` (故障注入引擎)
|
||||
- `common/include/utils.h` (计时与绑核工具)
|
||||
- `simulator/sender.cpp` (当前的发送端实现)
|
||||
- `tools/receiver.cpp` (当前的接收验证端实现)
|
||||
3. **参考文档 (可选)**:
|
||||
- `[非密]前端感知软件数据表V0.1.docx` (原始协议参考)
|
||||
- `软件数据表评估报告生成.pdf` (协议升级依据)
|
||||
|
||||
## 5. 下一步工作计划 (Next Steps - Simulator Focus)
|
||||
|
||||
在接下来的对话中,我们将**仅聚焦于模拟器本身的完善与增强**:
|
||||
|
||||
1. **Phase 4 收尾**:
|
||||
- 检查 Docker 下 `receiver` 的日志,确认故障注入(DACS-2/3)的效果是否符合预期,完成鲁棒性验证闭环。
|
||||
2. **Phase 5:配置系统重构 (Configuration System)**:
|
||||
- 引入 `yaml-cpp`。
|
||||
- 实现**全动态配置**:通过 YAML 文件动态调节 PRF(速率)、目标 IP、波位参数、故障概率,无需重新编译。
|
||||
3. **Phase 6:数据回放功能 (Data Replay - 后期)**:
|
||||
- 开发**数据库适配层**。
|
||||
- 实现从实际雷达录制的数据库文件(如 HDF5/PCAP/Bin)中读取数据,并严格按照指定的时间戳间隔(Rate Control)发送,用于算法的高级回放测试。
|
||||
4. **架构重构 (Modernization)**:
|
||||
- 应用**设计模式**(如策略模式 Strategy Pattern 用于切换数据源:`SyntheticSource` vs `ReplaySource`)。
|
||||
- 确保代码具备极高的可读性与可扩展性。
|
||||
|
||||
---
|
||||
|
||||
**提示词 (Prompt) 建议:**
|
||||
|
||||
> " 我是之前的用户。我们正在开发一个高可移植的 Docker 化雷达前端模拟器 (MockDACS)。目前已完成 v2.1 协议的基础实现和故障注入功能。请阅读我上传的 ' 交接文档 ' 和源码。接下来的任务是验证故障注入效果,并引入 YAML 配置系统来实现参数的动态调节。"
|
||||
Reference in New Issue
Block a user