mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
feat: pluto telemetry — show both temperatures (transceiver + Zynq SoC)
Pluto exposes two temperature sensors: the AD9361 transceiver (ad9361-phy temp0/input, milli-°C) and the Zynq SoC/FPGA (xadc temp0, raw+offset+scale → C = (raw+offset)*scale/1000). Only the former was read. Now both are read and shown as "Temp 37/53C" (chip/SoC) in the desktop status bar and web UI. - ReadTelemetry gains an out SocTempC param (base + Pluto override); Pluto reads xadc via the IIO context. - Controller stores FLastPlutoSocTempC; SoC temp validated with a plausibility window (no slew-limit — stable local sensor, unlike the AD9361 sensor that spikes during mid-conversion). - Status formatting handles one or both temps in MainForm and WebAdapter. - Widen desktop status-bar field 3 (150→190) so both temps + RSSI fit; web layout unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+9
-7
@@ -154,9 +154,10 @@ type
|
||||
procedure SetSpeakerAudio(AEnabled: Boolean); virtual;
|
||||
|
||||
// Аппаратная телеметрия, не приходящая в потоке (опрашивается контроллером).
|
||||
// Pluto/AD936x: температура чипа (°C) и RSSI приёмника (дБ). HPSDR — нет такой
|
||||
// (использует HP-status), возвращает False. Недоступные значения = TELEMETRY_NONE.
|
||||
function ReadTelemetry(out TempC, RSSIdB: Double): Boolean; virtual;
|
||||
// Pluto/AD936x: температура трансивера (TempC) и Zynq SoC/FPGA (SocTempC) в °C,
|
||||
// RSSI приёмника (дБ). HPSDR — нет такой (использует HP-status), возвращает False.
|
||||
// Недоступные значения = TELEMETRY_NONE.
|
||||
function ReadTelemetry(out TempC, SocTempC, RSSIdB: Double): Boolean; virtual;
|
||||
|
||||
// ---- Свойства состояния (полиморфные через виртуальные геттеры) ----
|
||||
property Connected: Boolean read GetConnected;
|
||||
@@ -246,11 +247,12 @@ procedure TRadioBackend.SetSpeakerAudio(AEnabled: Boolean);
|
||||
begin
|
||||
end;
|
||||
|
||||
function TRadioBackend.ReadTelemetry(out TempC, RSSIdB: Double): Boolean;
|
||||
function TRadioBackend.ReadTelemetry(out TempC, SocTempC, RSSIdB: Double): Boolean;
|
||||
begin
|
||||
TempC := TELEMETRY_NONE;
|
||||
RSSIdB := TELEMETRY_NONE;
|
||||
Result := False;
|
||||
TempC := TELEMETRY_NONE;
|
||||
SocTempC := TELEMETRY_NONE;
|
||||
RSSIdB := TELEMETRY_NONE;
|
||||
Result := False;
|
||||
end;
|
||||
|
||||
procedure TRadioBackend.SetTxAtten(Db: Double);
|
||||
|
||||
Reference in New Issue
Block a user