From 1e7121f200821582e0ab4546cec694afefdded67 Mon Sep 17 00:00:00 2001 From: Uladzimir Karpenka Date: Tue, 26 May 2026 19:26:32 +0300 Subject: [PATCH] Move FreqToBandIdx to BoardUtils Co-Authored-By: Claude Sonnet 4.6 --- BoardUtils.pas | 21 +++++++++++++++++++++ MainForm.pas | 24 ------------------------ 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/BoardUtils.pas b/BoardUtils.pas index f219c55..5945dde 100644 --- a/BoardUtils.pas +++ b/BoardUtils.pas @@ -7,6 +7,7 @@ unit BoardUtils; interface function BoardTypeName(BoardType: Integer): string; +function FreqToBandIdx(Hz: Double): Integer; implementation @@ -26,4 +27,24 @@ begin end; end; +function FreqToBandIdx(Hz: Double): Integer; +const + BAND_LO: array[0..10] of Double = ( + 1800000, 3500000, 5330000, 7000000, 10100000, + 14000000, 18068000, 21000000, 24890000, 28000000, 50000000); + BAND_HI: array[0..10] of Double = ( + 2000000, 4000000, 5410000, 7300000, 10150000, + 14350000, 18168000, 21450000, 24990000, 29700000, 54000000); +var + i: Integer; +begin + Result := -1; + for i := 0 to 10 do + if (Hz >= BAND_LO[i]) and (Hz <= BAND_HI[i]) then + begin + Result := i; + Exit; + end; +end; + end. diff --git a/MainForm.pas b/MainForm.pas index 9872db9..91e72f0 100644 --- a/MainForm.pas +++ b/MainForm.pas @@ -4147,30 +4147,6 @@ end; // Idx=0 → VFO-A активен, Idx=1 → VFO-B активен. // Перестройка всегда происходит на частоту активного VFO (не на оффсет). // CTUN при этом сбрасывается чтобы не было путаницы с оффсетом. -// --------------------------------------------------------------------------- -// --------------------------------------------------------------------------- -// FreqToBandIdx — возвращает индекс диапазона для частоты Hz, или -1 -// --------------------------------------------------------------------------- -function FreqToBandIdx(Hz: Double): Integer; -const - // Границы диапазонов [Low, High] в Гц (приблизительные) - BAND_LO: array[0..10] of Double = ( - 1800000, 3500000, 5330000, 7000000, 10100000, - 14000000, 18068000, 21000000, 24890000, 28000000, 50000000); - BAND_HI: array[0..10] of Double = ( - 2000000, 4000000, 5410000, 7300000, 10150000, - 14350000, 18168000, 21450000, 24990000, 29700000, 54000000); -var - i: Integer; -begin - Result := -1; - for i := 0 to 10 do - if (Hz >= BAND_LO[i]) and (Hz <= BAND_HI[i]) then - begin - Result := i; - Exit; - end; -end; // --------------------------------------------------------------------------- // ActiveVfoFreq — частота активного VFO