mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 17:27:32 +00:00
fix(slices): XVTR-трансляция частот панов N
Частота пана хранится ВИДИМОЙ (как FVfoA/FCenterFreq) и транслируется в IF через XvtrTranslate только на границе с железом (AddPanDDC, SetPanDDCFreq, SetPanDDCRate, SetPanADC) — раньше DDC пана получал видимую частоту сырьём, а drag водопада пана N клампился пределами АЦП (~61 МГц) вместо диапазона трансвертера. Новое: controller.VisibleFreqBounds (диапазон активного XVTR | пределы железа) для UI-клампа драга; RefreshPanDDCs — на входе/выходе XVTR и правке LO/LOError клампит видимые центры живых панов, перешивает freq-слова DDC и прижимает выпавшие слайсы к краям полосы захвата. Подтверждено юзером на трансвертере. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+6
-2
@@ -6154,8 +6154,10 @@ begin
|
||||
end;
|
||||
PanViewWindow(P, VC, VS);
|
||||
NewHz := FPanCenterDragF0 - (X - FPanCenterDragX0) * VS / W;
|
||||
NewHz := Max(FController.BackendCaps.MinFreqHz,
|
||||
Min(FController.BackendCaps.MaxFreqHz, NewHz));
|
||||
// Кламп в ВИДИМЫХ частотах: при активном XVTR — его диапазон (иначе
|
||||
// 1296 МГц «падала» на MaxFreqHz железа ~61 МГц), без XVTR — железо.
|
||||
FController.VisibleFreqBounds(LoHz, HiHz);
|
||||
NewHz := Max(LoHz, Min(HiHz, NewHz));
|
||||
FController.SetPanDDCFreq(P.PanId, NewHz);
|
||||
SyncPanZoomUI(P); // окно вьюхи с учётом зума + freq зум-бара
|
||||
P.LayoutFlags;
|
||||
@@ -6885,6 +6887,8 @@ begin
|
||||
DeactivateXvtr;
|
||||
// Перепрошить XVTR в сеть (если параметры текущего изменились)
|
||||
ApplyXvtrToNetwork;
|
||||
// Правка LO/LOError при живых панах: freq-слова их DDC — через свежую трансляцию.
|
||||
FController.RefreshPanDDCs;
|
||||
UpdateWidebandFrequencyView;
|
||||
if PbWideband <> nil then PbWideband.Invalidate;
|
||||
if PbWidebandRuler <> nil then PbWidebandRuler.Invalidate;
|
||||
|
||||
Reference in New Issue
Block a user