SPEC 项目规格说明书

MRRC 项目规格说明书

基于 Vibe-SDD 方法论的项目规格文档


1. 项目概述

1.1 项目名称

MRRC (Mobile Remote Radio Control) - 移动端业余电台远程控制系统

1.2 项目类型

1.3 一句话描述

通过现代Web浏览器实现业余电台的远程控制,让HAMRadio爱好者随时随地操控电台进行通联。

1.4 目标用户


2. 业务背景

2.1 业务问题

  1. 空间限制: 城市居民无法在住所架设大型天线
  2. 干扰问题: 城市电磁环境复杂,QRM干扰严重
  3. 移动需求: HAM需要随时随地响应通联
  4. 设备限制: 多台设备需要集中管理

2.2 业务价值

2.3 市场背景


3. 目标与成功标准

3.1 核心目标 (3-5个)

  1. 低延迟: TX/RX音频切换延迟 < 100ms
  2. 高可靠: PTT可靠性 ≥ 99%
  3. 专业降噪: WDSP NR2降噪 15-20dB
  4. 移动优先: 完善的iOS/Android支持
  5. 多实例: 单服务器支持多电台独立控制

3.2 成功标准

标准 指标 目标值 测量方式
性能 TX/RX切换延迟 < 100ms 端到端测试
性能 PTT响应时间 < 50ms 协议分析
性能 音频延迟 < 100ms 端到端测试
可用性 系统可用性 ≥ 99.5% 月度统计
可用性 PTT可靠性 ≥ 99% 长期测试
功能 降噪深度 ≥ 15dB 频谱分析
用户 界面满意度 ≥ 4.5/5 用户反馈
兼容 移动端支持 100% 自动化测试

4. 项目范围

4.1 包含范围

4.2 不包含范围

4.3 MVP定义

  1. 基础Web界面 (频率/模式/PTT控制)
  2. 实时音频TX/RX
  3. WDSP降噪
  4. ATR-1000功率显示

5. 技术约束

5.1 技术栈偏好

层级 技术选择 理由
前端 HTML5/CSS3/Vanilla JS 轻量,浏览器兼容性好
后端 Python 3.12+ / Tornado 原生WebSocket支持
音频 PyAudio 跨平台音频I/O
DSP WDSP 专为SSB优化
控制 Hamlib/rigctld 电台控制标准
部署 macOS/Linux 服务器平台

5.2 架构约束

5.3 组件规范

5.3.1 前端组件

组件 文件 技术 职责
主界面 mobile_modern.html HTML5 移动端UI
控制逻辑 controls.js Vanilla JS 音频处理、WebSocket
PTT按钮 tx_button_optimized.js JS PTT事件处理、预热帧
音频播放 rx_worklet_processor.js AudioWorklet 低延迟播放
均衡器 controls.js Web Audio API TX三段EQ

5.3.2 后端组件

组件 文件 技术 职责
Web服务器 MRRC Tornado HTTP/WebSocket
音频处理 audio_interface.py PyAudio 采集/播放/分发
DSP处理 wdsp_wrapper.py ctypes/WDSP NR2/NB/ANF/AGC
电台控制 hamlib_wrapper.py socket rigctld通信
天调代理 atr1000_proxy.py WebSocket ATR-1000桥接
天调存储 atr1000_tuner.py JSON 参数持久化

5.4 接口规范

5.4.1 WebSocket接口

端点 协议 描述
/WSMRRC WSS 主控制+音频通道
/WSATR1000 WSS ATR-1000数据通道

5.4.2 控制命令格式

{"action": "setFreq", "data": "7074000"}
{"action": "setMode", "data": "USB"}
{"action": "ptt", "data": true}
{"action": "getFreq"}

5.4.3 音频数据格式

参数
采样率 16kHz (传输) / 48kHz (处理)
格式 Int16 PCM
帧大小 320 samples (20ms)
声道 单声道

5.5 部署约束

5.5.1 多实例配置

参数 radio1 radio2
Web端口 8891 8892
rigctld端口 4531 4532
Unix Socket /tmp/mrrc_radio1.sock /tmp/mrrc_radio2.sock
天调JSON atr1000_tuner.json atr1000_tuner_radio2.json

5.6 预算与时间


6. 风险与假设

6.1 主要风险

风险 影响 缓解措施
音频延迟过高 AudioWorklet优化,缓冲区调整
PTT可靠性不足 预热帧机制,确认重试
WDSP集成困难 备选RNNoise方案
移动端兼容性 多浏览器测试
多实例配置复杂 标准化配置模板

6.2 关键假设


7. 利益相关者

7.1 核心团队

角色 名字 职责
项目负责 MRRC Team 整体决策
开发人员 社区贡献 代码实现
测试人员 社区成员 测试验证

7.2 外部干系人

角色 期望
HAM社区 稳定可靠的远程控制
开源社区 代码可读性,文档完整性

8. 里程碑

里程碑 计划日期 交付物
M1: 基础TX/RX 2024-10 音频流通
M2: 移动端优化 2024-12 mobile_modern
M3: DSP集成 2026-03 WDSP NR2
M4: V4.9发布 2026-03-14 语音助手/CW/多实例
M5: 持续迭代 进行中 功能增强

附录: 功能特性清单

特性 优先级 状态
远程频率控制 P0 ✅ 已完成
远程模式切换 P0 ✅ 已完成
PTT控制 P0 ✅ 已完成
TX音频流 P0 ✅ 已完成
RX音频流 P0 ✅ 已完成
WDSP降噪 P1 ✅ 已完成
ATR-1000集成 P1 ✅ 已完成
语音助手 P2 ✅ 已完成
CW解码 P2 ✅ 已完成
多实例支持 P2 ✅ 已完成
PWA离线支持 P3 ✅ 已完成

文档信息 - 版本: 1.0 - 创建日期: 2026-03-15 - 最后更新: 2026-03-15 - 作者: MRRC Team