Several modules independently reimplemented the sdr_type string-to-enum
mapping and bandwidth caps instead of using the canonical mapping in
utils/sdr/detection.py, so they were never updated when USRP, BladeRF,
and HydraSDR support was added:
- routes/listening_post/audio.py: the receiver audio-start endpoint
hard-rejected these types with a 400, even though the underlying
SDRFactory command builder already supports them.
- routes/meteor_websocket.py and routes/waterfall_websocket.py: unknown
sdr_type strings silently fell back to RTL_SDR, which could build a
command against the wrong hardware. Added the missing mapping entries
and matching MAX_BANDWIDTH caps for the three new types.
- utils/ground_station/iq_bus.py: same silent-fallback mapping gap in
IQ capture command building.
First-time run of ruff-format via pre-commit hook normalises quote
style, trailing commas, and whitespace across 188 Python files.
No logic changes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Both silently fell back to static bundled TLEs after the removal of
routes.satellite._tle_cache.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>