Add web status bar fields

This commit is contained in:
2026-05-21 21:37:25 +03:00
parent 3bf8c1c162
commit dede74d0a5
3 changed files with 151 additions and 14 deletions
+67 -1
View File
@@ -2943,6 +2943,8 @@ procedure TMainForm.SpectrumTimerTick(Sender: TObject);
var
NowTick: QWord;
ElapsedTick: QWord;
WebStatusText, WebBoardText, WebIPText, WebSupplyText: string;
WebPLLText, WebRXText, WebTXText, WebSeqText: string;
begin
// Синхронизируем размеры если размер панели изменился (после ресайза).
// Важно: проверяем только видимые панели — когда спектр скрыт,
@@ -3072,6 +3074,67 @@ begin
// Пушим текущее состояние в веб-клиенты (если есть)
if Assigned(FWebServer) then
begin
if FNetwork.Connected then
begin
if FRunning then
WebStatusText := 'Running'
else
WebStatusText := 'Connected';
WebBoardText := 'Board: ' + BoardTypeName(FNetwork.Device.BoardType);
WebIPText := 'IP: ' + FNetwork.Device.IPAddress;
end
else
begin
WebStatusText := 'Disconnected';
WebBoardText := 'Board --';
WebIPText := 'IP --';
end;
if not FRunning then
begin
WebSupplyText := 'Supply --';
WebPLLText := 'PLL --';
end
else
begin
if FLastPLLLock then
WebPLLText := 'PLL OK'
else
WebPLLText := 'PLL?';
if not BoardSupportsSupplyVoltage(FNetwork.Device.BoardType) then
WebSupplyText := 'Supply n/a'
else if FLastSupplyV >= 0 then
begin
if FLastSupplyA >= 0 then
WebSupplyText := Format('Supply %.1fV %.1fA', [FLastSupplyV, FLastSupplyA])
else
WebSupplyText := Format('Supply %.1fV', [FLastSupplyV]);
end
else
WebSupplyText := 'Supply --';
end;
if FRunning then
WebRXText := 'RX running'
else
WebRXText := 'RX idle';
if FTuning then
WebTXText := 'TX tune'
else if FTransmitting then
WebTXText := 'TX active'
else
WebTXText := 'TX idle';
if FSeqErrorCount > 0 then
WebSeqText := Format('SEQ ERR DDC%d', [FLastSeqErrorDDC])
else if FRunning then
WebSeqText := 'SEQ OK'
else
WebSeqText := 'SEQ --';
FWebServer.PushSpectrum(
FSpectrumBuf, 1024,
FWaterfallBuf,
@@ -3087,7 +3150,10 @@ begin
FVfoB, FActiveVfo,
FTransmitting, TrkDrive.Position,
FAtten, FTuning, FDisplayDuplex,
FLastFwdW, FLastSWR, FPAMaxPower);
FLastFwdW, FLastSWR, FPAMaxPower,
WebStatusText, WebBoardText, WebIPText, WebSupplyText,
WebPLLText, WebRXText, WebTXText, WebSeqText);
end;
end;
// ===========================================================================