mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
chore: remove QO-100 beacon decoder debug instrumentation
After successful on-air validation, drop the temporary diagnostics: - IQ baseband dump to ~/ewsdr_beacon_iq.f32 (FDbgStream/DbgWrite2). - BeaconLog file logger (~/ewsdr_beacon.log) and per-second STATE / AIM lines. - Dead Gardner timing fields (FMidI/FMidQ/FHalf/FPrevI/FPrevQ), superseded by the ML signal×slope TED. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -202,8 +202,6 @@ type
|
||||
FBeaconDecHz: Double; // АБСОЛЮТНАЯ display-частота наведения декодера
|
||||
// (узкий фильтр, ставится кликом); 0 = центр/DC
|
||||
FBeaconDecInvert: Boolean; // зеркальный baseband (QO-100/LNB) — деф. True
|
||||
FBeaconLogTick: Integer; // троттл периодического лога состояния декодера
|
||||
FBeaconLogScope: TBeaconScope; // буфер снимка для лога (не аллоцируем в контуре)
|
||||
|
||||
// ---- Аудио / TX ----
|
||||
FVolume: Integer;
|
||||
@@ -485,7 +483,6 @@ type
|
||||
// QO-100 beacon lock — стабилизация дрейфа LNB по опорному маяку.
|
||||
procedure SetBeaconLock(On_: Boolean);
|
||||
procedure ServiceBeaconLock; // одна итерация контура (MeterTimer @10 Гц)
|
||||
procedure BeaconLog(const Msg: string); // диагностика декодера → HOME/ewsdr_beacon.log
|
||||
procedure SetBeaconRefHz(Hz: Double); // опорная частота маяка (downlink)
|
||||
procedure BeaconSeedAtHz(DisplayHz: Double); // пользователь указал маяк кликом
|
||||
function BeaconState: TBeaconState;
|
||||
@@ -1252,29 +1249,6 @@ begin
|
||||
FBeaconDec.SetOffsetHz(FBeaconDecHz - FCenterFreq) // наведённый узкий фильтр
|
||||
else
|
||||
FBeaconDec.SetOffsetHz(0); // иначе — центр/DC
|
||||
|
||||
// Периодический снимок состояния (раз в ~1с при @10Гц-таймере) в лог-файл.
|
||||
Inc(FBeaconLogTick);
|
||||
if FBeaconLogTick >= 10 then
|
||||
begin
|
||||
FBeaconLogTick := 0;
|
||||
GetBeaconScope(FBeaconLogScope);
|
||||
BeaconLog(Format(
|
||||
'STATE decHz=%.1f center=%.1f off=%.1f | Fs=%.0f Fdec=%.0f sps=%.1f | ' +
|
||||
'resid=%.1f prom=%.1f snr=%.1f baud=%.1f decRMS=%.5f symMag=%.5f ' +
|
||||
'timErr=%.5f wsym=%.4f carHz=%.1f hold=%d | CAR=%d SYM=%d invert=%d lockOn=%d locked=%d ' +
|
||||
'| manPh=%d m0=%.5f m1=%.5f frames=%d rsErr=%d',
|
||||
[FBeaconDecHz, FCenterFreq, FBeaconLogScope.OffsetHz,
|
||||
FBeaconLogScope.FsHz, FBeaconLogScope.FdecHz, FBeaconLogScope.Sps,
|
||||
FBeaconLogScope.ResidHz, FBeaconLogScope.CarProm, FBeaconLogScope.SNRdB,
|
||||
FBeaconLogScope.SymRate, FBeaconLogScope.DecRMS, FBeaconLogScope.SymMag,
|
||||
FBeaconLogScope.TimErr, FBeaconLogScope.Wsym, FBeaconLogScope.CarFreqHz,
|
||||
FBeaconLogScope.LockHold,
|
||||
Ord(FBeaconLogScope.CarrierLock), Ord(FBeaconLogScope.SymbolLock),
|
||||
Ord(FBeaconDecInvert), Ord(FBeaconLockOn), Ord(FBeaconLocked),
|
||||
FBeaconLogScope.ManPhase, FBeaconLogScope.ManM0, FBeaconLogScope.ManM1,
|
||||
FBeaconLogScope.Frames, FBeaconLogScope.LastRSErr]));
|
||||
end;
|
||||
end;
|
||||
|
||||
if not FBeaconLockOn then Exit;
|
||||
@@ -1417,34 +1391,9 @@ begin
|
||||
FBeaconDec.SetOffsetHz(FBeaconDecHz - FCenterFreq);
|
||||
FBeaconDec.Reseed;
|
||||
end;
|
||||
BeaconLog(Format('AIM click: DisplayHz=%.1f CenterFreq=%.1f -> offset=%.1f invert=%d span=%.0f',
|
||||
[DisplayHz, FCenterFreq, FBeaconDecHz - FCenterFreq, Ord(FBeaconDecInvert), FSpanHz]));
|
||||
Changed(rfBeaconLock);
|
||||
end;
|
||||
|
||||
procedure TRadioController.BeaconLog(const Msg: string);
|
||||
// Диагностика декодера маяка: дописываем строку в HOME/ewsdr_beacon.log.
|
||||
// Дёшево и кросс-платформенно; файл потом скидывается на разбор.
|
||||
var
|
||||
f: TextFile;
|
||||
path, home: string;
|
||||
begin
|
||||
home := GetEnvironmentVariable('HOME');
|
||||
if home = '' then home := GetTempDir;
|
||||
path := IncludeTrailingPathDelimiter(home) + 'ewsdr_beacon.log';
|
||||
try
|
||||
AssignFile(f, path);
|
||||
if FileExists(path) then Append(f) else Rewrite(f);
|
||||
try
|
||||
WriteLn(f, FormatDateTime('hh:nn:ss.zzz', Now), ' ', Msg);
|
||||
finally
|
||||
CloseFile(f);
|
||||
end;
|
||||
except
|
||||
// лог не должен ронять контур — глотаем ошибки I/O
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRadioController.BeaconDecodeEnabled: Boolean;
|
||||
begin
|
||||
Result := FBeaconDecOn;
|
||||
|
||||
Reference in New Issue
Block a user