mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
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:
+5
-17
@@ -40,7 +40,7 @@ uses
|
||||
PanZoomBar, PanafallPanel, PanDisplayPopup, PureSignalPopup, FlatPopupMenu,
|
||||
WidebandView,
|
||||
StatusBar,
|
||||
PlatformUtils, TxHealth,
|
||||
PlatformUtils,
|
||||
RadioModes,
|
||||
WinFirewall,
|
||||
BoardUtils, WisdomBuilder, UISync,
|
||||
@@ -3822,14 +3822,9 @@ var
|
||||
PeakTarget, MinTarget: Double;
|
||||
PeakDiff, MinDiff: Double;
|
||||
PeakAlpha, MinAlpha: Double;
|
||||
TxhSuffix: string;
|
||||
begin
|
||||
// Затухание спотов не зависит от того, крутится ли приём.
|
||||
ServiceDXCluster;
|
||||
// Детектор голодания очереди TX: сводки за прошедшие передачи → журнал.
|
||||
// ★Это ЕДИНСТВЕННОЕ место, где прибор трогает диск, и оно намеренно вынесено
|
||||
// из тракта передачи в таймер UI (см. TxHealth.pas).
|
||||
TxHealthService;
|
||||
|
||||
if not FController.FRunning then
|
||||
begin
|
||||
@@ -3882,24 +3877,17 @@ begin
|
||||
|
||||
if FController.FWDSPReady then
|
||||
begin
|
||||
// Опасные простои очереди TX за сеанс: столько раз очередь пустела дольше
|
||||
// подушки отправителя, то есть столько раз в эфир могла уйти голая несущая.
|
||||
// Ноль — значит всплеск, если он был виден, родился НЕ в нашем тракте.
|
||||
if TxHealthDangerTotal > 0 then
|
||||
TxhSuffix := Format(' ·сухо %d', [TxHealthDangerTotal])
|
||||
else
|
||||
TxhSuffix := '';
|
||||
if FController.FTransmitting then
|
||||
begin
|
||||
case FController.FDSPEngine.TXMicSource of
|
||||
txmsSoundCard: SetStatusText(5, 'TX sound card' + TxhSuffix);
|
||||
txmsWeb: SetStatusText(5, 'TX web mic' + TxhSuffix);
|
||||
txmsSoundCard: SetStatusText(5, 'TX sound card');
|
||||
txmsWeb: SetStatusText(5, 'TX web mic');
|
||||
else
|
||||
SetStatusText(5, 'TX radio mic' + TxhSuffix);
|
||||
SetStatusText(5, 'TX radio mic');
|
||||
end;
|
||||
end
|
||||
else
|
||||
SetStatusText(5, 'TX idle' + TxhSuffix);
|
||||
SetStatusText(5, 'TX idle');
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user