4.9 KiB
4.9 KiB
tags, title, date created, date modified
| tags | title | date created | date modified |
|---|---|---|---|
| 项目交接文档:软件定义雷达前端模拟器 (SDR-FES) | 星期六, 十一月 29日 2025, 10:14:41 晚上 | 星期四, 十二月 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)
为了确保新会话能无缝接手代码开发,请提供以下文件内容或目录结构:
- 工程配置文件:
CMakeLists.txt(Root)common/CMakeLists.txtsimulator/CMakeLists.txttools/CMakeLists.txtDockerfile&docker-compose.yml
- 核心源码:
common/include/protocol.h(v2.1 协议定义)common/include/chaos.h(故障注入引擎)common/include/utils.h(计时与绑核工具)simulator/sender.cpp(当前的发送端实现)tools/receiver.cpp(当前的接收验证端实现)
- 参考文档 (可选):
[非密]前端感知软件数据表V0.1.docx(原始协议参考)软件数据表评估报告生成.pdf(协议升级依据)
5. 下一步工作计划 (Next Steps - Simulator Focus)
在接下来的对话中,我们将仅聚焦于模拟器本身的完善与增强:
- Phase 4 收尾:
- 检查 Docker 下
receiver的日志,确认故障注入(DACS-2/3)的效果是否符合预期,完成鲁棒性验证闭环。
- 检查 Docker 下
- Phase 5:配置系统重构 (Configuration System):
- 引入
yaml-cpp。 - 实现全动态配置:通过 YAML 文件动态调节 PRF(速率)、目标 IP、波位参数、故障概率,无需重新编译。
- 引入
- Phase 6:数据回放功能 (Data Replay - 后期):
- 开发数据库适配层。
- 实现从实际雷达录制的数据库文件(如 HDF5/PCAP/Bin)中读取数据,并严格按照指定的时间戳间隔(Rate Control)发送,用于算法的高级回放测试。
- 架构重构 (Modernization):
- 应用设计模式(如策略模式 Strategy Pattern 用于切换数据源:
SyntheticSourcevsReplaySource)。 - 确保代码具备极高的可读性与可扩展性。
- 应用设计模式(如策略模式 Strategy Pattern 用于切换数据源:
提示词 (Prompt) 建议:
" 我是之前的用户。我们正在开发一个高可移植的 Docker 化雷达前端模拟器 (MockDACS)。目前已完成 v2.1 协议的基础实现和故障注入功能。请阅读我上传的 ' 交接文档 ' 和源码。接下来的任务是验证故障注入效果,并引入 YAML 配置系统来实现参数的动态调节。"