Skip to content

Navigation Menu

Sign in
Sign up

Add optional control-channel source affinity - #1157

Open
lilhoser wants to merge 1 commit into
TrunkRecorder:master from
lilhoser:codex/source-affinity-upstream-pr
Open

Add optional control-channel source affinity #1157
lilhoser wants to merge 1 commit into
TrunkRecorder:master from
lilhoser:codex/source-affinity-upstream-pr

Conversation

@lilhoser

@lilhoser lilhoser commented Aug 10, 2026

Copy link
Copy Markdown

Summary

Adds an opt-in per-system sourceAffinity setting for trunked systems. When enabled, Trunk Recorder keeps that system's control-channel decoder on its startup-assigned source: same-source control-channel retunes continue normally, while an alternate outside the assigned source is skipped with a warning.

The setting defaults to false, so existing cross-source scanning behavior remains unchanged. Voice-recorder source selection is not affected.

Why

Moving a control-channel decoder between sources requires disconnecting and rebuilding that decoder within the shared GNU Radio top block. In a multi-system field deployment, repeated cross-source rebuilds from one marginal system correlated with resets and brief decode interruptions on another stable system, and one rebuild stalled in the graph restart path. Operators who intentionally place every valid control channel for a site within one source need a way to prevent an unusable out-of-range candidate from causing those shared-graph rebuilds.

This is an opt-in safety boundary, not a replacement for cross-source scanning. It must only be enabled when the assigned source covers every control channel the system may use.

Changes

  • Parse and document the optional sourceAffinity system setting.
  • Preserve same-source retunes when affinity is enabled.
  • Block out-of-range cross-source control-channel retunes with a specific warning.
  • Leave the default retune path and voice-recorder source selection unchanged.
  • Add a focused decision test for all enabled/disabled and covered/uncovered cases.

Validation

  • Native Ubuntu 24.04 Release build completed successfully, including bundled plugins.
  • ctest --output-on-failure: 1/1 passed.

Closes #1156

lilhoser marked this pull request as ready for review August 10, 2026 17:19

taclane commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

As an alternative, would this be better addressed by some kind of "controlExplicit": true setting, and only ever let-t-r use the listed frequencies in the config?

This would address a secondary issue (t-r will absorb any control channels it learns from system update messages, which may not be desirable sometimes), and minimize the need for an affinity setting where it latches onto the first device by just letting the user have full control of where it attempts to tune.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Add opt-in control-channel source affinity for multi-source configurations

2 participants

AltStyle によって変換されたページ (->オリジナル) /