scroll freq

This commit is contained in:
2026-03-11 22:06:37 +03:00
parent 8d64bba6fc
commit 4407511d56
3 changed files with 83 additions and 4 deletions
+27
View File
@@ -478,6 +478,7 @@ type
procedure WebOnANF(On_: Boolean);
procedure WebOnFreqB(Hz: Double);
procedure WebOnActiveVfo(Idx: Integer);
procedure WebOnCenter(Hz: Double);
// Synchronize-обёртки (выполняются в UI-потоке)
procedure SyncWebFreq;
procedure SyncWebMode;
@@ -498,6 +499,7 @@ type
procedure SyncWebANF;
procedure SyncWebFreqB;
procedure SyncWebActiveVfo;
procedure SyncWebCenter;
procedure BtnWfAGCClick(Sender: TObject);
procedure BtnWfNFClick(Sender: TObject);
procedure BtnHidePanelClick(Sender: TObject);
@@ -828,6 +830,7 @@ begin
FWebServer.OnANF := WebOnANF;
FWebServer.OnFreqB := WebOnFreqB;
FWebServer.OnActiveVfo := WebOnActiveVfo;
FWebServer.OnCenter := WebOnCenter;
FWebServer.Start;
FSMeterPeak := -130;
FSMeterMin := -130;
@@ -4755,6 +4758,30 @@ begin
ActivateVfo(FWebSyncInt);
end;
// ── CTUN drag center scroll (из веба) ────────────────────────────────────
procedure TMainForm.WebOnCenter(Hz: Double);
begin
FWebSyncFreq := Hz;
FWebSyncM := SyncWebCenter;
TThread.Synchronize(nil, FWebSyncM);
end;
procedure TMainForm.SyncWebCenter;
begin
// Сдвигаем DDC-центр без смены VFO (аналог CTUN-drag в десктопе)
FCenterFreq := FWebSyncFreq;
if FWDSPReady then
begin
if FActiveVfo = 0 then FDSPEngine.SetShift(FVfoA - FCenterFreq)
else FDSPEngine.SetShift(FVfoB - FCenterFreq);
end;
if FNetwork.Connected and FNetwork.Running then
FNetwork.UpdateState(FCenterFreq, FCenterFreq, FDriveLevel, FTransmitting, True, True);
FRulerLastFreq := -1.0; FRulerLastVfo := -1.0;
FSpectrumDirty := True;
end;
procedure TMainForm.TrkDriveChange(Sender: TObject);
begin
FDriveLevel := Round(TrkDrive.Position / 100.0 * 255);