chore(tx): детектор голодания снят — всплесков не видно, вернём при нужде

Прибор из b173b7f отработал своё на этом заходе: всплески не появляются, и
держать его в тракте нет причин. Снято ровно то, что тот коммит поставил:
юнит TxHealth.pas, замеры простоев в отправителе DUC (обе ветки), публикация
контекста пейсинга из планировщика TCI, счёт бита HPS_FIFO_EMPTY, вызовы
TxHealthService в таймере UI и цикле демона, индикатор «·сухо N» в статусной
строке и секция G стенда.

Вернуть — реверсом этого коммита; опора детектора и правило его устройства
(в тракте передачи ничего, кроме записи в память) записаны в
test/hpsdr/README.md, чтобы не восстанавливать рассуждение заново.

Проверено: test/tci 262/262, test/cat 50/50, GUI (--ws=qt6) и демон собираются.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bkwwyj7xVRrqnSVEseTRfV
This commit is contained in:
2026-08-24 19:25:57 +03:00
co-authored by Claude Opus 5
parent b173b7f542
commit 867da5921e
8 changed files with 30 additions and 553 deletions
+1 -7
View File
@@ -44,7 +44,7 @@ interface
uses
Classes, SysUtils, DateUtils, Math, SyncObjs,
RadioController, RadioBackend, WDSPEngine, Settings, PlatformUtils,
DXSpotStore, TCIProtocol, TCIServer, TCIStreams, TxHealth;
DXSpotStore, TCIProtocol, TCIServer, TCIStreams;
const
// ★Приёмник TCI: 0 — главный тракт (каналы A/B = VFO A/B), N — слайс СЛОТА
@@ -3997,12 +3997,6 @@ begin
TxNoteRequest(NowUs);
Inc(Sent);
end;
// Снимок пейсинга для детектора голодания: поток отправителя DUC приложит
// его к очередному опасному простою и тем ответит, чей это простой —
// аванса, зернистости клиента или планировщика. Простые записи, без лока и
// без ввода-вывода (см. TxHealth.pas).
TxHealthPublishTci(FTxLead, Round(FTxOwed), Round(FTxInFlight), FTxQuantum,
Integer(PeriodUs), Round(FTxGapUs));
finally
FTxLock.Leave;
end;