Skip to content

SpectrumWidget: blank waterfall rows for 400ms after TX→RX (#2117)#2182

Merged
ten9876 merged 1 commit intomainfrom
aether/post-tx-waterfall-blank
Apr 30, 2026
Merged

SpectrumWidget: blank waterfall rows for 400ms after TX→RX (#2117)#2182
ten9876 merged 1 commit intomainfrom
aether/post-tx-waterfall-blank

Conversation

@ten9876
Copy link
Copy Markdown
Owner

@ten9876 ten9876 commented Apr 30, 2026

Summary

Adds a 400 ms blanking window after TX→RX so the receiver AGC's settling transient doesn't paint a bright stripe across the waterfall (issue #2117).

Provenance

Carve-out of PR #2118 (authored by AetherClaude bot, `maintainerCanModify: false`). The bot's PR conflicted on rebase because it also touched the `setTransmitting(false)` block that PR #2171 landed earlier today. Both fixes belong in that block:

This branch re-applies just the #2117 logic on top of current main, preserving both fixes.

Implementation

  • New private member `qint64 m_txEndMs{0}` in `SpectrumWidget`
  • `setTransmitting(false)` records `m_txEndMs = QDateTime::currentMSecsSinceEpoch()` and zeroes the blanker ring count
  • Both push paths (`updateSpectrum` for FFT-derived rows, `updateWaterfallRow` for native tiles) check `now - m_txEndMs < 400` and skip; after the window passes, the timestamp is cleared so subsequent rows render normally

Test plan

  • Build clean
  • CI green
  • Visual: TX a few seconds of carrier on FLEX-8600 / Windows; observe no transient bright stripe at TX→RX

🤖 Generated with Claude Code

Issue #2117: after TX a bright transient stripe appears in the
waterfall as the receiver AGC settles.  Visible on FLEX-8600 +
Windows 11 in particular.

Adds an `m_txEndMs` timestamp set on TX→RX in setTransmitting(false).
Both the FFT-derived (updateSpectrum) and native-tile (updateWaterfallRow)
push paths check whether < 400 ms has elapsed since that transition,
and skip the row if so.  After 400 ms passes the timestamp is cleared
so subsequent rows fall through normally.

Also resets m_wfBlankerRingCount = 0 so the blanker baseline doesn't
accumulate stale TX-time samples.

Carved out of PR #2118 (bot, no maintainerCanModify) which conflicted
with #2171's already-landed changes to the same setTransmitting(false)
block.  This commit re-applies cleanly on top of #2171, keeping both
fixes (the FFT-fallback flag reset AND the post-TX blanking).

Fixes #2117.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@ten9876 ten9876 requested a review from jensenpat as a code owner April 30, 2026 04:18
@ten9876 ten9876 merged commit 5ad6d38 into main Apr 30, 2026
4 checks passed
@ten9876 ten9876 deleted the aether/post-tx-waterfall-blank branch April 30, 2026 04:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant