mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
DUP (display duplex) + ATT on TX
- DUP: локальный режим отображения, при TX данные RX1, поверх рисуется TX-фильтр. Кнопка на левой панели рядом с CTUN. Аппаратной командой не является. Отдельный SetDisplaySourceTX в WDSPEngine, разделение TXMode (data) и TXOverlay (filter band) в SpectrumView. - ATT on TX: 0..31 dB, default 31 (Thetis-style). UI на вкладке Transmit в группе Microphone. Передаётся в DUC Specific bytes 57/58/59 (StepAtten0/1/2). Перепосылается при изменении.
This commit is contained in:
@@ -350,6 +350,10 @@ type
|
||||
procedure SetDriveLevel(Level: Double);
|
||||
procedure SetMicGain(GainDB: Double);
|
||||
procedure SetTXRun(Run: Boolean);
|
||||
// DUP: переключить ИСТОЧНИК пикселей display'а независимо от TX-аудио
|
||||
// (SetTXRun меняет и аудио, и источник; этот метод позволяет вернуть
|
||||
// RX-источник пока TX-аудио продолжает работать).
|
||||
procedure SetDisplaySourceTX(UseTX: Boolean);
|
||||
|
||||
// Расширенное TX управление (применяются мгновенно если канал открыт)
|
||||
procedure SetTXFilterFull(Low, High, NC, MP, Window: Integer);
|
||||
@@ -1502,6 +1506,20 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWDSPEngine.SetDisplaySourceTX(UseTX: Boolean);
|
||||
begin
|
||||
// Тот же сброс позиций, что и в SetTXRun — analyzer-буферы у обоих DispID
|
||||
// независимы, но мы переключаем источник, и старые байты в накапливающем
|
||||
// буфере на новой стороне могут повести себя как «всплеск», если их не
|
||||
// обнулить.
|
||||
FDispPos := 0;
|
||||
FTXDispPos := 0;
|
||||
if UseTX then
|
||||
FActiveDisplayID := TX_DISP_ID
|
||||
else
|
||||
FActiveDisplayID := RX_DISP_ID;
|
||||
end;
|
||||
|
||||
procedure TWDSPEngine.ProcessTXBlock;
|
||||
// Вызывается из TTXDSPThread — обрабатывает один блок FAudioBufSize mic сэмплов
|
||||
// через WDSP TXA, выдаёт FTXOutBufSize IQ пар @ FTXSampleRate в FOnTXIQ callback.
|
||||
|
||||
Reference in New Issue
Block a user