Critical bug fixes:
- stopJamming() was returning early when jammingEnabled=false, leaving radios
in unknown state and breaking capture when jamming was off
- stopJamming() now idempotent: always stops noise timer (+ nulls pointer),
drives GDO0 low, puts transmitting radios to standby — safe to call anytime
- Add capPrevJamming flag saved before stopJamming() clears jammingEnabled;
used by stopCapture() and buffer-full handler to correctly restart jamming
after capture/replay sessions end
Code quality:
- capAnalyze() called twice per /api/capture/status request — now called once
- Remove unused JAM_NOISE_PATTERN_LEN define (leftover from LEDC era)
- Fix stale "LEDC 120 kHz square wave" comment in startJamming()
- Web UI: show rec_bits (final stored count) instead of capIdx in Bits cell;
progress bar shows 100% when in RECORDED/REPLAYING state
Made-with: Cursor