* Spec: SO2R with two radios in one instance (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Plan: SO2R implementation (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Move the rotator command rules into RotatorControl (#46)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
* Store the SO2R switch, the second Win-Test station and rotator 2 (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Route frequency reports to radio 1 or 2 (#46)
Add the RadioSlot enum (FIRST, SECOND) with its QRG and QTF targets, and
the pure RadioSlotRouter that decides per RadioInfo packet and per
Win-Test station which radio a report belongs to.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Send RadioInfo of radio 2 to SECONDQRG when SO2R is on (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Send Win-Test STATUS of the second station to SECONDQRG when SO2R is on (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Run a second PSTRotator for radio 2 with SO2R (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Start rotator 2 only while an ON4KST session runs (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Settings for SO2R, the second Win-Test station and rotator 2 (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Turn antenna 2 and show QTF2 with SO2R (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Make the SO2R switches observable so Apply shows them (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Document SO2R (#46)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Refuse clashing PSTRotator ports in both directions (#46)
Writing either port now checks same-or-adjacent against the drafted value of
the other; rotor 1 is only checked while SO2R and rotor 2 are on. Also fixes
a misplaced Javadoc, stale WinTest parseStatus Javadoc, docs wording and
removes an unused import and dead comment.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* Remove the executed SO2R plan (#46)
The plan's content lives on in the commits, the spec and PROJECT_CONTEXT.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>