fix(tx): enable protocol 2 CIC compensation filter

This commit is contained in:
2026-07-17 18:51:07 +03:00
parent 6197ed0aee
commit 6a9aebc23c
2 changed files with 13 additions and 0 deletions
+4
View File
@@ -4147,6 +4147,10 @@ end;
procedure TRadioController.ApplyTXSettingsToDSP; procedure TRadioController.ApplyTXSettingsToDSP;
begin begin
if not FWDSPReady then Exit; if not FWDSPReady then Exit;
// Thetis держит CFIR постоянно включённым для openHPSDR Protocol 2:
// он компенсирует АЧХ FPGA CIC-интерполятора TX. Pluto этого фильтра не
// имеет, поэтому при смене бэкенда явно выключаем его.
FDSPEngine.SetTXCFIR(BackendCaps.Kind = bkHPSDR);
// Mic source — выставляем значение по умолчанию для MOX-кнопки; // Mic source — выставляем значение по умолчанию для MOX-кнопки;
// при реальном PTT SetMOX скорректирует источник. // при реальном PTT SetMOX скорректирует источник.
FDSPEngine.SetTXMicSource(DefaultMicSource); FDSPEngine.SetTXMicSource(DefaultMicSource);
+9
View File
@@ -647,6 +647,9 @@ type
// Тона Freq1/Freq2 Гц (для LSB/CWL/DIGL знак инвертируется), амплитуды // Тона Freq1/Freq2 Гц (для LSB/CWL/DIGL знак инвертируется), амплитуды
// по 0.49 (сумма чуть ниже полной шкалы, как Thetis/pihpsdr). // по 0.49 (сумма чуть ниже полной шкалы, как Thetis/pihpsdr).
procedure SetTXTwoTone(Enabled: Boolean; Freq1, Freq2: Double); procedure SetTXTwoTone(Enabled: Boolean; Freq1, Freq2: Double);
// Protocol 2: компенсирующий FIR перед FPGA CIC-интерполятором TX.
// Для openHPSDR P2 всегда включён; для остальных бэкендов выключен.
procedure SetTXCFIR(Enabled: Boolean);
// ---- PureSignal (WDSP calcc на TXA_CHAN) ---- // ---- PureSignal (WDSP calcc на TXA_CHAN) ----
// Армирование подачи feedback в pscc (кнопка PS). Сама калибровка // Армирование подачи feedback в pscc (кнопка PS). Сама калибровка
@@ -3321,6 +3324,12 @@ begin
SetTXAPostGenRun(TXA_CHAN, 0); SetTXAPostGenRun(TXA_CHAN, 0);
end; end;
procedure TWDSPEngine.SetTXCFIR(Enabled: Boolean);
begin
if not FInitialized then Exit;
SetTXACFIRRun(TXA_CHAN, Ord(Enabled));
end;
procedure TWDSPEngine.SetDisplaySourceTX(UseTX: Boolean); procedure TWDSPEngine.SetDisplaySourceTX(UseTX: Boolean);
begin begin
// Тот же сброс позиций, что и в SetTXRun — analyzer-буферы у обоих DispID // Тот же сброс позиций, что и в SetTXRun — analyzer-буферы у обоих DispID