mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
feature(calibration): частотная калибровка опорника (ppm) + TO Error в слоте QO-100
Пункт 3 плана. Ручные подгонки остаются: ppm работает ПОД ними, а не вместо — уход тракта где-то больше, где-то меньше. - Settings: TCalibration.FreqCalPPM (JSON cal_freq_ppm, +-100 ppm, per-device). Смысл знака: «опора выше номинала на N ppm», положительное значение поднимает показываемые частоты. - RadioBackend: виртуальный SetFreqCalPPM. - HPSDRNetwork: CalFreq(Hz) = Hz / (1 + ppm) в частотном слове — все четыре точки (главный DDC, DDC панов, feedback-DDC PureSignal, DUC передачи). Тактовый генератор радио менять нечем, поэтому правим запрос. - PlutoBackend: штатный xo_correction в ad9361-phy (device-attr биндинги добавлены в IIOBindings). Номинал XO снимается при коннекте с округлением до 100 кГц, чтобы наша же коррекция с прошлой сессии не накапливалась; после записи LO переписываются, иначе правка ждала бы следующей перестройки. Одна цифра лечит RX и TX на всех диапазонах. - QO-100: TXvtrEntry.TxLOError (JSON tx_lo_error) + поле «TO Error (Hz)» на странице QO-100. Сам транспондер-offset держим стандартным (8089.5 МГц), уход тракта правим поправкой; ActiveTXFreqHz учитывает её, подсказка внизу страницы считает TX-частоту уже с ней. - UI-фиксы вкладки Calibration: длинные подсказки переведены на несколько строк (WordWrap — TLabel по умолчанию режется по краю группы), заголовки таблиц укорочены и не заезжают под кнопку «= S-meter»; RelayoutCalTab сбрасывает прокрутку страницы перед перекладкой (SetBounds в TScrollBox задаёт координаты относительно прокрученного клиента). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -204,6 +204,9 @@ type
|
||||
// Нужно для абсолютной шкалы уровней — контроллер вычитает его из показаний.
|
||||
// HPSDR: усиления нет (есть аттенюатор), возвращает TELEMETRY_NONE.
|
||||
function RxGainNowDb: Double; virtual;
|
||||
// Частотная калибровка опорника, ppm: «опора выше номинала на N ppm».
|
||||
// HPSDR — масштаб частотного слова, AD936x — xo_correction в ad9361-phy.
|
||||
procedure SetFreqCalPPM(P: Double); virtual;
|
||||
|
||||
// ---- Свойства состояния (полиморфные через виртуальные геттеры) ----
|
||||
property Connected: Boolean read GetConnected;
|
||||
@@ -310,6 +313,10 @@ begin
|
||||
Result := TELEMETRY_NONE;
|
||||
end;
|
||||
|
||||
procedure TRadioBackend.SetFreqCalPPM(P: Double);
|
||||
begin
|
||||
end;
|
||||
|
||||
procedure TRadioBackend.SetTxAtten(Db: Double);
|
||||
begin
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user