mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:27:33 +00:00
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:
@@ -73,6 +73,13 @@ type
|
||||
PRadioDevice = ^TRadioDevice;
|
||||
TRadioDeviceArray = array of TRadioDevice;
|
||||
|
||||
const
|
||||
// Признак «значение телеметрии недоступно» (ReadTelemetry). Заведомо вне
|
||||
// физического диапазона температур/RSSI.
|
||||
TELEMETRY_NONE = -1.0E9;
|
||||
|
||||
type
|
||||
|
||||
// Колбэки данных (вызываются из рабочих потоков бэкенда).
|
||||
TOnDeviceFound = procedure(const Dev: TRadioDevice) of object;
|
||||
TOnDDCIQPacket = procedure(DDCIndex: Integer;
|
||||
@@ -143,6 +150,11 @@ type
|
||||
procedure SendSpeakerAudio(const Left, Right: array of Single; Count: Integer); virtual;
|
||||
procedure SetSpeakerAudio(AEnabled: Boolean); virtual;
|
||||
|
||||
// Аппаратная телеметрия, не приходящая в потоке (опрашивается контроллером).
|
||||
// Pluto/AD936x: температура чипа (°C) и RSSI приёмника (дБ). HPSDR — нет такой
|
||||
// (использует HP-status), возвращает False. Недоступные значения = TELEMETRY_NONE.
|
||||
function ReadTelemetry(out TempC, RSSIdB: Double): Boolean; virtual;
|
||||
|
||||
// ---- Свойства состояния (полиморфные через виртуальные геттеры) ----
|
||||
property Connected: Boolean read GetConnected;
|
||||
property Running: Boolean read GetRunning;
|
||||
@@ -231,4 +243,11 @@ procedure TRadioBackend.SetSpeakerAudio(AEnabled: Boolean);
|
||||
begin
|
||||
end;
|
||||
|
||||
function TRadioBackend.ReadTelemetry(out TempC, RSSIdB: Double): Boolean;
|
||||
begin
|
||||
TempC := TELEMETRY_NONE;
|
||||
RSSIdB := TELEMETRY_NONE;
|
||||
Result := False;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user