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:
2026-06-23 19:10:07 +03:00
co-authored by Claude Opus 4.8
parent 63c8c91152
commit 6375092741
6 changed files with 79 additions and 32 deletions
+9 -3
View File
@@ -460,10 +460,16 @@ begin
if FController.IsPluto then
begin
// Pluto: нет PA/supply — температура чипа + RSSI приёмника (telemetry-поле).
// Pluto: нет PA/supply — температуры (трансивер/SoC) + RSSI (telemetry-поле).
// Temp X/YC: X — трансивер AD9361, Y — Zynq SoC/FPGA (xadc).
SupplyText := '';
if FController.FLastPlutoTempC > TELEMETRY_NONE then
SupplyText := Format('Temp %.0fC', [FController.FLastPlutoTempC]);
if (FController.FLastPlutoTempC > TELEMETRY_NONE)
and (FController.FLastPlutoSocTempC > TELEMETRY_NONE) then
SupplyText := Format('Temp %.0f/%.0fC', [FController.FLastPlutoTempC, FController.FLastPlutoSocTempC])
else if FController.FLastPlutoTempC > TELEMETRY_NONE then
SupplyText := Format('Temp %.0fC', [FController.FLastPlutoTempC])
else if FController.FLastPlutoSocTempC > TELEMETRY_NONE then
SupplyText := Format('Temp %.0fC', [FController.FLastPlutoSocTempC]);
if FController.FLastPlutoRSSIdB > TELEMETRY_NONE then
begin
if SupplyText <> '' then SupplyText := SupplyText + ' ';