Files
Inbox/项目交接文档:软件定义雷达前端模拟器 (SDR-FES).md
2025-12-11 07:24:36 +08:00

94 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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