diff --git a/HPSDRNetwork.pas b/HPSDRNetwork.pas index f5aa109..19b8424 100644 --- a/HPSDRNetwork.pas +++ b/HPSDRNetwork.pas @@ -1700,7 +1700,13 @@ begin SendDDCSpecific(Pkt); FCachedDDCSpec := Pkt; FCachedDDCValid := True; - FResendCount := 0; + // ★СЧЁТЧИК ПЕРЕ-ОТПРАВКИ ЗДЕСЬ НЕ СБРАСЫВАЕМ. Окно повторов — сугубо + // СТАРТОВЫЙ костыль (порты 1025/1026 открываются только после Run=1), и + // живёт оно от Run=1. Сброс отсюда превращал его в рецидивирующий: любая + // пере-сборка на живой сессии — вход/выход PureSignal в TX (каждый MOX!), + // добавление пана, смена rate — заводила ЕЩЁ 10 пере-латчей DDC Specific в + // течение 5 секунд. А пере-латч конфига DDC на ходу трогает и ГЛАВНЫЙ + // приёмник: ровно этим уже был получен «мусорный» поток на доп. панах. end; procedure THPSDRNetwork.SetPanDDC(DDCIdx: Integer; Enabled: Boolean; @@ -1983,7 +1989,11 @@ procedure THPSDRNetwork.SetRunAndFreq(Run: Boolean; DDC0FreqHz, DUCFreqHz: Doubl begin // При Run=1 аппаратура сбрасывает счётчик HP-последовательности. // Синхронизируем свой счётчик чтобы не получить SEQ ERROR на первом пакете. - if Run then FSeqHP := 0; + if Run then + begin + FSeqHP := 0; + FResendCount := 0; // окно повторов Specific-пакетов — только со старта + end; FRunning := Run; FCurrentRXFreq := DDC0FreqHz; FCurrentTXFreq := DUCFreqHz;