Compare commits

...

2 commits

Author SHA1 Message Date
Wolfgang 3114b4ce30 refactor frequency range in yml files 2024-05-26 15:12:32 +02:00
Wolfgang 39d1ff0d9e plan selection possible via uri parameter 2024-05-26 12:50:29 +02:00
3 changed files with 530 additions and 526 deletions

View file

@ -5,48 +5,33 @@
power_e: Power E,
power_n: Power N
}
- start: 135.7
end: 137.8
- frequency: 135.7-137.8
power: {a: 1 W ERP}
- start: 472
end: 479
- frequency: 472-479
power: {a: 1 W ERP}
- start: 1810
end: 1850
- frequency: 1810-1850
power: {a: 750 W PEP, e: 100 W PEP}
- start: 1850
end: 1890
- frequency: 1850-1890
power: {a: 75 W PEP, e: 75 W PEP}
- start: 1890
end: 2000
- frequency: 1890-2000
power: {a: 10 W PEP, e: 10 W PEP}
- start: 3500
end: 3800
- frequency: 3500-3800
power: {a: 750 W PEP, e: 100 W PEP}
- start: 5351.5
end: 5366.5
- frequency: 5351.5-5366.5
power: {a: 15 W EIRP}
- start: 7000
end: 7100
- frequency: 7000-7100
power: {a: 750 W PEP}
- start: 7100
end: 7200
- frequency: 7100-7200
power: {a: 750 W PEP}
- start: 10100
end: 10150
- frequency: 10100-10150
power: {a: 150 W PEP}
- start: 14000
end: 14350
- frequency: 14000-14350
power: {a: 750 W PEP}
- start: 18068
end: 18168
- frequency: 18068-18168
power: {a: 750 W PEP}
- start: 21000
end: 21450
- frequency: 21000-21450
power: {a: 750 W PEP, e: 100 W PEP}
- start: 24890
end: 24990
- frequency: 24890-24990
power: {a: 750 W PEP}
- start: 28000
end: 29700
- frequency: 28000-29700
power: {a: 750 W PEP, e: 100 W PEP, n: 10 W ERP}

View file

