feat(bandplan): диапазон OIRT 65-74 МГц в плане Pluto (кнопка перед FM)

VU-план (Pluto) расширен до 12 слотов: OIRT (65..74 МГц, дефолт 69 МГц)
вставлен перед FM. HF-план (openHPSDR) остаётся 11-диапазонным — 12-й слот
пустой, кнопка прячется (RelabelBands). CAT индексный (OIRT = band 08 на
Pluto), SetBand игнорирует пустой слот. Web bandSel строится динамически из
BandPlan; пустые слоты пропускаются.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-10 21:40:05 +03:00
co-authored by Claude Opus 4.8
parent bf21b49bc3
commit cdbdfec792
5 changed files with 37 additions and 20 deletions
+15 -11
View File
@@ -32,33 +32,37 @@ implementation
uses SysUtils;
const
BAND_COUNT = 11;
// Максимум слотов среди всех планов (кнопки/кэши бэндов рассчитаны на это
// число). VHF/UHF-план Pluto использует все 12; HF-план (openHPSDR) — только
// 11, 12-й слот пустой (кнопка прячется, см. TMainForm.RelabelBands).
BAND_COUNT = 12;
// ---- HF/6m план (openHPSDR) ----
// ---- HF/6m план (openHPSDR), 11 диапазонов + пустой 12-й слот ----
HF_NAMES: array[0..BAND_COUNT-1] of string = (
'160m','80m','60m','40m','30m','20m','17m','15m','12m','10m','6m');
'160m','80m','60m','40m','30m','20m','17m','15m','12m','10m','6m','');
HF_LO: array[0..BAND_COUNT-1] of Double = (
1800000, 3500000, 5330000, 7000000, 10100000,
14000000, 18068000, 21000000, 24890000, 28000000, 50000000);
14000000, 18068000, 21000000, 24890000, 28000000, 50000000, 0);
HF_HI: array[0..BAND_COUNT-1] of Double = (
2000000, 4000000, 5410000, 7300000, 10150000,
14350000, 18168000, 21450000, 24990000, 29700000, 54000000);
14350000, 18168000, 21450000, 24990000, 29700000, 54000000, 0);
HF_DEF: array[0..BAND_COUNT-1] of Double = (
1840000, 3700000, 5357000, 7100000, 10120000,
14200000, 18130000, 21300000, 24940000, 28400000, 50150000);
14200000, 18130000, 21300000, 24940000, 28400000, 50150000, 0);
// ---- VHF/UHF/SHF план (Pluto / AD936x), 11 слотов ----
// ---- VHF/UHF/SHF план (Pluto / AD936x), 12 слотов ----
// OIRT (65..74 МГц) — вещательный УКВ-диапазон, кнопка стоит перед FM.
VU_NAMES: array[0..BAND_COUNT-1] of string = (
'6m','4m','2m','1.25m','70cm','23cm','13cm','9cm','FM','Air','ADS-B');
'6m','4m','2m','1.25m','70cm','23cm','13cm','9cm','OIRT','FM','Air','ADS-B');
VU_LO: array[0..BAND_COUNT-1] of Double = (
50000000, 70000000, 144000000, 222000000, 430000000,
1240000000, 2300000000, 3300000000, 88000000, 118000000, 1087000000);
1240000000, 2300000000, 3300000000, 65000000, 88000000, 118000000, 1087000000);
VU_HI: array[0..BAND_COUNT-1] of Double = (
54000000, 70500000, 148000000, 225000000, 440000000,
1300000000, 2450000000, 3500000000, 108000000, 137000000, 1093000000);
1300000000, 2450000000, 3500000000, 74000000, 108000000, 137000000, 1093000000);
VU_DEF: array[0..BAND_COUNT-1] of Double = (
50150000, 70200000, 145000000, 223500000, 433500000,
1296200000, 2320000000, 3400100000, 100000000, 124000000, 1090000000);
1296200000, 2320000000, 3400100000, 69000000, 100000000, 124000000, 1090000000);
function BoardTypeName(BoardType: Integer): string;
begin