--- 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 配置系统来实现参数的动态调节。"