From 0d82d1d8e64ef10b7fd098f3598a471b7e022db5 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Mon, 15 Jun 2026 20:17:07 +0300 Subject: [PATCH] fix: refresh S-meter in headless daemon FLastSMeter is sourced from WDSP (GetSMeterDBm), not the network HP-status, so only the GUI timer (MainForm) ever updated it. In headless mode nothing did, leaving PushState to send web clients a frozen -130 dBm. Refresh it in the daemon Run loop before each PushState, mirroring the GUI timer. Co-Authored-By: Claude Opus 4.8 --- ewsdrd.lpr | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ewsdrd.lpr b/ewsdrd.lpr index 37f0c43..303296c 100644 --- a/ewsdrd.lpr +++ b/ewsdrd.lpr @@ -410,6 +410,11 @@ begin nowMs := GetTickCount64; if nowMs - lastPush >= PUSH_INTERVAL_MS then begin + // S-метр приходит из WDSP (не из сетевого HP-статуса), поэтому его никто + // не обновляет в headless — освежаем здесь, как GUI-таймер (MainForm). Без + // этого PushState слал бы клиентам залипший -130 dBm. + if FCtrl.FRunning and FCtrl.FWDSPReady then + FCtrl.FLastSMeter := FCtrl.FDSPEngine.GetSMeterDBm; FWebAd.PushState; // исходящее зеркало состояния/спектра lastPush := nowMs; end;