feat: Pluto board name + hardware telemetry in status bar

- Status bar / web now show Pluto/LibreSDR model + serial instead of
  "Unknown Board" (BoardDisplayName in controller; UI just renders it).
- Field 3 shows AD936x chip temperature + RX RSSI for Pluto (no PA →
  Supply only for openHPSDR). Polled via backend.ReadTelemetry (~2 Hz),
  filtered for sensor glitches (plausibility window + slew-limit, with
  anti-stick) — fixes rare bogus -15°C readings.
- Add libiio binding iio_channel_attr_read_double.
- Remove stale root pluto_integration.MD (superseded by
  doc/PLUTO_INTEGRATION_PLAN.md).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 11:31:27 +03:00
co-authored by Claude Opus 4.8
parent 4d253909ca
commit 1321e415f7
8 changed files with 199 additions and 522 deletions
+16 -3
View File
@@ -19,7 +19,7 @@ interface
uses
Classes, SysUtils,
RadioController, WebServer, WDSPEngine, HPSDRNetwork, HPSDRProtocol, BoardUtils, Settings;
RadioController, WebServer, WDSPEngine, HPSDRNetwork, HPSDRProtocol, RadioBackend, BoardUtils, Settings;
type
// UI/оркестрационные операции, которые адаптер дёргает у хозяина (пока не
@@ -394,7 +394,7 @@ begin
begin
if FController.FRunning then StatusText := 'Running'
else StatusText := 'Connected';
BoardText := 'Board: ' + BoardTypeName(FController.FNetwork.Device.BoardType);
BoardText := 'Board: ' + FController.BoardDisplayName;
IPText := 'IP: ' + FController.FNetwork.Device.IPAddress;
end
else
@@ -414,7 +414,20 @@ begin
if FController.FLastPLLLock then PLLText := 'PLL OK'
else PLLText := 'PLL?';
if not BoardSupportsSupplyVoltage(FController.FNetwork.Device.BoardType) then
if FController.IsPluto then
begin
// Pluto: нет PA/supply — температура чипа + RSSI приёмника (telemetry-поле).
SupplyText := '';
if FController.FLastPlutoTempC > TELEMETRY_NONE then
SupplyText := Format('Temp %.0fC', [FController.FLastPlutoTempC]);
if FController.FLastPlutoRSSIdB > TELEMETRY_NONE then
begin
if SupplyText <> '' then SupplyText := SupplyText + ' ';
SupplyText := SupplyText + Format('RSSI %.0fdB', [FController.FLastPlutoRSSIdB]);
end;
if SupplyText = '' then SupplyText := 'Pluto --';
end
else if not BoardSupportsSupplyVoltage(FController.FNetwork.Device.BoardType) then
SupplyText := 'Supply n/a'
else if FController.FLastSupplyV >= 0 then
begin