@ -11,544 +11,553 @@
- band: 2.2 km
mode: CW
bandwidth: 200
start: 135.7
end: 137.8
parts:
- description: CW, QRSS and narrow band digital modes
start: 135.7
end: 137.8
frequency: 135.7-137.8
description: CW, QRSS and narrow band digital modes
- band: 630 m
mode: CW
bandwidth: 200
start: 472
end: 475
parts:
- description: CW
start: 472
end: 475
frequency: 472-475
description: CW
- band: 630 m
mode: Narrow band modes
bandwidth: 500
start: 475
end: 479
parts:
- description: CW, Digimodes, Bandwidth of 500 Hz suggested
start: 475
end: 479
frequency: 475-479
description: CW, Digimodes, Bandwidth of 500 Hz suggested
- band: 160 m
mode: CW
bandwidth: 200
start: 1810
end: 1838
parts:
- start: 1810
end: 1838
- description: CW QRP Centre of Activity
at: 1836
frequency: 1810-1838
- band: 160 m
mode: CW
bandwidth: 200
description: CW QRP Centre of Activity
frequency: 1836
- band: 160 m
mode: Narrow band modes
bandwidth: 500
start: 1838
end: 1840
parts:
- start: 1838
end: 1840
frequency: 1838-1840
- band: 160 m
mode: All modes
bandwidth: 2700
parts:
- description: Digimodes
start: 1840
end: 1843
- start: 1843
end: 2000
description: Digimodes
frequency: 1840-1843
- band: 160 m
mode: All modes
bandwidth: 2700
frequency: 1843-2000
- band: 80 m
mode: CW
bandwidth: 200
start: 3500
end: 3570
parts:
- description: Priority for inter-continental operation
start: 3500
end: 3510
- description: CW contest preferred
start: 3510
end: 3560
- description: CW QRS Centre of Activity
at: 3555
- start: 3560
end: 3570
- description: CW QRP Centre of Activity
at: 3560
description: Priority for inter-continental operation
frequency: 3500-3510
- band: 80 m
mode: CW
bandwidth: 200
description: CW contest preferred
frequency: 3510-3560
- band: 80 m
mode: CW
bandwidth: 200
description: CW QRS Centre of Activity
frequency: 3555
- band: 80 m
mode: CW
bandwidth: 200
frequency: 3560-3570
- band: 80 m
mode: CW
bandwidth: 200
description: CW QRP Centre of Activity
frequency: 3560
- band: 80 m
mode: Narrow band modes
bandwidth: 200
start: 3570
end: 3580
parts:
- description: Digimodes
start: 3570
end: 3580
description: Digimodes
frequency: 3570-3580
- band: 80 m
mode: Narrow band modes
bandwidth: 500
start: 3580
end: 3600
parts:
- description: Digimodes
start: 3580
end: 3590
- description: Digimodes, automatically controlled data stations (unattended)
start: 3590
end: 3600
description: Digimodes
frequency: 3580-3590
- band: 80 m
mode: Narrow band modes
bandwidth: 500
description: Digimodes, automatically controlled data stations (unattended)
frequency: 3590-3600
- band: 80 m
mode: All modes
bandwidth: 2700
start: 3600
end: 3800
parts:
- description: Digimodes, automatically controlled data stations (unattended)
start: 3600
end: 3620
- description: SSB contest preferred
start: 3600
end: 3650
- description: Digital Voice Centre of Activity
at: 3630
- start: 3650
end: 3700
- description: SSB QRP Centre of Activity
at: 3690
- description: SSB contest preferred
start: 3700
end: 3775
- description: Image Centre of Activity
at: 3735
- description: R1 Emergency Centre of Activity
at: 3760
- description: SSB contest preferred - Priority for inter-continental operation
start: 3775
end: 3800
description: Digimodes, automatically controlled data stations (unattended)
frequency: 3600-3620
- band: 80 m
mode: All modes
bandwidth: 2700
description: SSB contest preferred (TODO 3620?)
frequency: 3620-3650
- band: 80 m
mode: All modes
bandwidth: 2700
description: Digital Voice Centre of Activity
frequency: 3630
- band: 80 m
mode: All modes
bandwidth: 2700
frequency: 3650-3700
- band: 80 m
mode: All modes
bandwidth: 2700
description: SSB QRP Centre of Activity
frequency: 3690
- band: 80 m
mode: All modes
bandwidth: 2700
description: SSB contest preferred
frequency: 3700-3775
- band: 80 m
mode: All modes
bandwidth: 2700
description: Image Centre of Activity
frequency: 3735
- band: 80 m
mode: All modes
bandwidth: 2700
description: R1 Emergency Centre of Activity
frequency: 3760
- band: 80 m
mode: All modes
bandwidth: 2700
description: SSB contest preferred - Priority for inter-continental operation
frequency: 3775-3800
- band: 60 m
mode: CW, Narrow band modes
bandwidth: 200
start: 5351.5
end: 5354.0
parts:
- description: CW, Narrow band modes
start: 5351.5
end: 5354.0
description: CW, Narrow band modes
frequency: 5351.5-5354.0
- band: 60 m
mode: All modes
bandwidth: 2700
start: 5354
end: 5366
parts:
- description: USB recommended for voice operation
start: 5354
end: 5366
description: USB recommended for voice operation
frequency: 5354-5366
- band: 60 m
bandwidth: 20
start: 5366.0
end: 5366.5
parts:
- description: Weak signal narrow band modes
start: 5366.0
end: 5366.5
description: Weak signal narrow band modes
frequency: 5366.0-5366.5
- band: 40 m
mode: CW
bandwidth: 200
start: 7000
end: 7040
parts:
- start: 7000
end: 7040
- description: CW, QRP Centre of Activity
at: 7030
frequency: 7000-7040
- band: 40 m
mode: CW
bandwidth: 200
description: CW, QRP Centre of Activity
frequency: 7030
- band: 40 m
mode: Narrow band modes
bandwidth: 500
start: 7040
end: 7050
parts:
- description: Digimodes
start: 7040
end: 7047
- description: Digimodes, automatically controlled data stations (unattended)
start: 7047
end: 7050
description: Digimodes
frequency: 7040-7047
- band: 40 m
mode: Narrow band modes
bandwidth: 500
description: Digimodes, automatically controlled data stations (unattended)
frequency: 7047-7050
- band: 40 m
mode: All modes
bandwidth: 2700
start: 7050
end: 7200
parts:
- description: Digimodes, automatically controlled data stations (unattended)
start: 7050
end: 7053
- description: Digimodes
start: 7053
end: 7060
- description: SSB contest preferred
start: 7060
end: 7100
- description: Digital Voice Centre of Activity
at: 7070
- description: SSB QRP Centre of Activity
at: 7090
- description: R1 Emergency Centre of Activity
at: 7110
- start: 7100
end: 7130
- description: SSB contest preferred
start: 7130
end: 7175
- description: Image Centre of Activity
at: 7165
- description: SSB contest preferred - Priority for inter-continental Activity
start: 7175
end: 7200
description: Digimodes, automatically controlled data stations (unattended)
frequency: 7050-7053
- band: 40 m
mode: All modes
bandwidth: 2700
description: Digimodes
frequency: 7053-7060
- band: 40 m
mode: All modes
bandwidth: 2700
description: SSB contest preferred
frequency: 7060-7100
- band: 40 m
mode: All modes
bandwidth: 2700
description: Digital Voice Centre of Activity
frequency: 7070
- band: 40 m
mode: All modes
bandwidth: 2700
description: SSB QRP Centre of Activity
frequency: 7090
- band: 40 m
mode: All modes
bandwidth: 2700
description: R1 Emergency Centre of Activity
frequency: 7110
- band: 40 m
mode: All modes
bandwidth: 2700
frequency: 7100-7130
- band: 40 m
mode: All modes
bandwidth: 2700
description: SSB contest preferred
frequency: 7130-7175
- band: 40 m
mode: All modes
bandwidth: 2700
description: Image Centre of Activity
frequency: 7165
- band: 40 m
mode: All modes
bandwidth: 2700
description: SSB contest preferred - Priority for inter-continental Activity
frequency: 7175-7200
- band: 30 m
mode: CW
bandwidth: 200
start: 10100
end: 10130
parts:
- start: 10100
end: 10130
- description: CW QRP Centre of Activity
at: 10116
frequency: 10100-10130
- band: 30 m
mode: CW
bandwidth: 200
description: CW QRP Centre of Activity
frequency: 10116
- band: 30 m
mode: Narrow band modes
bandwidth: 500
start: 10130
end: 10150
parts:
- description: Digimodes
start: 10130
end: 10150
description: Digimodes
frequency: 10130-10150
- band: 20 m
mode: CW
bandwidth: 200
start: 14000
end: 14070
parts:
- description: CW contest preferred
start: 14000
end: 14060
- description: QRS Centre of Activity
at: 14055
- start: 14060
end: 14070
- description: CW QRP Centre of Activity
at: 14060
description: CW contest preferred
frequency: 14000-14060
- band: 20 m
mode: CW
bandwidth: 200
description: QRS Centre of Activity
frequency: 14055
- band: 20 m
mode: CW
bandwidth: 200
frequency: 14060-14070
- band: 20 m
mode: CW
bandwidth: 200
description: CW QRP Centre of Activity
frequency: 14060
- band: 20 m
mode: Narrow band modes
bandwidth: 500
start: 14070
end: 14099
parts:
- description: Digimodes
start: 14070
end: 14089
- description: Digimodes, automatically controlled data stations (unattended)
start: 14089
end: 14099
description: Digimodes
frequency: 14070-14089
- band: 20 m
mode: Narrow band modes
bandwidth: 500
description: Digimodes, automatically controlled data stations (unattended)
frequency: 14089-14099
- band: 20 m
mode: International Beacon Project
start: 14099
end: 14101
parts:
- description: Beacons exclusively
start: 14099
end: 14101
description: Beacons exclusively
frequency: 14099-14101
- band: 20 m
mode: All modes
bandwidth: 2700
start: 14101
end: 14350
parts:
- description: Digimodes, automatically controlled data stations (unattended)
start: 14101
end: 14112
- start: 14112
end: 14125
- description: SSB contest preferred
start: 14125
end: 14300
- description: Digital Voice Centre of Activity
at: 14130
- description: Priority for DX-peditions
start: 14190
end: 14200
- description: Image Centre of Activity
at: 14230
- description: SSB QRP Centre of Activity
at: 14285
- start: 14300
end: 14350
- description: Global Emergency Centre of Activity
at: 14300
description: Digimodes, automatically controlled data stations (unattended)
frequency: 14101-14112
- band: 20 m
mode: All modes
bandwidth: 2700
frequency: 14112-14125
- band: 20 m
mode: All modes
bandwidth: 2700
description: SSB contest preferred
frequency: 14125-14300
- band: 20 m
mode: All modes
bandwidth: 2700
description: Digital Voice Centre of Activity
frequency: 14130
- band: 20 m
mode: All modes
bandwidth: 2700
description: Priority for DX-peditions
frequency: 14190-14200
- band: 20 m
mode: All modes
bandwidth: 2700
description: Image Centre of Activity
frequency: 14230
- band: 20 m
mode: All modes
bandwidth: 2700
description: SSB QRP Centre of Activity
frequency: 14285
- band: 20 m
mode: All modes
bandwidth: 2700
frequency: 14300-14350
- band: 20 m
mode: All modes
bandwidth: 2700
description: Global Emergency Centre of Activity
frequency: 14300
- band: 17 m
mode: CW
bandwidth: 200
start: 18068
end: 18095
parts:
- start: 18068
end: 18095
- description: CW QRP Centre of Activity
at: 18086
frequency: 18068-18095
- band: 17 m
mode: CW
bandwidth: 200
description: CW QRP Centre of Activity
frequency: 18086
- band: 17 m
mode: Narrow band modes
bandwidth: 500
start: 18095
end: 18109
parts:
- description: Digimodes
start: 18095
end: 18105
- description: Digimodes, automatically controlled data stations (unattended)
start: 18105
end: 18109
description: Digimodes
frequency: 18095-18105
- band: 17 m
mode: Narrow band modes
bandwidth: 500
description: Digimodes, automatically controlled data stations (unattended)
frequency: 18105-18109
- band: 17 m
mode: International Beacon Project
start: 18109
end: 18111
parts:
- description: Beacons exclusively
start: 18109
end: 18111
description: Beacons exclusively
frequency: 18109-18111
- band: 17 m
mode: All modes
bandwidth: 2700
start: 18111
end: 18168
parts:
- description: Digimodes, automatically controlled data stations (unattended)
start: 18111
end: 18120
- start: 18120
end: 18168
- description: SSB QRP Centre of Activity
at: 18130
- description: Digital Voice Centre of Activity
at: 18150
- description: Emergency Centre of Activity
at: 18160
description: Digimodes, automatically controlled data stations (unattended)
frequency: 18111-18120
- band: 17 m
mode: All modes
bandwidth: 2700
frequency: 18120-18168
- band: 17 m
mode: All modes
bandwidth: 2700
description: SSB QRP Centre of Activity
frequency: 18130
- band: 17 m
mode: All modes
bandwidth: 2700
description: Digital Voice Centre of Activity
frequency: 18150
- band: 17 m
mode: All modes
bandwidth: 2700
description: Emergency Centre of Activity
frequency: 18160
- band: 15 m
mode: CW
bandwidth: 200
start: 21000
end: 21000
parts:
- description: QRS Centre of Activity
at: 21055
- description: QRP Centre of Activity
at: 21060
- start: 21000
end: 21070
description: QRS Centre of Activity
frequency: 21055
- band: 15 m
mode: CW
bandwidth: 200
description: QRP Centre of Activity
frequency: 21060
- band: 15 m
mode: CW
bandwidth: 200
frequency: 21000-21070
- band: 15 m
mode: Narrow band modes
bandwidth: 500
start: 21070
end: 21110
parts:
- description: Digimodes
start: 21070
end: 21090
- description: Digimodes, automatically controlled data stations (unattended)
start: 21090
end: 21110
description: Digimodes
frequency: 21070-21090
- band: 15 m
mode: Narrow band modes
bandwidth: 500
description: Digimodes, automatically controlled data stations (unattended)
frequency: 21090-21110
- band: 15 m
mode: All modes
bandwidth: 2700
start: 21110
end: 21120
parts:
- description: Digimodes, automatically controlled data stations (unattended), (not SSB)
start: 21110
end: 21120
description: Digimodes, automatically controlled data stations (unattended), (not SSB)
frequency: 21110-21120
- band: 15 m
mode: Narrow band modes
bandwidth: 500
start: 21120
end: 21149
parts:
- description: Narrow band modes
start: 21120
end: 21149
description: Narrow band modes
frequency: 21120-21149
- band: 15 m
mode: International Beacon Project
start: 21149
end: 21151
parts:
- description: Beacons exclusively
start: 21149
end: 21151
description: Beacons exclusively
frequency: 21149-21151
- band: 15 m
mode: All modes
bandwidth: 2700
start: 21151
end: 21450
parts:
- description: Digital Voice Centre of Activity
at: 21180
- description: SSB QRP Centre of Activity
at: 21285
- description: Image Centre of Activity
at: 21340
- description: Global Emergency Centre of Activity
at: 21360
- start: 21151
end: 21450
description: Digital Voice Centre of Activity
frequency: 21180
- band: 15 m
mode: All modes
bandwidth: 2700
description: SSB QRP Centre of Activity
frequency: 21285
- band: 15 m
mode: All modes
bandwidth: 2700
description: Image Centre of Activity
frequency: 21340
- band: 15 m
mode: All modes
bandwidth: 2700
description: Global Emergency Centre of Activity
frequency: 21360
- band: 15 m
mode: All modes
bandwidth: 2700
frequency: 21151-21450
- band: 12 m
mode: CW
bandwidth: 200
start: 24890
end: 24915
parts:
- description: CW QRP Centre of Activity
at: 24906
- start: 24890
end: 24915
description: CW QRP Centre of Activity
frequency: 24906
- band: 12 m
mode: CW
bandwidth: 200
frequency: 24890-24915
- band: 12 m
mode: Narrow band modes
bandwidth: 500
start: 24915
end: 24929
parts:
- description: Digimodes
start: 24915
end: 24925
- description: Digimodes, automatically controlled data stations (unattended)
start: 24925
end: 24929
description: Digimodes
frequency: 24915-24925
- band: 12 m
mode: Narrow band modes
bandwidth: 500
description: Digimodes, automatically controlled data stations (unattended)
frequency: 24925-24929
- band: 12 m
mode: International Beacon Project
start: 24929
end: 24931
parts:
- description: Beacons exclusively
start: 24929
end: 24931
description: Beacons exclusively
frequency: 24929-24931
- band: 12 m
mode: All modes
bandwidth: 2700
start: 24931
end: 24990
parts:
- description: Digimodes, automatically controlled data stations (unattended)
start: 24931
end: 24940
- description: SSB QRP Centre of Activity
at: 24950
- description: Digital Voice Centre of Activity
at: 24960
- start: 24940
end: 24990
description: Digimodes, automatically controlled data stations (unattended)
frequency: 24931-24940
- band: 12 m
mode: All modes
bandwidth: 2700
description: SSB QRP Centre of Activity
frequency: 24950
- band: 12 m
mode: All modes
bandwidth: 2700
description: Digital Voice Centre of Activity
frequency: 24960
- band: 12 m
mode: All modes
bandwidth: 2700
frequency: 24940-24990
- band: 10 m
mode: CW
bandwidth: 200
start: 28000
end: 28070
parts:
- description: QRS Centre of Activity
at: 28055
- description: QRP Centre of Activity
at: 28060
- start: 28000
end: 28070
description: QRS Centre of Activity
frequency: 28055
- band: 10 m
mode: CW
bandwidth: 200
description: QRP Centre of Activity
frequency: 28060
- band: 10 m
mode: CW
bandwidth: 200
frequency: 28000-28070
- band: 10 m
mode: Narrow band modes
bandwidth: 500
start: 28070
end: 28190
parts:
- description: Digimodes
start: 28070
end: 28120
- description: Digimodes, automatically controlled data stations (unattended)
start: 28120
end: 28150
- start: 28150
end: 28190
description: Digimodes
frequency: 28070-28120
- band: 10 m
mode: Narrow band modes
bandwidth: 500
description: Digimodes, automatically controlled data stations (unattended)
frequency: 28120-28150
- band: 10 m
mode: Narrow band modes
bandwidth: 500
frequency: 28150-28190
- band: 10 m
mode: International Beacon Project
start: 28190
end: 28225
parts:
- description: Regional time shared beacons, exclusively
start: 28190
end: 28199
- description: Worldwide time shared beacons, exclusively
start: 28199
end: 28201
- description: Continuous duty beacons, exclusively
start: 28201
end: 28225
description: Regional time shared beacons, exclusively
frequency: 28190-28199
- band: 10 m
mode: International Beacon Project
description: Worldwide time shared beacons, exclusively
frequency: 28199-28201
- band: 10 m
mode: International Beacon Project
description: Continuous duty beacons, exclusively
frequency: 28201-28225
- band: 10 m
mode: All modes
bandwidth: 2700
start: 28225
end: 29000
parts:
- description: Beacons
start: 28225
end: 28300
- description: Digimodes, automatically controlled data stations (unattended)
start: 28300
end: 28320
- description: Digital Voice Centre of Activity
at: 28330
- description: QRP Centre of Activity
at: 28360
- description: Image Centre of Activity
at: 28680
- start: 28320
end: 29000
description: Beacons
frequency: 28225-28300
- band: 10 m
mode: All modes
bandwidth: 2700
description: Digimodes, automatically controlled data stations (unattended)
frequency: 28300-28320
- band: 10 m
mode: All modes
bandwidth: 2700
description: Digital Voice Centre of Activity
frequency: 28330
- band: 10 m
mode: All modes
bandwidth: 2700
description: QRP Centre of Activity
frequency: 28360
- band: 10 m
mode: All modes
bandwidth: 2700
description: Image Centre of Activity
frequency: 28680
- band: 10 m
mode: All modes
bandwidth: 2700
frequency: 28320-29000
- band: 10 m
mode: All modes
bandwidth: (unrestricted)
start: 29000
end: 29300
parts:
- start: 29000
end: 29100
- description: FM simplex - 10 kHz channels
start: 29100
end: 29200
- description: Digimodes, automatically controlled data stations (unattended)
start: 29200
end: 29300
frequency: 29000-29100
- band: 10 m
mode: All modes
bandwidth: (unrestricted)
description: FM simplex - 10 kHz channels
frequency: 29100-29200
- band: 10 m
mode: All modes
bandwidth: (unrestricted)
description: Digimodes, automatically controlled data stations (unattended)
frequency: 29200-29300
- band: 10 m
mode: Satellite Links
bandwidth: (unrestricted)
start: 29300
end: 29510
parts:
- start: 29300
end: 29510
frequency: 29300-29510
- band: 10 m
mode: Guard Channel
start: 29510
end: 29520
parts:
- start: 29510
end: 29520
frequency: 29510-29520
- band: 10 m
mode: All modes
bandwidth: 6000
start: 29520
end: 29700
parts:
- description: FM Repeater input (RH1-RH8)
start: 29520
end: 29590
- description: FM Calling channel
at: 29600
- description: FM Simplex Repeater (parrot, input + output)
at: 29610
- description: FM Repeater output (RH1-RH8)
start: 29620
end: 29700
description: FM Repeater input (RH1-RH8)
frequency: 29520-29590
- band: 10 m
mode: All modes
bandwidth: 6000
description: FM Calling channel
frequency: 29600
- band: 10 m
mode: All modes
bandwidth: 6000
description: FM Simplex Repeater (parrot, input + output)
frequency: 29610
- band: 10 m
mode: All modes
bandwidth: 6000
description: FM Repeater output (RH1-RH8)
frequency: 29620-29700

