当前版本 V6.1.18(文中 V5.x / V6.0.x 为历史版本,保留原样)
深入了解MRRC的每一个核心功能,释放业余无线电的无限可能
| 指标 | 传统方案 | MRRC优化后 |
|---|---|---|
| TX→RX切换 | 2-3秒 | <100ms |
| PTT可靠性 | 95% | 99%+ |
| 音频带宽 | 256kbps | 128kbps |
集成Warren Pratt's Digital Signal Processing库,这是OpenHPSDR项目的高性能DSP库,广泛应用于Thetis、piHPSDR等专业业余无线电软件。
基于谱减法的降噪算法,15-20dB降噪深度,语音保真度极高,专门针对SSB语音优化
消除脉冲干扰,有效抑制电器火花、雷电等突发噪声
自动消除单频干扰,适用于CW报音、载波干扰等场景
4种模式可选:LONG/SLOW/MED/FAST,适应不同信号环境
| 特性 | WDSP (NR2) | RNNoise |
|---|---|---|
| 降噪深度 | 15-20 dB | 10-15 dB |
| 语音保真度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| SSB优化 | ✅ 专门优化 | ❌ 通用语音 |
| 延迟 | < 20ms | 30-50ms |
通信协议:WebSocket + JSON
数据帧格式:FF CMD LEN DATA...
响应示例:ff050701031b1e000e01
→ SW=CL, IND=30(0.3uH), CAP=27(270pF)
V5.1 引入了完整的基于 Web Audio API 的发射音频处理链 — 为业余无线电打造的录音室级语音优化。
| 阶段 | 参数 | 数值 | 作用 |
|---|---|---|---|
| 4段均衡器 | 低切 / 中切 / 临场 / 高切 | 150Hz / -2dB@500Hz / +3dB@2.4kHz / 3kHz | 塑造 SSB 语音清晰度 |
| 动态压缩器 | 压缩比 / 启动 / 释放 | 3:1 / 5ms / 50ms | 稳定调制电平 |
| 噪声门 | 阈值 | -50dB | 不说话时静音背景噪声 |
| 预设 | 低频 (<100Hz) | 中频 (1500Hz) | 高频 (>2700Hz) | 适用场景 |
|---|---|---|---|---|
| 短波语音 | -20dB | +6dB | -20dB | 标准 SSB 通信 |
| 手机优化 | -15dB | +8dB | -24dB | 手机麦克风 |
| 弱信号 | -20dB | +10dB | -25dB | DX / 竞赛 |
V5.3 引入了实时网络带宽与延迟监控,让操作者全面了解连接质量。
三层 TX 保护架构,专门防止远程电台操控中最危险的故障模式:电台卡在发射状态。每层提供独立保护,并具有冗余回退路径。
手指滑出发射按钮 → 通过 touchmove/touchcancel 立即停止 PTT
页面进入后台或窗口失焦且 TX 激活中 → 强制释放 PTT,最多防止 30 秒意外发射
硬件看门狗:TX 状态激活超过 30 秒且无确认 → 强制释放
处理锁持有超过 3 秒 → 自动释放,防止静默停发失败导致 TX 卡死
| 机制 | 描述 |
|---|---|
| ACK 重试 | 发送 setPTT:false 后,等待最多 1 秒服务端确认。若未确认,最多重传 3 次 |
| 冗余音频通路回退 | 每次重试时,同时通过 TX 音频 WebSocket 发送 s: 作为冗余释放路径 — 即使控制 WebSocket 半开也能工作 |
| 连接断开触发 | 3 次 ACK 重试失败后,强制通过 onControlConnectionDead() 重建控制通道 |
| 机制 | 描述 |
|---|---|
| 120 秒 TOT 硬限制 | 超时定时器:PTTSafetyMonitor 线程强制执行绝对 120 秒最大发射时长 |
| 持续重试 | PTT 释放每 2 秒重试一次,直到硬件确认状态变化 |
| 故障广播 | pttError:release_failed 或 pttError:tot_timeout 广播给所有连接的客户端 |
按照安装指南,5分钟内即可搭建完整的远程电台控制系统
自 V6.1.0 起内建,V6.1.18 真机端到端验证通过。启动器启动时读取 SHA256 固定校验的清单,发现新版本就在后台下载(不打断收听),然后等你触发:
U 回车。随后:弹一次管理员确认(UAC)→ 静默安装 → 自动重启到新版本。新版启动时自己确认成功, 所以“到底成功没有”是事实而不是猜测;上一版保留在服务器上,【回退到上一版】同样一键。
控制台程序没有消息循环(安装器的 RestartManager 关不掉它)、已提权进程再用 runas
启动会在非交互窗口站永久卡住、控制台代码页是 GBK(日志里的 emoji 会杀死转发线程)、
threading.Lock 只在进程内有效(两个启动器实例会抢同一个临时文件)。
这十类陷阱都由真机验收抓出并修复。
出问题时用户不必看懂日志:菜单 → 🐞 遇到问题 一键收集维护者真正需要的东西——
启动器/服务端输出、state.json、安装器日志、音频设备表、性能采样、以及
脱敏后的配置(白名单;密钥替换;证书与用户数据库永不打包),
并附带自动体检摘要(IOLoop 看门狗、发射初始化耗时、音频健康、天调数据新鲜度)。
可一键上传给维护者,也可只保存到本地。
设备配置不再硬编码机型:rig_models.py 运行时枚举本机 hamlib 的
312 个机型,并同时写入协议栈真正读取的两个键
([HAMLIB] rig_model 与 [INSTANCE_SETTINGS] instance_rigctl_model),
与 rigctld 实报不一致时在界面上给出提示。
MRRC 是当作产品维护的:发版 → 升级 → 诊断 → AI 分诊 → 答复 形成闭环,最后一步你可以自己看。 完整的五段表(做法 / 判据 / 产物 / 细则链接)见 产品支持生命周期:
| 发版 | 单测 + 内联脚本语法守卫 + 产物级热修验收 3/3 三道闸门;站点维护
latest.json(升级)与 patch.json(热修);发布字节以服务器侧 SHA256 为准 |
| 升级 | 一键(页面按钮或按 U)→ 下载 + 校验 → 一次 UAC → 静默安装 → 自动重启;成功判据 = 新版自证 lastResult = ok |
| 诊断 | 🐞 一键生成脱敏诊断包(含自动体检摘要) |
| AI 分诊 | 定时任务取出新上报、生成摘要,交由项目 AI 按固定判定纪律分析(材料不足就写“需要补充信息”,绝不下没有证据的结论) |
| 答复 | 结论发布到 公开答复页(按编号/关键词可搜);确认是缺陷时:先给临时规避,再修代码——能热修的重启即生效 |