data(bandplans): add ISED license_classes to RAC Canada plan (#3061). Principle IV.#3088
Conversation
… Principle IV. Populates rac-canada.json with the license_classes block introduced in #3050 using Canada's ISED RIC-3 / RBR-4 frequency authorizations: - B = Basic (VHF/UHF only, >= 30 MHz) - BH = Basic with Honours (all amateur bands) - A = Advanced (all amateur bands) All HF segments (1.8-29.7 MHz) are annotated "BH,A"; all segments at 50 MHz and above are annotated "B,BH,A"; receive-only beacon markers keep `license: ""` so they pass through the filter unchanged. The description is updated to make clear the class overlay is sourced from ISED (the federal regulator), not from the RAC band-plan document, which itself does not define class-based sub-segments. For SSA Sweden, the description is updated to document why no license_classes block is added: PTSFS 2025:1 treats Swedish amateurs as a single qualification tier (the older CEPT Class 1 / Class 2 split was retired), so per-segment class filtering would be misleading. The ATU pre-tune dialog hides the class combobox when no license_classes block is present (AtuPreTuneDialog::populateLicenseClassRow, #2649), so this is correct no-op behavior — the description records the reasoning so a future contributor doesn't retry the addition. IARU Region 1/2/3 plans are intentionally left unchanged: those documents are mode-allocation-by-band, not class-allocation, and operators wanting class filtering should select their national plan (arrl-us, rac-canada) as the active plan. Pure data change — no .cpp files modified, no test-target link surface affected, no codegraph impact analysis applicable (the dialog code path is data-driven and already in place from #3050). Principle IV. Region-Aware Data Comes From BandPlanManager: the class overlay is added to the per-region JSON files that drive BandPlanManager, keeping the regional-data source authoritative rather than introducing a parallel class-rules table. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
There was a problem hiding this comment.
Data change looks good — thanks for the careful citation of ISED RIC-3 / RBR-4 in the description.
Verified:
license_classesschema ({B, BH, A}) matches the format already consumed byBandPlanManager::loadPlanFromJson(src/models/BandPlanManager.cpp:134-138).- Comma-separated
licensevalues ("BH,A","B,BH,A") parse correctly via the existing split-and-trim incontiguousRegionsForBand(src/models/BandPlanManager.cpp:88-95). A Basic-only operator selecting "B" will be filtered out of HF segments (which carry only"BH,A") and permitted on ≥30 MHz segments — that matches the ISED rule cited in the description. - BCN segments retained
""license, consistent with thearrl-us.jsonconvention so beacon markers always render regardless of class. - Spot-checked the regulatory boundary: Basic appears first at 50 MHz (6 m), absent on 30/24/21/18/14/10/7/5/3.5/1.8 MHz — correct.
One observation, not blocking:
The visual blend logic in SpectrumWidget.cpp:6104-6109 hardcodes tiers for "E", "E,G", and "T" only. The RAC codes ("B", "BH", "A", "B,BH,A", "BH,A") will all fall through to the default 0.60 blend, so previously-empty RAC segments will render slightly brighter than before (0.50 → 0.60). That's harmless and reads as "wider access" tier, but if/when we want per-tier dimming for Canada it would be a follow-up to that switch ladder — out of scope here.
The bundled Sweden description tweak is reasonable since it explains the absence of license_classes in the same regulatory-overlay vocabulary this PR introduces.
LGTM as a data-only change. Thanks!
🤖 aethersdr-agent · cost: $2.7793 · model: claude-opus-4-7
…dr#3061). Principle IV. (aethersdr#3088) ## Summary Fixes aethersdr#3061 ### What was changed data(bandplans): add ISED license_classes to RAC Canada plan (aethersdr#3061). Principle IV. ### Files modified - `resources/bandplans/rac-canada.json` - `resources/bandplans/ssa-sweden.json` ``` resources/bandplans/rac-canada.json | 219 ++++++++++++++++++------------------ resources/bandplans/ssa-sweden.json | 2 +- 2 files changed, 113 insertions(+), 108 deletions(-) ``` --- Generated by AetherClaude (automated agent for AetherSDR) --- <sub>🤖 aethersdr-agent · cost: $15.6071 · model: claude-opus-4-7</sub> Co-authored-by: aethersdr-agent[bot] <273844287+aethersdr-agent[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Summary
Fixes #3061
What was changed
data(bandplans): add ISED license_classes to RAC Canada plan (#3061). Principle IV.
Files modified
resources/bandplans/rac-canada.jsonresources/bandplans/ssa-sweden.jsonGenerated by AetherClaude (automated agent for AetherSDR)
🤖 aethersdr-agent · cost: $15.6071 · model: claude-opus-4-7