View file

@ -16,6 +16,9 @@ body>div {
div#togglebuttons>button {
margin: 0 0.1em;
}
div>label {
padding-right: 1em;
}
</style>
</head>
@ -35,6 +38,16 @@ div#togglebuttons>button {
const path = require('https://unpkg.com/path-browserify/index.js');
document.addEventListener('DOMContentLoaded', () => {
location.search.substr(1).split("&").forEach((param) => {
let p = param.split("=");
let key = p[0];
if (key === "base") {
document.getElementById("base_plan").value = decodeURIComponent(p[1]);
}
if (key === "add") {
document.getElementById("extension_plan").value = decodeURIComponent(p[1]);
}
});
update_plan();
document.getElementById("base_plan").addEventListener("keydown", (event) => {
@ -82,86 +95,86 @@ div#togglebuttons>button {
}
}
function update_table(bands, additions) {
function update_table(bases, extensions) {
var tdata = [];
var base_header = {};
var add_header = {};
var ext_header = {};
// first, fill base_header
bands.forEach((band) => {
if ((typeof band.header !== "undefined") && band.header) {
base_header = structuredClone(band);
bases.forEach((base) => {
if ((typeof base.header !== "undefined") && base.header) {
base_header = structuredClone(base);
}
});
// then fill tdata
bands.forEach((band) => {
if ((typeof band.header === "undefined") || (band.header == false)) {
band.parts.forEach((part) => {
let p = {};
base_header.columns.forEach((col) => {
if (base_header.part_columns.includes(col)) {
p[col] = part[col];
} else {
p[col] = band[col];
}
});
p["frequency"] = typeof part.at !== "undefined" ? part.at : part.start + '\u2013' + part.end;
bases.forEach((base) => {
if ((typeof base.header === "undefined") || (base.header == false)) {
let p = {};
// first, fill add_header
additions.forEach((add) => {
if ((typeof add.header !== "undefined") && add.header) {
add_header = structuredClone(add);
}
});
// first, fill ext_header
extensions.forEach((ext) => {
if ((typeof ext.header !== "undefined") && ext.header) {
ext_header = structuredClone(ext);
}
});
// then fill tdata
let parts_already_added = false;
additions.forEach((add) => {
if ((typeof add.header === "undefined") || (add.header == false)) {
if (typeof part.at !== "undefined") {
if (isInRange(part.at, add.start, add.end)) {
// at single frequency
add_power(add, p);
}
// then fill tdata
let already_added = false;
extensions.forEach((ext) => {
if ((typeof ext.header === "undefined") || (ext.header == false)) {
base_header.columns.forEach((col) => {
if (base_header.columns.includes(col)) {
p[col] = base[col];
}
});
let [ext_start, ext_end] = ext.frequency.split('-');
if (typeof base.frequency === "number") {
// at single frequency
if (isInRange(base.frequency, ext_start, ext_end)) {
add_power(ext, p);
} else {
// frequeny range
if ((add.start == part.start) && (add.end == part.end)) {
// ranges are the same
add_power(add, p);
} else if (isInRange(part.start, add.start, add.end) && isInRange(part.end, add.start, add.end)) {
// range of part is inside of range of add
add_power(add, p);
} else {
// part range is split by add range
if (isInRange(add.start, part.start, part.end)) {
// part range starts below add range
let p_clone = structuredClone(p);
let start = add.start;
let end = part.end < add.end ? part.end : add.end;
p_clone["frequency"] = start + '\u2013' + end;
add_power(add, p_clone);
tdata.push(p_clone);
parts_already_added = true;
} else if (isInRange(add.end, part.start, part.end)) {
// add range starts below part range
let p_clone = structuredClone(p);
let start = part.start;
let end = add.end;
p_clone["frequency"] = start + '\u2013' + end;
add_power(add, p_clone);
tdata.push(p_clone);
parts_already_added = true;
}
return;
}
} else {
// frequeny range
let [base_start, base_end] = base.frequency.split('-');
if ((ext_start == base_start) && (ext_end == base_end)) {
// ranges are the same
add_power(ext, p);
} else if (isInRange(base_start, ext_start, ext_end) && isInRange(base_end, ext_start, ext_end)) {
// base range is inside of ext range
add_power(ext, p);
} else {
// base range is split by ext range
if (isInRange(ext_start, base_start, base_end)) {
// base range starts below ext range
let q = structuredClone(p);
let start = ext_start;
let end = base_end < ext_end ? base_end : ext_end;
q["frequency"] = start + '-' + end;
add_power(ext, q);
tdata.push(q);
already_added = true;
} else if (isInRange(ext_end, base_start, base_end)) {
// ext range starts below base range
let q = structuredClone(p);
let start = base_start;
let end = ext_end;
q["frequency"] = start + '-' + end;
add_power(ext, q);
tdata.push(q);
already_added = true;
}
}
}
});
if (!parts_already_added) {
tdata.push(p);
}
parts_already_added = false;
});
if (!already_added) {
tdata.push(p);
}
already_added = false;
}
});
@ -194,8 +207,8 @@ div#togglebuttons>button {
if (typeof base_header.titles[column.field] !== "undefined") {
column.title = base_header.titles[column.field];
}
if (typeof add_header.titles[column.field] !== "undefined") {
column.title = add_header.titles[column.field];
if (typeof ext_header.titles[column.field] !== "undefined") {
column.title = ext_header.titles[column.field];
}
});
@ -234,7 +247,7 @@ div#togglebuttons>button {
function update_plan() {
Promise.all([
fetch(document.getElementById('base_plan').value, { mode: 'cors' }),
fetch(document.getElementById('additions_plan').value, { mode: 'cors' }),
fetch(document.getElementById('extension_plan').value, { mode: 'cors' }),
]).then((res) => {
res.forEach((r) => {
if (!r.ok) {
@ -267,16 +280,13 @@ div#togglebuttons>button {
}
</script>
<div>
<label>Base Plan:
<input name="plan" id="base_plan" type="text" value="band-plan-iaru_r1_hf.yml">
</label>
<button onclick="update_plan()">Change plan</button>
</div>
<div>
<label>Additions:
<input name="plan" id="additions_plan" type="text" value="band-plan-de.yml">
</label>
<button onclick="update_plan()">Change plan</button>
<label>Base Plan:
<input name="plan" id="base_plan" type="text" value="band-plan-iaru_r1_hf.yml">
</label>
<label>Extension:
<input name="plan" id="extension_plan" type="text" value="band-plan-de.yml">
</label>
<button onclick="update_plan()">Change plans</button>
</div>
<div id="togglebuttons"></div>
<div>