diff --git a/ewsdrd.lpr b/ewsdrd.lpr index 5b8966d..bc9616b 100644 --- a/ewsdrd.lpr +++ b/ewsdrd.lpr @@ -57,6 +57,7 @@ type procedure PushXvtr; procedure PushRatePresets; // sample-rate пресеты бэкенда → web procedure PushBands; // band-план бэкенда → web + procedure PushFreqDigits; // per-device freq_mhz_digits → web (формат VFO) // Входящие web-команды (из WS-потока): запоминаем параметр и маршалим в Sync*. procedure WebRun(On_: Boolean); procedure WebConnect(const IP: string); @@ -198,7 +199,7 @@ begin // выходные web-списки, которых нет в периодическом PushState. case Field of rfDeviceList: PushDeviceList; // discovered обновился - rfXvtr, rfDevice: begin PushXvtr; PushDeviceList; PushRatePresets; PushBands; end; // connect / xvtr / backend + rfXvtr, rfDevice: begin PushXvtr; PushDeviceList; PushRatePresets; PushBands; PushFreqDigits; end; // connect / xvtr / backend end; end; @@ -317,6 +318,16 @@ begin with FCtrl.BackendCaps do FWeb.SetFreqRange(MinFreqHz, MaxFreqHz); end; +procedure THeadlessHost.PushFreqDigits; +// Зеркалим per-device настройку формата VFO в web (как GUI ApplyFreqMhzDigits). +// Без этого демон всегда слал бы дефолтные 3 цифры (999 МГц), и VHF/UHF/SHF не влезал. +var d: Integer; +begin + d := FCtrl.FLoadedGlobal.FreqMhzDigits; + if d < 3 then d := 3 else if d > 5 then d := 5; + FWeb.FreqMhzDigits := d; +end; + // --- Входящие web-команды (WS-поток) → маршалинг в главный поток --- procedure THeadlessHost.WebRun(On_: Boolean);