Skip to content

Fix FlexControl tuning jitter caused by optimistic/confirmed frequency race (#1524)#1527

Merged
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-1524
Apr 18, 2026
Merged

Fix FlexControl tuning jitter caused by optimistic/confirmed frequency race (#1524)#1527
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-1524

Conversation

@aethersdr-agent

Copy link
Copy Markdown
Contributor

Summary

Fixes #1524

What was changed

Fix FlexControl tuning jitter caused by optimistic/confirmed frequency race (#1524)

Files modified

  • src/gui/MainWindow.cpp
 src/gui/MainWindow.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Generated by AetherClaude (automated agent for AetherSDR)

…y race (#1524)

Two fixes to eliminate VFO line flicker during rapid FlexControl tuning:

1. Guard the flex target reset so it doesn't snap back to the stale
   radio-confirmed frequency while the coalesce timer is still active.

2. Skip overlay frequency updates from radio confirmations while encoder
   tuning is in progress — the optimistic VFO position is already ahead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@aethersdr-agent aethersdr-agent Bot mentioned this pull request Apr 16, 2026
2 tasks
NF0T added a commit to NF0T/AetherSDR that referenced this pull request Apr 17, 2026
NF0T added a commit to NF0T/AetherSDR that referenced this pull request Apr 17, 2026
…oalesce timer check

m_flexCoalesceTimer and m_hidCoalesceTimer are conditionally declared under
HAVE_SERIALPORT and HAVE_HIDAPI respectively. The merged code referenced both
unconditionally, causing a compile error on any build without HIDAPI installed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@NF0T

NF0T commented Apr 17, 2026

Copy link
Copy Markdown
Collaborator

While integrating this PR into a local staging branch for testing, we hit a compile error on any build where HIDAPI is not installed:

error: 'm_flexCoalesceTimer' was not declared in this scope
error: 'm_hidCoalesceTimer' was not declared in this scope

Both members are declared under conditional guards in MainWindow.h:

#ifdef HAVE_SERIALPORT
    QTimer m_flexCoalesceTimer;
#endif
#ifdef HAVE_HIDAPI
    QTimer m_hidCoalesceTimer;
#endif

But the new usage at the merge site references both unconditionally:

bool activeTuning = m_flexCoalesceTimer.isActive() || m_hidCoalesceTimer.isActive();

This will fail to compile on any platform where HIDAPI is absent (e.g. a Windows build without setup-hidapi.ps1 run, or a Linux build without libhidapi-dev). The fix is straightforward:

bool activeTuning = false;
#ifdef HAVE_SERIALPORT
activeTuning = activeTuning || m_flexCoalesceTimer.isActive();
#endif
#ifdef HAVE_HIDAPI
activeTuning = activeTuning || m_hidCoalesceTimer.isActive();
#endif

We've applied this locally in our staging branch. Flagging for the PR author to patch before merge.

@ten9876 ten9876 marked this pull request as ready for review April 18, 2026 06:19
@ten9876 ten9876 self-requested a review as a code owner April 18, 2026 06:19
@ten9876 ten9876 merged commit b7baeb9 into main Apr 18, 2026
5 checks passed
@ten9876 ten9876 deleted the aetherclaude/issue-1524 branch April 18, 2026 06:19
NF0T added a commit to NF0T/AetherSDR that referenced this pull request Apr 18, 2026
…oalesce timer check

m_flexCoalesceTimer and m_hidCoalesceTimer are conditionally declared under
HAVE_SERIALPORT and HAVE_HIDAPI respectively. The merged code referenced both
unconditionally, causing a compile error on any build without HIDAPI installed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

FlexControl Tuning Jitter

3 participants