fix HW PTT release

This commit is contained in:
2026-05-19 17:11:10 +03:00
parent 922d5e20b2
commit 1016fa7a05
+23 -5
View File
@@ -226,7 +226,8 @@ type
// TUN: режим тоновой подстройки. WDSP TXA PostGen генерирует чистый // TUN: режим тоновой подстройки. WDSP TXA PostGen генерирует чистый
// тон, Drive подменяется на FTXSettings.TUNLevel (через Cal[band]). // тон, Drive подменяется на FTXSettings.TUNLevel (через Cal[band]).
FTuning: Boolean; FTuning: Boolean;
FHWPTTActive: Boolean; // True = hardware PTT нажата FHWPTTActive: Boolean; // True = hardware PTT нажата
FHWPTTStartedTX: Boolean; // True = TX был включён именно через HWPTT
FMuted: Boolean; FMuted: Boolean;
FVolume: Integer; FVolume: Integer;
FAtten: Integer; // RX step attenuator index: 0=0dB 1=10dB 2=20dB FAtten: Integer; // RX step attenuator index: 0=0dB 1=10dB 2=20dB
@@ -3202,10 +3203,27 @@ begin
if HWPTT <> FHWPTTActive then if HWPTT <> FHWPTTActive then
begin begin
FHWPTTActive := HWPTT; FHWPTTActive := HWPTT;
// Hardware PTT игнорируется во время TUN; иначе включает/выключает передачу if not FTuning then
// только если кнопка MOX не нажата (приоритет за UI). begin
if (not FTuning) and (not BtnMOX.Active) then if HWPTT then
ApplyMOX(HWPTT); begin
// Press: не перекрываем ручной MOX; запоминаем что мы включили TX.
if not BtnMOX.Active then
begin
ApplyMOX(True);
FHWPTTStartedTX := True;
end;
end else
begin
// Release: выключаем TX только если он был включён через HWPTT.
// Нельзя проверять BtnMOX.Active — ApplyMOX(True) сам его выставляет.
if FHWPTTStartedTX then
begin
FHWPTTStartedTX := False;
ApplyMOX(False);
end;
end;
end;
end; end;
end; end;