mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
feat(slices): этап 3.1 — per-DDC бэкенд HPSDR (пан-DDC) + фикс Saturn в StartRunning
- TBackendCaps: MaxPans/IndependentPanFreq (HPSDR 4/True, Pluto 1/False); SetPanDDC/SetPanDDCFreq — виртуальные no-op в TRadioBackend - HPSDRNetwork: ConfigureDDCs → кэш главного DDC + RebuildDDCSpecific (главный + активные пан-DDC, каждый со своим rate/ADC); SendFullHP пишет частотные слова всех активных пан-DDC; хелпер DDCBaseIndex; сброс пан-состояния в Connect - RadioController: MAX_PANS=4, PAN_DDC_RATES 192/384/768; AddPanDDC/ RemovePanDDC/SetPanDDCFreq/PanDDC* (аллокатор hw-индексов от FActiveDDC+1, обратный маппинг FDDCPanMap); OnDDCIQ роутит пан-DDC → PushPanIQ; паны гасятся в StopRunning, пул сбрасывается в StartRunning - WDSPEngine: PushPanIQ — заглушка-дроп (аккумулятор/анализатор — этап 3.2) - фикс: StartRunning не включал Saturn (BoardType 10) в список плат с DDCBase=2 — на Saturn гейт FActiveDDC ждал бы IQ с DDC0 - doc/SLICES_PLAN.md: статус 3.1 + B1 проверена на экране Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -43,6 +43,12 @@ type
|
||||
HasHWGain: Boolean; // manual gain / hw-AGC (Pluto)
|
||||
HasRFBandwidth: Boolean; // настройка аналоговой RF-полосы (Pluto)
|
||||
HasFullDuplex: Boolean; // одновременный RX+TX (Pluto / QO-100)
|
||||
// Панадаптеры (этап 3): сколько всего панов может показать бэкенд
|
||||
// (1 = только главный; HPSDR P2 = главный + доп. DDC). Паны N>0 живут
|
||||
// на своих аппаратных DDC (SetPanDDC*).
|
||||
MaxPans: Integer;
|
||||
// False = частоты панов связаны с паном 0 (Pluto+ 2r2t: общий RX LO).
|
||||
IndependentPanFreq: Boolean;
|
||||
MinSampleRate: Integer;
|
||||
RatePresets: TBackendRateArray; // пресеты для SampleRateOverlay
|
||||
MinFreqHz: Double;
|
||||
@@ -118,6 +124,14 @@ type
|
||||
DitherEnabled: Boolean = True;
|
||||
RandomEnabled: Boolean = True); virtual; abstract;
|
||||
|
||||
// ---- Панадаптеры на доп. аппаратных DDC (этап 3, только HPSDR) ----
|
||||
// SetPanDDC включает/выключает и конфигурирует DDC с hw-индексом DDCIdx
|
||||
// (rate/ADC → DDC Specific, частота → High Priority). SetPanDDCFreq —
|
||||
// только ретюн (дёшево, без реконфига DDC). База — no-op (Caps.MaxPans=1).
|
||||
procedure SetPanDDC(DDCIdx: Integer; Enabled: Boolean; FreqHz: Double;
|
||||
RateKHz: Word; ADCSource: Byte); virtual;
|
||||
procedure SetPanDDCFreq(DDCIdx: Integer; FreqHz: Double); virtual;
|
||||
|
||||
// ---- Частота / drive / TX-состояние ----
|
||||
procedure SetRunAndFreq(Run: Boolean; DDC0FreqHz, DUCFreqHz: Double;
|
||||
DriveLevel: Byte = 100); virtual; abstract;
|
||||
@@ -268,4 +282,13 @@ procedure TRadioBackend.SetTxAtten(Db: Double);
|
||||
begin
|
||||
end;
|
||||
|
||||
procedure TRadioBackend.SetPanDDC(DDCIdx: Integer; Enabled: Boolean;
|
||||
FreqHz: Double; RateKHz: Word; ADCSource: Byte);
|
||||
begin
|
||||
end;
|
||||
|
||||
procedure TRadioBackend.SetPanDDCFreq(DDCIdx: Integer; FreqHz: Double);
|
||||
begin
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user