[meters] Fix per-slice compression meter resolution#2073
Merged
ten9876 merged 1 commit intoten9876:mainfrom Apr 27, 2026
Merged
[meters] Fix per-slice compression meter resolution#2073ten9876 merged 1 commit intoten9876:mainfrom
ten9876 merged 1 commit intoten9876:mainfrom
Conversation
This was referenced Apr 27, 2026
ten9876
added a commit
that referenced
this pull request
Apr 27, 2026
Local iambic CW keyer (#2079), unified sidetone controls, CW pan slider wiring, slice capacity notification (#48), three latent netcw protocol bugs that prevented CW transmit on FLEX-8600 v4.1.5 firmware, optimistic updates for cwIambic/iambicMode/cwSpeed/cwPitch, PortAudio JACK preference for sub-5 ms sidetone on Linux, plus the graceful disconnect (#1997), memory recall (#2080), per-slice compression meter (#2073), and m_activeTxSlice (#2078) fixes from the community. Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
2 tasks
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
This PR fixes the compression gauge on multi-slice sessions by resolving TX compression meters against the active TX slice instead of using last-match-wins global meter IDs.
The implementation now tracks
COMPPEAK,AFTEREQ, andSC_MICby TX waveform source when the radio provides explicit per-slice source indices, and by manifest slice context for repeatedTX- num=0blocks seen on 8000-series captures.RadioModelkeepsMeterModelupdated with the active TX slice so runtime TX reassignment selects the correct meter pair without reconnecting.Investigation Notes
Issue #2040 matches our FLEX-6600 findings. The 6600 manifest repeats TX waveform blocks per slice, with observed
SC_MIC/COMPPEAKpairs such as22/23,44/45,66/67, and88/89. Those numeric IDs are session-specific manifest slots, not API contracts. The old scalar indexes bound to the highest-numbered slice, so any other active TX slice could publish VITA meter values that were silently ignored.For 6000-series radios without
AFTEREQ, the derived gauge uses active-sliceSC_MICandCOMPPEAK:For 8000-series radios with
AFTEREQ, the derived gauge uses active-sliceAFTEREQandCOMPPEAK:The 8400M validation logs showed slice 0 using
AFTEREQ 24+COMPPEAK 25and slice 1 usingAFTEREQ 47+COMPPEAK 48, with compression activity on both slices after TX reassignment.Changes
MeterModel.RadioModelintoMeterModel.COMPPEAK, active slice, source index, freshness, lift, display value, and availability.TX- num=0mapping, sparse slice IDs, removal handling, freshness gating, and no-fallback behavior.Validation
origin/mainatc215b4ccompleted cleanly.cmake --build build -j 10./build/meter_model_testgit diff --check👨🏼💻 Generated with OpenAI Codex (GPT-5.5 Pro 4/23) and tested by @jensenpat