mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +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/
|
// Чистые-контроллерные перенесены в TWebAdapter (Mode/Filter/AGC/AGCTop/Volume/
|
||||||
// WfAGC/WfNF/Mute/NR/NB/SNB/ANF/FreqB/Center/Attn/ActiveVfo/Ctun/MOX/Tun/FMStep/
|
// WfAGC/WfNF/Mute/NR/NB/SNB/ANF/FreqB/Center/Attn/ActiveVfo/Ctun/MOX/Tun/FMStep/
|
||||||
// ClientActive). Здесь только то, что дёргает UI-обёртки MainForm.
|
// ClientActive). Здесь только то, что дёргает UI-обёртки MainForm.
|
||||||
procedure WebOnFreq(Hz: Double);
|
|
||||||
procedure WebOnRun(On_: Boolean);
|
procedure WebOnRun(On_: Boolean);
|
||||||
procedure WebOnFreqA(Hz: Double);
|
|
||||||
// Discovery / connect / saved-CRUD из web (маршалятся в UI)
|
// Discovery / connect / saved-CRUD из web (маршалятся в UI)
|
||||||
procedure WebOnConnect(const IP: string);
|
procedure WebOnConnect(const IP: string);
|
||||||
procedure WebOnDiscover;
|
procedure WebOnDiscover;
|
||||||
@@ -454,9 +452,7 @@ type
|
|||||||
procedure SyncWebDevAutoStart;
|
procedure SyncWebDevAutoStart;
|
||||||
procedure PushDeviceListToWeb; // store → FWebServer.SetDeviceList
|
procedure PushDeviceListToWeb; // store → FWebServer.SetDeviceList
|
||||||
// Synchronize-обёртки (выполняются в UI-потоке) — только host-зависимые
|
// Synchronize-обёртки (выполняются в UI-потоке) — только host-зависимые
|
||||||
procedure SyncWebFreq;
|
|
||||||
procedure SyncWebRun;
|
procedure SyncWebRun;
|
||||||
procedure SyncWebFreqA;
|
|
||||||
// --- CAT callbacks -------------------------------------------------------
|
// --- CAT callbacks -------------------------------------------------------
|
||||||
function CATGetVfoA: Double;
|
function CATGetVfoA: Double;
|
||||||
function CATGetVfoB: Double;
|
function CATGetVfoB: Double;
|
||||||
@@ -880,12 +876,12 @@ begin
|
|||||||
FWebServer.OnTun := FWebAdapter.OnTun;
|
FWebServer.OnTun := FWebAdapter.OnTun;
|
||||||
FWebServer.OnFMStep := FWebAdapter.OnFMStep;
|
FWebServer.OnFMStep := FWebAdapter.OnFMStep;
|
||||||
// Host-зависимые (UI-обёртки) — пока на MainForm:
|
// Host-зависимые (UI-обёртки) — пока на MainForm:
|
||||||
FWebServer.OnFreq := WebOnFreq;
|
FWebServer.OnFreq := FWebAdapter.OnFreq;
|
||||||
FWebServer.OnBand := FWebAdapter.OnBand;
|
FWebServer.OnBand := FWebAdapter.OnBand;
|
||||||
FWebServer.OnSpan := FWebAdapter.OnSpan;
|
FWebServer.OnSpan := FWebAdapter.OnSpan;
|
||||||
FWebServer.OnRun := WebOnRun;
|
FWebServer.OnRun := WebOnRun;
|
||||||
FWebServer.OnDrive := FWebAdapter.OnDrive;
|
FWebServer.OnDrive := FWebAdapter.OnDrive;
|
||||||
FWebServer.OnFreqA := WebOnFreqA;
|
FWebServer.OnFreqA := FWebAdapter.OnFreqA;
|
||||||
FWebServer.OnWebMic := FWebAdapter.OnMic;
|
FWebServer.OnWebMic := FWebAdapter.OnMic;
|
||||||
FWebServer.OnXvtrBand := FWebAdapter.OnXvtrBand;
|
FWebServer.OnXvtrBand := FWebAdapter.OnXvtrBand;
|
||||||
FWebServer.OnConnect := WebOnConnect;
|
FWebServer.OnConnect := WebOnConnect;
|
||||||
@@ -4657,25 +4653,9 @@ end;
|
|||||||
// не трогать UI и WDSP из чужого потока.
|
// не трогать UI и WDSP из чужого потока.
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
procedure TMainForm.WebOnFreq(Hz: Double);
|
// Mode/Filter/AGC/AGCTop/Volume/Drive/Span/Band/XvtrBand/Freq/FreqA/FreqB/Center/
|
||||||
begin
|
// WfAGC/WfNF/Mute/NR/NB/SNB/ANF/Attn/ClientActiveChanged перенесены в TWebAdapter
|
||||||
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 (чистые команды контроллера).
|
|
||||||
|
|
||||||
// ── Run ────────────────────────────────────────────────────────────────────
|
// ── Run ────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
@@ -4830,18 +4810,6 @@ end;
|
|||||||
|
|
||||||
// ── CTUN ──────────────────────────────────────────────────────────────────
|
// ── 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);
|
procedure TMainForm.TrkDriveChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if FSyncingFromController then Exit; // программная установка из OnControllerState — не команда
|
if FSyncingFromController then Exit; // программная установка из OnControllerState — не команда
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ type
|
|||||||
procedure SyncNB;
|
procedure SyncNB;
|
||||||
procedure SyncSNB;
|
procedure SyncSNB;
|
||||||
procedure SyncANF;
|
procedure SyncANF;
|
||||||
|
procedure SyncFreq;
|
||||||
|
procedure SyncFreqA;
|
||||||
procedure SyncFreqB;
|
procedure SyncFreqB;
|
||||||
procedure SyncCenter;
|
procedure SyncCenter;
|
||||||
procedure SyncAttn;
|
procedure SyncAttn;
|
||||||
@@ -85,6 +87,8 @@ type
|
|||||||
procedure OnNB(Mode: Integer);
|
procedure OnNB(Mode: Integer);
|
||||||
procedure OnSNB(On_: Boolean);
|
procedure OnSNB(On_: Boolean);
|
||||||
procedure OnANF(On_: Boolean);
|
procedure OnANF(On_: Boolean);
|
||||||
|
procedure OnFreq(Hz: Double);
|
||||||
|
procedure OnFreqA(Hz: Double);
|
||||||
procedure OnFreqB(Hz: Double);
|
procedure OnFreqB(Hz: Double);
|
||||||
procedure OnCenter(Hz: Double);
|
procedure OnCenter(Hz: Double);
|
||||||
procedure OnAttn(Idx: Integer);
|
procedure OnAttn(Idx: Integer);
|
||||||
@@ -258,6 +262,23 @@ begin FSyncBool := On_; FController.Invoke(@SyncANF); end;
|
|||||||
procedure TWebAdapter.SyncANF;
|
procedure TWebAdapter.SyncANF;
|
||||||
begin FController.SetANF(FSyncBool); end;
|
begin FController.SetANF(FSyncBool); end;
|
||||||
|
|
||||||
|
procedure TWebAdapter.OnFreq(Hz: Double);
|
||||||
|
begin FSyncFreq := Hz; FController.Invoke(@SyncFreq); end;
|
||||||
|
|
||||||
|
procedure TWebAdapter.SyncFreq;
|
||||||
|
begin
|
||||||
|
// "freq" для АКТИВНОГО VFO. SetVfoA/SetVfoB несут CTUN/band-detect/сеть +
|
||||||
|
// канальную оркестрацию (через OnAfterTune-хук); рендер — rfVfoA/rfVfoB.
|
||||||
|
if FController.FActiveVfo = 0 then FController.SetVfoA(FSyncFreq)
|
||||||
|
else FController.SetVfoB(FSyncFreq);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TWebAdapter.OnFreqA(Hz: Double);
|
||||||
|
begin FSyncFreq := Hz; FController.Invoke(@SyncFreqA); end;
|
||||||
|
|
||||||
|
procedure TWebAdapter.SyncFreqA;
|
||||||
|
begin FController.SetVfoA(FSyncFreq); end;
|
||||||
|
|
||||||
procedure TWebAdapter.OnFreqB(Hz: Double);
|
procedure TWebAdapter.OnFreqB(Hz: Double);
|
||||||
begin FSyncFreq := Hz; FController.Invoke(@SyncFreqB); end;
|
begin FSyncFreq := Hz; FController.Invoke(@SyncFreqB); end;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user