mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 17:27:32 +00:00
feat(slices): этап 3.4 ADC-селектор панов + этап 3.5 pop-out в отдельное окно
3.4 ADC-селектор: - Caps.NumADCs (HPSDR: 2 для ORION/ORION2/SATURN, как Pkt.NumADCs; Pluto: 1) - controller.PanADC/SetPanADC: пан 0 = FMainADCSrc + ConfigureDDCs (ADC прокинут и в штатные вызовы — смена rate не сбрасывает выбор), паны N = FPanADC[] + SetPanDDC (RebuildDDCSpecific) - Бейдж «A1/A2» в шапке каждого пана (виден при NumADCs>1), клик = тумблер; пан 0 на ADC2 закрывает сценарий rx2-support 3.5 Pop-out: - «⧉» в шапке панов N → PopOutPan: TForm.CreateNew + ReparentTo (перенос всех контролов панели), [×] окна = DockBackPan (возврат в стек), «×» шапки = закрыть пан; LayoutPanStack скипает плавающих; колесо окна = FormMouseWheel - GL: reparent пересоздаёт контексты → ResetGLCache обеих канв без glDelete (по прецеденту MSAA); TWaterfallViewOpenGL.ResetGLCache новый, история водопада перезаливается из CPU-буфера Проверено юзером на экране (беглый тест: селектор и pop-out работают). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -463,6 +463,21 @@ ChangeSampleRate).
|
||||
- Diversity (sync-DDC, оба АЦП когерентно в один канал) — НЕ здесь; протокол
|
||||
умеет, дизайну панов не мешает, отдельная будущая фича.
|
||||
|
||||
**СТАТУС 3.4 (2026-07-11): ГОТОВО, коммит 5e50cba, юзер подтвердил беглым
|
||||
тестом. ⚠Ожидаются вопросы юзера по пункту «смена rate не сбрасывает АЦП».**
|
||||
- `Caps.NumADCs` (HPSDR: 2 для BoardType 4/5/10 — ORION/ORION2/SATURN, те же
|
||||
платы, что Pkt.NumADCs в RebuildDDCSpecific; Pluto: 1; достоверно после
|
||||
Connect).
|
||||
- Контроллер: `PanADC(PanId)` / `SetPanADC(PanId, ADC)`. Пан 0 = главный DDC
|
||||
(`FMainADCSrc` + ConfigureDDCs с тем же rate/dither/random; FMainADCSrc
|
||||
теперь прокинут и в оба штатных вызова ConfigureDDCs — смена rate не
|
||||
сбрасывает АЦП). Паны N = `FPanADC[]` + SetPanDDC (RebuildDDCSpecific).
|
||||
- UI: бейдж «A1»/«A2» в шапке КАЖДОГО пана (вкл. пан 0 — закрывает сценарий
|
||||
rx2-support), виден только при NumADCs>1, клик = тумблер, акцентный цвет.
|
||||
- ⚠Ограничение: шапка пана 0 видна только при ≥2 панах ⇒ с единственным
|
||||
паном перекинуть пан 0 на ADC2 из UI нельзя (добавь пан или жди персиста).
|
||||
Антенны Alex (ANT1/2/3) — по-прежнему глобально в Antenna-табе.
|
||||
|
||||
### 3.5 — Pop-out: панадаптер в отдельном OS-окне
|
||||
|
||||
Улучшение поверх Flex (SmartSDR так не умеет). Кнопка `⧉` в шапке.
|
||||
@@ -478,6 +493,25 @@ ChangeSampleRate).
|
||||
- **Риск №2 — общие GL-ресурсы**: закрывается аудитом из 3.0.
|
||||
- Персист: флаг «пан N в отдельном окне» + геометрия окна.
|
||||
|
||||
**СТАТУС 3.5 (2026-07-11): ГОТОВО, коммит 5e50cba, юзер подтвердил беглым
|
||||
тестом — честный GL-reparent на Qt6/Wayland РАБОТАЕТ (fallback-пересоздание
|
||||
не понадобилось).**
|
||||
- Кнопка «⧉» в шапке панов N>0 → `PopOutPan`: `TForm.CreateNew` (Caption
|
||||
«EWSDR · PAN N», тема, OnMouseWheel = FormMouseWheel — колесо над
|
||||
флагами/фоном работает как в стеке), `TPanafallPanel.ReparentTo(F)`
|
||||
(Parent всех контролов), StackTop/Height=0/0 (= всё окно), сплиттер пана
|
||||
скрыт, LayoutPanStack пере-стекует оставшихся (плавающие скипаются).
|
||||
- GL: reparent пересоздаёт хэндлы канв → контексты умирают. По прецеденту
|
||||
MSAA: `ResetGLCache` (обнуление id без glDelete) — расширен, теперь
|
||||
сбрасывает и водопад (`TWaterfallViewOpenGL.ResetGLCache`, новый);
|
||||
история водопада живёт в CPU-буфере — тексура перезальётся.
|
||||
- [×] окна = dock back (`CloseAction := caNone` + `DockBackPan`: reparent в
|
||||
PanelRight, сброс GL, Release окна). «×» шапки в окне = закрыть пан
|
||||
целиком (ClosePanadapter освобождает и окно). STOP закрывает всё.
|
||||
- Резерв на случай мёртвого GL после reparent: пересоздание вьюхи/контролов
|
||||
(в коде НЕ делалось — сначала экранный тест).
|
||||
- Персист геометрии — вместе с общим персистом панов.
|
||||
|
||||
### 3.6 — Pluto+ (2r2t): второй пан на втором антенном входе
|
||||
|
||||
Опционально, после 3.0-3.3. Обычного Pluto НЕ касается (там один RX разведён).
|
||||
|
||||
Reference in New Issue
Block a user