mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
feature(settings): вкладка Calibration — детектор мощности/КСВ, V/A, S-метр
Паритет с Thetis-Enhanced (Det. Cal. / Volts&Amps правки): - TCalibration в TGlobalSettings (JSON cal_*): модель детектора Alex-моста, per-band множитель FWD/REV 0.5..2.0, множитель напряжения, Voff/Sens датчика тока, офсет S-метра. - AlexDetToWatts: константы Thetis computeAlexFwdPower/computeRefPower по моделям (ANAN-100 / 200D / 7000DLE-Anvelina Pro 3 / 8000DLE-Orion MkII, 6m-спецкейс REV). Дефолт = прежняя формула ANAN-100 (поведение не меняется). - OnHPStatus: FWD и REV через модельную формулу x множитель банда; КСВ = (1+p)/(1-p), p=sqrt(RevW/FwdW) (Thetis) вместо отношения сырых ADC; напряжение x SupplyVoltCal; ток с калибруемыми Voff/Sens. - WDSPEngine.SMeterCalDB: офсет в GetSMeterDBm/GetSliceSMeter (главный S-метр, slice-флаги, web). - Выбор модели в комбо подставляет модельные дефолты датчика тока (Anvelina Pro 3/7000DLE: 340 мВ / 88 мВ/А — Thetis GetDefaultVoltCalibration). - Фиксы: гард FLoading при постройке вкладки (SetItemIndex стреляет OnChange на программном присвоении -> AV на nil-контролах), FPageCalib/FNavCalib в списках SelectPage (вкладка была невидимой). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -698,6 +698,7 @@ type
|
||||
function DefaultMicSource: TTXMicSource;
|
||||
procedure ApplyMOX(Active: Boolean);
|
||||
procedure OnPASettingsChange(MaxPower: Double; const BandCal: array of Double);
|
||||
procedure OnCalibrationSettingsChange(const C: TCalibration);
|
||||
procedure OnPlutoTxMaxAttChange(MaxAttDb: Double);
|
||||
procedure OnAnt936xChange(const A: TAD936xAnt); // разъёмы AD936x (Antenna)
|
||||
procedure OnVHFCalSettingsChange(const VHFCal: array of Double);
|
||||
@@ -7413,6 +7414,12 @@ begin
|
||||
UpdateDriveLabel; // изменился потолок → пересчитать дБ-подпись drive
|
||||
end;
|
||||
|
||||
procedure TMainForm.OnCalibrationSettingsChange(const C: TCalibration);
|
||||
begin
|
||||
// Логика (санитизация/офсет S-метра в DSP/persist) — в контроллере.
|
||||
FController.SetCalibration(C);
|
||||
end;
|
||||
|
||||
procedure TMainForm.OnAnt936xChange(const A: TAD936xAnt);
|
||||
// Вкладка Antenna (AD936x): таблица «диапазон → разъём». Контроллер сохраняет её
|
||||
// и сразу применяет разъёмы текущего диапазона/трансвертера.
|
||||
@@ -8226,6 +8233,7 @@ begin
|
||||
SF.OnVisibilityChange := ApplyVisibility;
|
||||
SF.OnFPSChange := ApplyFPS;
|
||||
SF.OnPAChange := OnPASettingsChange;
|
||||
SF.OnCalibrationChange := OnCalibrationSettingsChange;
|
||||
SF.OnPlutoTxChange := OnPlutoTxMaxAttChange;
|
||||
SF.OnAnt936xChange := OnAnt936xChange;
|
||||
SF.OnVHFCalChange := OnVHFCalSettingsChange;
|
||||
@@ -8251,6 +8259,7 @@ begin
|
||||
SF.LoadAnt936x(FController.Ant936x, FController.FXvtrSettings);
|
||||
SF.LoadXvtrSettings(FController.FXvtrSettings);
|
||||
SF.LoadPASettings(FController.FPAMaxPower, FController.FPABandCal);
|
||||
SF.LoadCalibration(FController.FCal);
|
||||
SF.LoadPlutoTxMaxAtt(FController.FPlutoTxMaxAttDb);
|
||||
SF.LoadVHFCalSettings(FController.FVHFBandCal);
|
||||
SF.LoadCATSettings(
|
||||
|
||||
Reference in New Issue
Block a user