mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
Fix AGC lines not updating on spectrum
Three params were never synced to FSpecView after FormCreate: - WDSPReady: now set every timer tick so the draw branch (real WDSP thresh/hang vs. static AGCTop) is always correct - AGCThresh/AGCHangLevel: synced from FDSPEngine after UpdateAGCLines in SpectrumTimerTick - AGCTop: synced in TrkAGCChange, RestoreBand and DoConnectDevice Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+7
-3
@@ -884,6 +884,7 @@ begin
|
||||
FDSPEngine.SetAGCTop(FAGCTop);
|
||||
FDSPEngine.SetAGC(TWDSPAGCMode(FAGCMode), 50.0);
|
||||
end;
|
||||
FSpecView.AGCTop := FAGCTop;
|
||||
|
||||
// --- CTUN ---
|
||||
FCTun := B.CTun;
|
||||
@@ -2140,9 +2141,12 @@ begin
|
||||
if FWDSPReady then
|
||||
begin
|
||||
FLastSMeter := FDSPEngine.GetSMeterDBm;
|
||||
FDSPEngine.SetSpectrumWidth(FSpectrumWidth); // актуальная ширина для SetAGC/SetAGCTop
|
||||
FDSPEngine.SetSpectrumWidth(FSpectrumWidth);
|
||||
FDSPEngine.UpdateAGCLines(FSpectrumWidth);
|
||||
FSpecView.AGCThresh := FDSPEngine.AGCThresh;
|
||||
FSpecView.AGCHangLevel := FDSPEngine.AGCHangLevel;
|
||||
end;
|
||||
FSpecView.WDSPReady := FWDSPReady;
|
||||
// Обновляем оверлей если видим
|
||||
if Assigned(FVfoOverlay) and FVfoOverlay.Visible then
|
||||
begin
|
||||
@@ -2815,8 +2819,8 @@ begin
|
||||
// ChangeSampleRate пересоздаёт WDSP-канал — восстанавливаем все настройки
|
||||
FDSPEngine.SetAGCTop(FAGCTop);
|
||||
FDSPEngine.SetAGC(TWDSPAGCMode(FAGCMode), 50.0);
|
||||
// SetAGC вызывает UpdateAGCLines внутри — линии на спектре обновятся
|
||||
end;
|
||||
FSpecView.AGCTop := FAGCTop;
|
||||
|
||||
// DUC specific
|
||||
FillChar(DUCPkt, SizeOf(DUCPkt), 0);
|
||||
@@ -4415,8 +4419,8 @@ begin
|
||||
FDSPEngine.SetAGCTop(FAGCTop);
|
||||
FDSPEngine.SetAGC(TWDSPAGCMode(FAGCMode), 50.0);
|
||||
end;
|
||||
// Обновляем кэш диапазона
|
||||
FBandCache[FCurrentBand].AGCTop := FAGCTop;
|
||||
FSpecView.AGCTop := FAGCTop;
|
||||
FSpecView.DrawSpectrum;
|
||||
PbSpectrum.Invalidate;
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user