Skip to content

Add SSA (Sweden) band plan#2805

Merged
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-2801
May 17, 2026
Merged

Add SSA (Sweden) band plan#2805
ten9876 merged 1 commit into
mainfrom
aetherclaude/issue-2801

Conversation

@NF0T

@NF0T NF0T commented May 17, 2026

Copy link
Copy Markdown
Collaborator

Add SSA (Sweden) band plan with PTSFS 2025:1 constraints (#2801). Principle IV.

Adds resources/bandplans/ssa-sweden.json — a Swedish national overlay on IARU Region 1 with the correct 6 m band edge (50–52 MHz, not the IARU R1 file's 50–54 MHz), embedded power-limit suffixes on bands where PTSFS 2025:1 imposes substantially lower caps (60 m 15 W e.i.r.p., 30 m 150 W p.e.p.), Swedish segment labels (ALLA, FYRAR, SMAL DIGI), and finer 6 m segmentation matching SSA's published v3.0 plan (separate beacon-only 50.400–50.500 segment, FM/DV repeater input 51.210–51.390, output 51.810–51.990).

Registered in resources.qrc under the existing /bandplans qresource block. No code changes — BandPlanManager::loadPlans() auto-discovers :/bandplans/*.json, and the View → Band Plan submenu auto-populates from availablePlans().

Honors Principle IV (region-aware data comes from BandPlanManager): the new plan adds another region-specific JSON the manager loads rather than hardcoding Swedish edges anywhere in C++.

Blast radius: not applicable — static resource file only, no symbols touched.

…nciple IV.

Adds resources/bandplans/ssa-sweden.json — a Swedish national overlay on
IARU Region 1 with the correct 6 m band edge (50–52 MHz, not the IARU R1
file's 50–54 MHz), embedded power-limit suffixes on bands where PTSFS
2025:1 imposes substantially lower caps (60 m 15 W e.i.r.p., 30 m 150 W
p.e.p.), Swedish segment labels (ALLA, FYRAR, SMAL DIGI), and finer 6 m
segmentation matching SSA's published v3.0 plan (separate beacon-only
50.400–50.500 segment, FM/DV repeater input 51.210–51.390, output
51.810–51.990).

Registered in resources.qrc under the existing /bandplans qresource
block. No code changes — BandPlanManager::loadPlans() auto-discovers
:/bandplans/*.json, and the View → Band Plan submenu auto-populates from
availablePlans().

Honors Principle IV (region-aware data comes from BandPlanManager): the
new plan adds another region-specific JSON the manager loads rather than
hardcoding Swedish edges anywhere in C++.

Blast radius: not applicable — static resource file only, no symbols
touched.
@NF0T NF0T requested review from jensenpat and ten9876 as code owners May 17, 2026 13:47

@aethersdr-agent aethersdr-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified end-to-end and this looks good to merge.

Loader compatibility: the JSON schema matches what BandPlanManager::loadPlanFromJson actually reads — low/high/label/license/color for segments and freq/label for spots (src/models/BandPlanManager.cpp:86-101). loadPlans() auto-discovers :/bandplans/*.json via QDir::entryList, so the new <file alias="ssa-sweden.json"> entry in resources.qrc is all the wiring this needs. The View → Band Plan submenu will pick "SSA (Sweden)" up from availablePlans() with zero code changes.

Data spot-checks:

  • 6 m correctly stops at 52.000 (not 54.000 like the IARU R1 file) — matches PTSFS 2025:1.
  • The intentional gaps in the 10 m FM repeater section (29.510–29.520, 29.601–29.620) mirror the IARU R1 file's pattern, so rendering will be consistent.
  • 60 m segments (5.3515 → 5.3665) and 30 m (10.100 → 10.150) are bounded correctly.
  • Power-constraint suffixes ("15W", "150W") embedded in segment labels is a reasonable workaround given the schema has no dedicated power field — and the PR description flags it explicitly.
  • "name": "SSA (Sweden)" is unique against the existing five plans, so no collision with the saved BandPlanName setting.

Principle IV: clean — region-specific edges live in JSON; nothing hardcoded in C++.

Thanks @NF0T — nicely scoped contribution.

@ten9876 ten9876 merged commit 056ba46 into main May 17, 2026
5 checks passed
@ten9876 ten9876 deleted the aetherclaude/issue-2801 branch May 17, 2026 14:38
@ten9876

ten9876 commented May 17, 2026

Copy link
Copy Markdown
Collaborator

Claude here — merged. Tack Ryan! Region-data PRs like this are exactly what Principle IV exists for: regulatory accuracy (PTSFS 2025:1 6m edge, 60m/30m power suffixes), Swedish-language segment labels respecting localization rather than forcing English, and zero code surface — drops straight into BandPlanManager's auto-discovery. The 89 Swedish-language spots are a particularly nice touch for SM operators.

Second region-data PR you've shipped this cycle on top of the FreeDV indicator, FlexWaveformModel, hex meter parser, CWX context menu, RADE auto-deactivate, tx_slice_mode, and RX-applet emit restoration. Quite a run.

73, Jeremy KK7GWY & Claude (AI dev partner)

@ten9876 ten9876 mentioned this pull request May 17, 2026
ten9876 added a commit that referenced this pull request May 17, 2026
Hotfix recommended for TCI digital-mode operators, Windows users with
MQTT or floating-panel windows, and Linux Ubuntu 22.04 builders.

- TCI TX audio level regression vs v26.5.1 (#2806/#2807) — restores
  WSJT-X / JTDX output to full level by reverting only the device +
  protocol identity strings from #2597 to a form that bypasses
  WSJT-X's TCITransceiver SunSDR2DX/non-ExpertSDR3 gain trap.
- Windows process lingering in Task Manager after close (#2802,
  chibondking) — three independent root causes addressed: Channel
  Strip + applet-panel float window WA_QuitOnClose, MqttClient
  destructor loop_stop.
- AppImage CI build failure on gcc 11 strict mode (#2799) — qualifies
  bitstream.h:192 member access with `this->` for two-phase name
  lookup. Restores the v26.5.2 x86_64 AppImage artifact.
- SSA (Sweden) band plan (#2805, NF0T) — Swedish national overlay
  with PTSFS 2025:1 constraints, Swedish labels, 89 spots.

Bumps version 26.5.2 → 26.5.2.1 in CMakeLists.txt, README.md,
CLAUDE.md; regenerates WhatsNewData.cpp from CHANGELOG.md.
CalVer scheme expanded to YY.M.patch[.hotfix] to document the
4th-component hotfix convention used historically.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Co-authored-by: Claude Opus 4.7 (1M context) <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.

2 participants