mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
fix(slice-cat): перестройка слайса внутри полосы захвата обновляет флаг
TuneSliceInBand в быстрой ветке (цель уже внутри захваченной полосы) звал только SetSliceTarget и не слал ни одного Changed. Позицию флага UI держит сам (TickFlags -> LayoutFlags читает живой TargetHz), а частота и кромки фильтра живут в собственных полях оверлея и заливаются только из PushSliceFlagState. Итог: флаг уезжал на новую частоту, показывая старые цифры и старую полосу фильтра. Дальний QSY выглядел исправным лишь потому, что там двигалось окно DDC и приходил rfPanFreq с PushAllSliceFlagStates. Новое поле rfSliceFreq (+ FSliceFreqId как полезная нагрузка) и хелпер SliceFreqChanged: шлётся из быстрой ветки и из ветки пана 0 (rfCenterFreq флаги не перезаливает). MainForm обновляет только тронутый слайс. Тракт передачи не менялся: ActiveTXFreqHz и так берёт TargetHz слайса- источника, а SetSliceTarget сразу пушит сетевое состояние (DUC). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1822,6 +1822,17 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
rfSliceFreq:
|
||||
begin
|
||||
// Слайс перестроен по своему CAT-порту в пределах захваченной полосы:
|
||||
// окно DDC не двигалось (rfPanFreq не придёт), но цифры и полоса
|
||||
// фильтра во флаге — его собственные поля, их надо перезалить.
|
||||
PushFlagStateAllPans(FController.FSliceFreqId);
|
||||
LayoutFlagsAllPans;
|
||||
for i := 0 to MAX_PANS - 1 do
|
||||
if FPans[i] <> nil then MarkPanDirty(FPans[i]);
|
||||
end;
|
||||
|
||||
rfPanFreq:
|
||||
begin
|
||||
// Центр доп. пана переехал не из UI (CAT слайса перестроил его за
|
||||
|
||||
Reference in New Issue
Block a user