SDR9700 v26.07.01
·
159 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
SDR9700 v26.07.01
This release substantially expands SDR9700 radio control, memory management, Spectrum Scope behavior, and connection reliability.
Highlights
- Radio-Backed Memories: The Memory Manager now synchronizes directly with the IC-9700 memory banks. It supports editing, copying, reordering, immediate and periodic synchronization, progress reporting, and CSV import/export.
- Spectrum Scope and Waterfall: The former Band Scope has been renamed Spectrum Scope and split into focused controllers and canvases. Click tuning, panning, scale handling, and rendering performance have been improved.
- Connection Lifecycle: Connection, stream negotiation, radio-state synchronization, memory synchronization, readiness, retry, and disconnect states are now tracked explicitly. Operator messages report the active stage and Radio Ready is not shown until initial synchronization completes.
- Audio Reliability: Transmit pacing, queue bounds, converter startup, packet timestamps, stereo downmixing, G.711 conversion, partial output writes, and silence handling have been tightened. The changes include comments explaining the latency and rollback considerations.
- Main Window Architecture: Radio routing, commands, memories, controls, meters, status, Spectrum Scope, waterfall, and RC-28 behavior are separated into dedicated controllers to reduce hot-path work and improve maintainability.
- Configuration and Utility Windows: Configuration backup, restore, and import workflows were consolidated. Utility windows now use consistent activation, focus, placement, and Escape-key behavior.
- Radio Controls and Metering: Adds and refines transmit metering, XFC, offset and tone controls, DTMF/PTT behavior, spectrum controls, and status reporting.
Reliability and Performance
- Validates UDP packet sources and handles bind, stream, token-renewal, and shutdown failures more defensively.
- Prevents stale queued backend work from accessing a completed radio session.
- Bounds audio and command queues so overload cannot grow memory use indefinitely.
- Coalesces high-frequency settings writes and removes avoidable scope/waterfall image copies.
- Makes memory import transactional: existing memories are restored if clearing or uploading fails.
- Adds stricter CSV validation and radio readback verification.
- Adds automated tests for audio conversion and memory CSV handling.
Upgrade Note
Memory channels are now owned by and synchronized with the IC-9700 instead of being stored in a separate SDR9700 memory JSON file. Use Memory Manager CSV export before making broad changes when an offline backup is needed.
Verification
- Clean Release build completed successfully.
- clang-format and pedantic cppcheck checks completed successfully.
- All automated tests passed.