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
+2 -1
View File
@@ -34,7 +34,8 @@ const
SEQ_MIN_W = 90;
STATUS_ORDER: array[0..7] of Integer = (2, 0, 1, 3, 7, 4, 5, 6);
// поле 7: PLL (openHPSDR) ИЛИ статус QO-100 beacon lock (Pluto) — шире под "BCN LOCK …".
BASE_W: array[0..7] of Integer = (280, 160, 170, 150, 190, 180, 130, 200);
// поле 3: Supply (HPSDR) ИЛИ две температуры Pluto "Temp 37/53C RSSI -89dB" — шире.
BASE_W: array[0..7] of Integer = (280, 160, 170, 190, 190, 180, 130, 200);
INITIAL_TEXT: array[0..7] of string = (
'Board --',
'IP --',