mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
Phase 3 (WA2e): move web Freq/FreqA handlers into the adapter
With ApplyVfoA now a thin SetVfoA delegate (channel orchestration on the OnAfterTune hook), the web Freq/FreqA handlers carry no MainForm logic — move them to TWebAdapter.OnFreq (active-VFO routing → SetVfoA/SetVfoB) and OnFreqA (SetVfoA). CAT freq (CATSetVfoA/SyncCATVfoA) left as-is — moves with the CAT adapter (Phase 4). Remaining host-coupled web handlers: Run / Connect / device CRUD (daemon entry). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
7630172e50
commit
0a0a5c455e
+5
-37
@@ -436,9 +436,7 @@ type
|
||||
// Чистые-контроллерные перенесены в TWebAdapter (Mode/Filter/AGC/AGCTop/Volume/
|
||||
// WfAGC/WfNF/Mute/NR/NB/SNB/ANF/FreqB/Center/Attn/ActiveVfo/Ctun/MOX/Tun/FMStep/
|
||||
// ClientActive). Здесь только то, что дёргает UI-обёртки MainForm.
|
||||
procedure WebOnFreq(Hz: Double);
|
||||
procedure WebOnRun(On_: Boolean);
|
||||
procedure WebOnFreqA(Hz: Double);
|
||||
// Discovery / connect / saved-CRUD из web (маршалятся в UI)
|
||||
procedure WebOnConnect(const IP: string);
|
||||
procedure WebOnDiscover;
|
||||
@@ -454,9 +452,7 @@ type
|
||||
procedure SyncWebDevAutoStart;
|
||||
procedure PushDeviceListToWeb; // store → FWebServer.SetDeviceList
|
||||
// Synchronize-обёртки (выполняются в UI-потоке) — только host-зависимые
|
||||
procedure SyncWebFreq;
|
||||
procedure SyncWebRun;
|
||||
procedure SyncWebFreqA;
|
||||
// --- CAT callbacks -------------------------------------------------------
|
||||
function CATGetVfoA: Double;
|
||||
function CATGetVfoB: Double;
|
||||
@@ -880,12 +876,12 @@ begin
|
||||
FWebServer.OnTun := FWebAdapter.OnTun;
|
||||
FWebServer.OnFMStep := FWebAdapter.OnFMStep;
|
||||
// Host-зависимые (UI-обёртки) — пока на MainForm:
|
||||
FWebServer.OnFreq := WebOnFreq;
|
||||
FWebServer.OnFreq := FWebAdapter.OnFreq;
|
||||
FWebServer.OnBand := FWebAdapter.OnBand;
|
||||
FWebServer.OnSpan := FWebAdapter.OnSpan;
|
||||
FWebServer.OnRun := WebOnRun;
|
||||
FWebServer.OnDrive := FWebAdapter.OnDrive;
|
||||
FWebServer.OnFreqA := WebOnFreqA;
|
||||
FWebServer.OnFreqA := FWebAdapter.OnFreqA;
|
||||
FWebServer.OnWebMic := FWebAdapter.OnMic;
|
||||
FWebServer.OnXvtrBand := FWebAdapter.OnXvtrBand;
|
||||
FWebServer.OnConnect := WebOnConnect;
|
||||
@@ -4657,25 +4653,9 @@ end;
|
||||
// не трогать UI и WDSP из чужого потока.
|
||||
// ===========================================================================
|
||||
|
||||
procedure TMainForm.WebOnFreq(Hz: Double);
|
||||
begin
|
||||
FWebSyncFreq := Hz;
|
||||
FWebSyncM := SyncWebFreq;
|
||||
TThread.Synchronize(nil, FWebSyncM);
|
||||
end;
|
||||
|
||||
procedure TMainForm.SyncWebFreq;
|
||||
begin
|
||||
// Веб шлёт "freq" для активного VFO — маршрутизируем через те же команды,
|
||||
// что и десктоп (рендер/сеть/band-detect внутри них и в OnControllerState).
|
||||
if FController.FActiveVfo = 0 then
|
||||
ApplyVfoA(Round(FWebSyncFreq))
|
||||
else
|
||||
FController.SetVfoB(FWebSyncFreq);
|
||||
end;
|
||||
|
||||
// Mode/Filter/AGC/AGCTop/Volume/WfAGC/WfNF/Mute/NR/NB/SNB/ANF/FreqB/Center/Attn +
|
||||
// ClientActiveChanged перенесены в TWebAdapter (чистые команды контроллера).
|
||||
// Mode/Filter/AGC/AGCTop/Volume/Drive/Span/Band/XvtrBand/Freq/FreqA/FreqB/Center/
|
||||
// WfAGC/WfNF/Mute/NR/NB/SNB/ANF/Attn/ClientActiveChanged перенесены в TWebAdapter
|
||||
// (чистые команды контроллера).
|
||||
|
||||
// ── Run ────────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -4830,18 +4810,6 @@ end;
|
||||
|
||||
// ── CTUN ──────────────────────────────────────────────────────────────────
|
||||
|
||||
procedure TMainForm.WebOnFreqA(Hz: Double);
|
||||
begin
|
||||
FWebSyncFreq := Hz;
|
||||
FWebSyncM := SyncWebFreqA;
|
||||
TThread.Synchronize(nil, FWebSyncM);
|
||||
end;
|
||||
|
||||
procedure TMainForm.SyncWebFreqA;
|
||||
begin
|
||||
ApplyVfoA(Round(FWebSyncFreq));
|
||||
end;
|
||||
|
||||
procedure TMainForm.TrkDriveChange(Sender: TObject);
|
||||
begin
|
||||
if FSyncingFromController then Exit; // программная установка из OnControllerState — не команда
|
||||
|
||||
Reference in New Issue
Block a user