fix(rigctl): route cwx send/clear through CwxModel for CAT sidetone (#2909). Principle I.#2914
Merged
Merged
Conversation
…2909). Principle I. Hamlib `b <text>` / `\send_morse` over rigctld was dispatching `cwx send` directly via RadioModel::sendCmdPublic, which skipped CwxModel and the local sidetone gate it drives (CwxModel::transmissionRequested → CwxLocalKeyer → CwSidetoneGenerator). MIDI key and the on-screen CWX panel produce sidetone; CAT-driven CW was silent. cmdSendMorse now calls m_model->cwxModel().send(text), which emits both commandReady (forwarded to the radio with the FlexLib CWX wire format — spaces encoded as 0x7f, monotonic block-id appended) and transmissionRequested for the local keyer. cmdStopMorse calls clearBuffer() so transmissionCancelled cuts any in-flight sidetone in addition to sending `cwx clear`. Honors Principle I (FlexLib Is The Protocol Authority): the CAT path now uses the same FlexLib CWX encoding (space → 0x7f, block-id suffix) that CwxModel::send produces for the CWX panel, instead of a raw `cwx send "..."` that silently differs on the wire. Blast radius: seed cmdSendMorse risk_score=0.0235, 2 high-risk affected (top: RadioModel::sendCmd, PerfTelemetry::instance — both downstream shared infrastructure that the new path also traverses via CwxModel::commandReady → RadioModel::sendCmd). The file-level hook reported MainWindow callers (bw=0.15 for MainWindow::MainWindow) because they instantiate RigctlProtocol, but the two CW handler bodies are not on the construction/menu-wiring path so no MainWindow behavior changes. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2 tasks
jensenpat
approved these changes
May 21, 2026
jensenpat
left a comment
Collaborator
There was a problem hiding this comment.
Improve sidetone for CAT applications using existing Cwx sidetone path.
G6PWY-Chris
pushed a commit
to G6PWY-Chris/AetherSDR
that referenced
this pull request
Jun 22, 2026
…ethersdr#2909). Principle I. (aethersdr#2914) ## Summary Fixes aethersdr#2909 ### What was changed fix(rigctl): route cwx send/clear through CwxModel for CAT sidetone (aethersdr#2909). Principle I. ### Files modified - `src/core/RigctlProtocol.cpp` ``` src/core/RigctlProtocol.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) ``` --- Generated by AetherClaude (automated agent for AetherSDR) Co-authored-by: aethersdr-agent[bot] <273844287+aethersdr-agent[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #2909
What was changed
fix(rigctl): route cwx send/clear through CwxModel for CAT sidetone (#2909). Principle I.
Files modified
src/core/RigctlProtocol.cppGenerated by AetherClaude (automated agent for AetherSDR)