SDD V1.6 · 2026-07-18

MRRC FT-710
Software Design Description

Canonical design record for architecture, interfaces, operational model, and runtime evolution of the FT-710 web control system.

SDD Scope

IBM TeamSD aligned, 15 chapters, implementation-grounded content.

AttributeValue
Document IDSDD-MRRC-FT710-2026-001
VersionV1.6
Baseline Date2026-07-18
RuntimePython 3.12+, FastAPI, Uvicorn, PyAudio, NumPy
FrontendHTML5, CSS3, vanilla JavaScript, Web Audio API
Core Interfaces4 WebSockets + Serial CAT + FT4222 SPI + USB Audio

What Changed In V1.6

RX Zero-Audio Watchdog

Server detects bit-exact-zero RX audio (≥20s with squelch open) and raises a "无声" status-bar warning plus a log entry — a wedged radio USB codec can no longer masquerade as healthy behind a CBR bitrate indicator.

Auth-Failure Redirect

Stale-token WebSocket handshakes fail with HTTP 403 (browsers report 1006, never 4001). The control socket now verifies via /api/auth/check and redirects to /login instead of retrying a dead token forever.

Dead-Carrier Fix

If the TX-audio owner socket drops while the radio is keyed, the server now forces TX0 — closing the unmodulated-carrier window that previously waited for the control socket to die.

TX Audio Truth Sync

Docs aligned with runtime: TX Opus is 64kbps CBR complexity=5, and AD-011 now records the real topology — 48kHz codec domain bridged to the FT-710's native 44.1kHz USB audio (960↔882 frame-aligned).

15 SDD Chapters

AD-001 ... AD-015

AD-001 FastAPI/Uvicorn AD-002 Direct CAT AD-003 Dirty State Broadcast AD-004 Tagged Opus/PCM Audio AD-005 scope_pipe Isolation AD-006 Dual-Mode Spectrum AD-007 PTT Safety Flow AD-008 Audio Auto-Detection AD-009 7-Task Polling AD-010 JSON Memory Channels AD-011 48kHz Codec + 44.1kHz Bridge AD-012 Active-VFO Tracking AD-013 Meter Calibration AD-014 CAT Errata Handling AD-015 Priority CAT Preemption