mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
Add web status bar fields
This commit is contained in:
+60
-8
@@ -284,6 +284,14 @@ type
|
||||
FFwdW: Double;
|
||||
FSWR: Double;
|
||||
FPAMaxPower: Double;
|
||||
FStatusText: string;
|
||||
FBoardText: string;
|
||||
FIPText: string;
|
||||
FSupplyText: string;
|
||||
FPLLText: string;
|
||||
FRXText: string;
|
||||
FTXText: string;
|
||||
FSeqText: string;
|
||||
|
||||
FWebClientActive: Boolean;
|
||||
|
||||
@@ -333,7 +341,9 @@ type
|
||||
VfoB: Double; ActiveVfo: Integer;
|
||||
Transmitting: Boolean; DriveLevel: Integer;
|
||||
AttnIdx: Integer; Tuning: Boolean; Duplex: Boolean;
|
||||
FwdW, SWRV, PAMaxPower: Double);
|
||||
FwdW, SWRV, PAMaxPower: Double;
|
||||
const StatusText, BoardText, IPText, SupplyText, PLLText,
|
||||
RXText, TXText, SeqText: string);
|
||||
|
||||
property WebClientActive: Boolean read FWebClientActive;
|
||||
property FreqMhzDigits: Integer read FFreqMhzDigits write FFreqMhzDigits;
|
||||
@@ -472,6 +482,14 @@ begin
|
||||
FFwdW := 0;
|
||||
FSWR := 1.0;
|
||||
FPAMaxPower := 100.0;
|
||||
FStatusText := 'Disconnected';
|
||||
FBoardText := 'Board --';
|
||||
FIPText := 'IP --';
|
||||
FSupplyText := 'Supply --';
|
||||
FPLLText := 'PLL --';
|
||||
FRXText := 'RX idle';
|
||||
FTXText := 'TX idle';
|
||||
FSeqText := 'SEQ --';
|
||||
FBandIdx := 5;
|
||||
FCurrentXvtr := -1;
|
||||
FFreqMhzDigits := 3;
|
||||
@@ -1406,6 +1424,25 @@ end;
|
||||
Формирование JSON-состояния
|
||||
═══════════════════════════════════════════════════════════════════════════ }
|
||||
|
||||
function JsonEscape(const S: string): string;
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
Result := '';
|
||||
for I := 1 to Length(S) do
|
||||
case S[I] of
|
||||
'\': Result := Result + '\\';
|
||||
'"': Result := Result + '\"';
|
||||
#8: Result := Result + '\b';
|
||||
#9: Result := Result + '\t';
|
||||
#10: Result := Result + '\n';
|
||||
#12: Result := Result + '\f';
|
||||
#13: Result := Result + '\r';
|
||||
else
|
||||
Result := Result + S[I];
|
||||
end;
|
||||
end;
|
||||
|
||||
function TWebServer.BuildStateJson: string;
|
||||
const
|
||||
MODE_N: array[0..7] of string =
|
||||
@@ -1438,10 +1475,12 @@ begin
|
||||
'"wf_agc":%s,"wf_nf":%s,"band_idx":%d,"smeter_dbm":%.1f,' +
|
||||
'"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,' +
|
||||
'"fwd_w":%.1f,"swr":%.2f,"pa_max_power":%.0f,' +
|
||||
'"xvtr_current":%d,"xvtr_bands":%s,"freq_mhz_digits":%d,' +
|
||||
'"fmstep_idx":%d}',
|
||||
'"transmitting":%s,"drive":%d,"attn_idx":%d,"tuning":%s,"dup":%s,' +
|
||||
'"fwd_w":%.1f,"swr":%.2f,"pa_max_power":%.0f,' +
|
||||
'"status_text":"%s","board_text":"%s","ip_text":"%s","supply_text":"%s",' +
|
||||
'"pll_text":"%s","rx_text":"%s","tx_text":"%s","seq_text":"%s",' +
|
||||
'"xvtr_current":%d,"xvtr_bands":%s,"freq_mhz_digits":%d,' +
|
||||
'"fmstep_idx":%d}',
|
||||
[FFreq, FVfoB, FActiveVfo,
|
||||
FMode, MODE_N[FMode mod 8],
|
||||
FFilterIdx, FFilterBW,
|
||||
@@ -1465,8 +1504,11 @@ begin
|
||||
FAttnIdx,
|
||||
BoolToStr(FTuning, 'true', 'false'),
|
||||
BoolToStr(FDuplex, 'true', 'false'),
|
||||
FFwdW, FSWR, FPAMaxPower,
|
||||
FCurrentXvtr, XvtrJson, FFreqMhzDigits,
|
||||
FFwdW, FSWR, FPAMaxPower,
|
||||
JsonEscape(FStatusText), JsonEscape(FBoardText), JsonEscape(FIPText),
|
||||
JsonEscape(FSupplyText), JsonEscape(FPLLText), JsonEscape(FRXText),
|
||||
JsonEscape(FTXText), JsonEscape(FSeqText),
|
||||
FCurrentXvtr, XvtrJson, FFreqMhzDigits,
|
||||
FFMStepIdx
|
||||
], FS);
|
||||
finally
|
||||
@@ -1533,7 +1575,9 @@ procedure TWebServer.PushSpectrum(
|
||||
VfoB: Double; ActiveVfo: Integer;
|
||||
Transmitting: Boolean; DriveLevel: Integer;
|
||||
AttnIdx: Integer; Tuning: Boolean; Duplex: Boolean;
|
||||
FwdW, SWRV, PAMaxPower: Double);
|
||||
FwdW, SWRV, PAMaxPower: Double;
|
||||
const StatusText, BoardText, IPText, SupplyText, PLLText,
|
||||
RXText, TXText, SeqText: string);
|
||||
var N, i: Integer;
|
||||
begin
|
||||
if not FRunning then Exit;
|
||||
@@ -1573,6 +1617,14 @@ begin
|
||||
FFwdW := FwdW;
|
||||
FSWR := SWRV;
|
||||
FPAMaxPower := PAMaxPower;
|
||||
FStatusText := StatusText;
|
||||
FBoardText := BoardText;
|
||||
FIPText := IPText;
|
||||
FSupplyText := SupplyText;
|
||||
FPLLText := PLLText;
|
||||
FRXText := RXText;
|
||||
FTXText := TXText;
|
||||
FSeqText := SeqText;
|
||||
finally
|
||||
FStateLock.Leave;
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user