feat: QO-100 mode — separate RX/TX LO + dedicated settings page

QO-100 reuses the transverter path (VFO/band-stack/beacon-lock untouched)
with a split LO for the geostationary transponder:
- TXvtrEntry += FullDuplexTx + TxLOOffset (persisted). Reserve the last
  XVTR slot (QO100_SLOT) for QO-100; migration restores the template when
  the slot is unset or has empty offsets (fixes old configs showing zeros).
- XvtrTranslateTX: TX LO = visible - TxLOOffset (no LNB LOError) for QO-100;
  identical to RX translate for normal transverters. Switched all TX-side
  translate calls (controller + MainForm).
- SetDuplex wired (live KeepRXDuringTX); auto display-duplex on QO-100 entry.
- New "QO-100" settings page (LNB LO / transponder offset / downlink edges /
  RX gain / TX ceiling + live RX-IF/TX readout); QO slot hidden from the
  transverter table. Reuses OnXvtrChange — no MainForm wiring needed.
- doc/PLUTO_INTEGRATION_PLAN.md: phase 5 done.

Builds clean (headless + qt6 GUI). Not yet verified on hardware.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 15:30:23 +03:00
co-authored by Claude Opus 4.8
parent c6660891c0
commit 3fe5cf3fad
5 changed files with 292 additions and 47 deletions
+10 -7
View File
@@ -291,14 +291,17 @@ end;
- TODO: проверка на железе (ориентация SSB по Q-инверсии, уровни); полифазный
ресэмпл (см. §4.6); опц. зануление IQ на приёме.
**Фаза 5 — Режим QO-100**
**Фаза 5 — Режим QO-100**
- ✅ Калибровка LNB по маяку (beacon lock) — стабилизация дрейфа.
- ✅ Hardware full-duplex: TX-стрим живёт всё время Run (Фаза 4), RX+TX
одновременно. Остаётся display-duplex (`SetDuplex` — водопад RX во время TX).
- TODO: `TQO100Settings` + раздельные RX/TX LO (§3.2), дисплей в downlink-терминах,
довести `SetDuplex`.
- UI: вход/выход в режим QO-100 (как XVTR-слот), поля LNB LO / ppm / TX atten.
-полноценная работа через спутник.
- ✅ Hardware full-duplex + ✅ display-duplex (`SetDuplex` доведён: живой
`KeepRXDuringTX`; авто-вкл при входе в QO-100 — слышим свой downlink).
- ✅ Раздельные RX/TX LO (§3.2): QO-100 = XVTR-слот с флагом `FullDuplexTx` +
`TxLOOffset`; `XvtrTranslateTX` даёт TX-LO = visibleTxLOOffset (без LOError).
RX-путь (LNB LO + beacon-дрейф) не тронут. Дисплей/VFO в downlink-терминах.
-Отдельная страница «QO-100» в SettingsForm (LNB LO / транспондер-offset /
границы downlink / RX gain / TX-потолок); зарезервирован последний XVTR-слот
(`QO100_SLOT`), не засоряет таблицу трансвертеров openHPSDR.
- TODO: проверка на железе.
**Фаза 6 — Полировка**
- Web/CAT-фронтенды (команды уже агностичны) + гейтинг полей; демон `ewsdrd.lpr`