You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(aprs): add WIDE1-1 fill-in with explicit TX arming — Principle VI.
Add the AetherModem WIDE1-1 fill-in tab, model-owned engine and beacon, destination-aware duplicate suppression, traffic counters, and automation controls.
Require explicit 1200-baud session arming. Bound all modem producers to one 64-frame queue and cancel digi-origin pending/active work on disarm while preserving unrelated traffic. Cover the lifecycle with socket-free regression tests and mutation checks.
Implements Phase 1 of #3571; wide-area and other Phase-2 work remains tracked there.
Co-authored-by: jensenpat <patjensen@gmail.com>
Co-authored-by: Robbie Foust <rfoust@gmail.com>
Copy file name to clipboardExpand all lines: docs/architecture/aetherd-touchpoint-tags.json
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1330,5 +1330,11 @@
1330
1330
"note": "Capability-gated client for the ANAN calibration extension. Uses only IRadioBackend requests and replies; concrete calibration ownership, rate control and DSP stay below the backend seam.",
1331
1331
"split": "Client protocol adapter only; no vendor implementation dependency.",
1332
1332
"confidence": "high"
1333
+
},
1334
+
"models/AprsDigipeaterModel.h": {
1335
+
"tag": "universal",
1336
+
"note": "Session-local APRS fill-in policy and bounded modem queue; no backend-specific commands or transport ownership.",
Copy file name to clipboardExpand all lines: docs/architecture/aetherd-touchpoints.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
Burndown manifest for the engine/UI decoupling ([RFC](../aetherd-headless-engine-design.md) §2, §10). One row per engine header the UI includes; converting a touchpoint means the UI reaches that surface through the versioned protocol instead of the header.
@@ -142,7 +142,7 @@ Burndown manifest for the engine/UI decoupling ([RFC](../aetherd-headless-engine
142
142
|`core/SystemInventory.h`| 1 | ui-support — Startup and support-bundle inventory of host CPU, SIMD and RAM capabilities. Process diagnostics, not radio state. | unconverted |
143
143
|`core/TciServer.h`| 3 | mixed(flex) — TCI WebSocket server for WSJT-X et al: protocol surface is canonical radio state, but audio/IQ rides Flex DAX | unconverted |
144
144
|`core/TgxlConnection.h`| 2 | peripheral(4o3a) — Direct TCP client for the 4O3A Tuner Genius XL (port 9010, relay/autotune), reverse-engineered from the 4O3A management app — a standalone accessory transport, not SmartSDR. Not radio-family wire; a peripheral accessory, NOT behind the IRadioBackend radio seam (reclassified from vendor(flex), #4087 follow-up). | unconverted |
145
-
|`core/ThemeManager.h`|145| ui-support — Qt token-based theming singleton (colors/fonts/QSS, theme files, editor hooks) — pure client GUI plumbing, no radio state. | unconverted |
145
+
|`core/ThemeManager.h`|146| ui-support — Qt token-based theming singleton (colors/fonts/QSS, theme files, editor hooks) — pure client GUI plumbing, no radio state. | unconverted |
146
146
|`core/ThreadCpuRing.h`| 2 | ui-support — Short host-thread CPU history used by Runtime Monitor peak and sparkline presentation. Diagnostic UI support, not radio state. | unconverted |
147
147
|`core/TimeFrameVoter.h`| 1 | universal — Shared AetherClock time-frame types plus confidence-weighted cross-frame bit voting over a sliding window. Map-agnostic pure DSP/logic — no Qt, no GUI, no vendor ties. | unconverted |
148
148
|`core/TxKeyingMarker.h`| 6 | ui-support — QWidget property marker guarding TX-keying controls from the automation bridge; GUI-shell plumbing, no radio state. | unconverted |
@@ -194,6 +194,7 @@ Burndown manifest for the engine/UI decoupling ([RFC](../aetherd-headless-engine
|`models/AetherClockModel.h`| 2 | universal — Thin first-class AetherClock model with full Q_PROPERTY coverage (protocol-serializable, QML-ready), mirroring engine state over queued connections. Owns no DSP and has no vendor ties — one of only three models already shaped the way the protocol will want them. | unconverted |
196
196
|`models/AntennaGeniusModel.h`| 4 | peripheral(4o3a) — 4O3A Antenna Genius switch client — standalone accessory with its own UDP-broadcast discovery (port 9007) + direct TCP; connects by device IP/port independent of the radio, works with any radio. Not radio-family wire; a peripheral accessory, NOT behind the IRadioBackend radio seam (reclassified from vendor(flex), #4087 follow-up). | unconverted |
197
+
|`models/AprsDigipeaterModel.h`| 1 | universal — Session-local APRS fill-in policy and bounded modem queue; no backend-specific commands or transport ownership. | unconverted |
197
198
|`models/BandDefs.h`| 5 | universal — Static ARRL band plan table (edges, default freq/mode, GEN/WWV); canonical band-plan data, no vendor ties. | unconverted |
198
199
|`models/BandPlanManager.h`| 9 | universal — Band-plan overlay data (segments/spots/license classes, region merge) from JSON; radio-agnostic canon | unconverted |
199
200
|`models/BandSettings.h`| 5 | universal — Per-band save/restore of canonical state (freq/mode/filter/AGC/WNB/display range) — band memories, no vendor fields | unconverted |
0 commit comments