TUN button — Thetis-style тон через WDSP PostGen

- BtnTUN рядом с MOX. Включает SetTXAPostGenRun(TXA, 1) с тоном
  (mode=0, mag=1.0, freq из настроек) и активирует MOX. PTT/HW
  игнорируются во время tune.
- Drive в режиме TUN использует FTXSettings.TUNLevel вместо слайдера,
  per-band калибровка FPABandCal применяется одинаково.
- Settings → Transmit → Tune (TUN): TUNLevel 0..100% (def 10),
  TUNFreq 100..5000 Hz (def 750). Live-обновление во время tune.
This commit is contained in:
2026-05-06 19:16:27 +03:00
parent 88687b4e70
commit 006cf772b8
4 changed files with 145 additions and 11 deletions
+16
View File
@@ -354,6 +354,9 @@ type
// (SetTXRun меняет и аудио, и источник; этот метод позволяет вернуть
// RX-источник пока TX-аудио продолжает работать).
procedure SetDisplaySourceTX(UseTX: Boolean);
// TUN: WDSP TXA PostGen — гонит чистый тон в DSP-цепь после всей
// обработки. Mag — амплитуда в [0..1], Freq — Hz (audio).
procedure SetTXTone(Enabled: Boolean; FreqHz, Mag: Double);
// Расширенное TX управление (применяются мгновенно если канал открыт)
procedure SetTXFilterFull(Low, High, NC, MP, Window: Integer);
@@ -1506,6 +1509,19 @@ begin
end;
end;
procedure TWDSPEngine.SetTXTone(Enabled: Boolean; FreqHz, Mag: Double);
begin
if not FInitialized then Exit;
if Enabled then
begin
SetTXAPostGenMode(TXA_CHAN, 0); // 0 = tone
SetTXAPostGenToneFreq(TXA_CHAN, FreqHz);
SetTXAPostGenToneMag(TXA_CHAN, Max(0.0, Min(1.0, Mag)));
SetTXAPostGenRun(TXA_CHAN, 1);
end else
SetTXAPostGenRun(TXA_CHAN, 0);
end;
procedure TWDSPEngine.SetDisplaySourceTX(UseTX: Boolean);
begin
// Тот же сброс позиций, что и в SetTXRun — analyzer-буферы у обоих DispID