mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
Add configurable VFO frequency range with GHz support
- Settings > Display: new "VFO Display" control to select max frequency range (999 MHz / 9.999 GHz / 99.999 GHz), persisted as freq_mhz_digits - FreqDisplay: extend digit map [0..10] to support up to 11 digit positions; keyboard navigation adapts to MinMhzDigits dynamically - MainForm/LayoutTopVfoBlock: VFO panel width scales automatically with selected digit count using dynamic text measurement - Web VFO: fix broken HTML (class attr not closed before data-s — wheel and hover were completely non-functional); rewrite fmtVfo to use variable MHz digit count synced from server state; fix missing </span> for .vfo-hz - WebServer: publish freq_mhz_digits in state JSON; updated from ApplyFreqMhzDigits so desktop and web stay in sync - Fix Int32 overflow on frequencies above ~2.15 GHz: CATEngine.Pad V param Int64, FormatFreq/FormatFreqSV Mhz var Int64 (Mhz*1000000 overflowed) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+7
-4
@@ -241,7 +241,8 @@ type
|
||||
FAttnIdx: Integer;
|
||||
FOnTun: TWebCmdTun;
|
||||
FTuning: Boolean;
|
||||
FDuplex: Boolean;
|
||||
FDuplex: Boolean;
|
||||
FFreqMhzDigits: Integer; // 3=999MHz, 4=9.999GHz, 5=99.999GHz
|
||||
FXvtrBands: TWebXvtrArray; // список enabled XVTR (для web-UI)
|
||||
FCurrentXvtr: Integer; // -1 = HF, иначе индекс активного XVTR
|
||||
FOnXvtrBand: TWebCmdXvtrBand;
|
||||
@@ -292,6 +293,7 @@ type
|
||||
AttnIdx: Integer; Tuning: Boolean; Duplex: Boolean);
|
||||
|
||||
property WebClientActive: Boolean read FWebClientActive;
|
||||
property FreqMhzDigits: Integer read FFreqMhzDigits write FFreqMhzDigits;
|
||||
|
||||
property OnFreq: TWebCmdFreq read FOnFreq write FOnFreq;
|
||||
property OnMode: TWebCmdMode read FOnMode write FOnMode;
|
||||
@@ -419,7 +421,8 @@ begin
|
||||
FVolume := 70;
|
||||
FSMeter := -120;
|
||||
FBandIdx := 5;
|
||||
FCurrentXvtr := -1;
|
||||
FCurrentXvtr := -1;
|
||||
FFreqMhzDigits := 3;
|
||||
SetLength(FXvtrBands, 0);
|
||||
end;
|
||||
|
||||
@@ -1233,7 +1236,7 @@ begin
|
||||
'"running":%s,"mute":%s,"ctun":%s,' +
|
||||
'"nr_mode":%d,"nr":%s,"nb_mode":%d,"nb":%s,"snb":%s,"anf":%s,"connected":%s,' +
|
||||
'"transmitting":%s,"drive":%d,"attn_idx":%d,"tuning":%s,"dup":%s,' +
|
||||
'"xvtr_current":%d,"xvtr_bands":%s}',
|
||||
'"xvtr_current":%d,"xvtr_bands":%s,"freq_mhz_digits":%d}',
|
||||
[FFreq, FVfoB, FActiveVfo,
|
||||
FMode, MODE_N[FMode mod 8],
|
||||
FFilterIdx, FFilterBW,
|
||||
@@ -1257,7 +1260,7 @@ begin
|
||||
FAttnIdx,
|
||||
BoolToStr(FTuning, 'true', 'false'),
|
||||
BoolToStr(FDuplex, 'true', 'false'),
|
||||
FCurrentXvtr, XvtrJson
|
||||
FCurrentXvtr, XvtrJson, FFreqMhzDigits
|
||||
], FS);
|
||||
finally
|
||||
FStateLock.Leave;
|
||||
|
||||
Reference in New Issue
Block a user