[fix](trx-client): remove dead NOAA APT decoder, fix LRPT bookmark activation
Remove the wxsat/NOAA APT checkbox from bookmark decoder form and all JS references — the APT decoder no longer exists. Fix LRPT decoder not activating when an FM-mode bookmark is applied: bmApply() gated decoder toggles on DIG mode only, so LRPT bookmarks (which use FM) never triggered SetLrptDecodeEnabled. Gate on DIG or FM. Wire satellite pass scheduling into the scheduler loop: check configured satellite entries against live pass predictions, activate the satellite's bookmark (enabling LRPT decoder) when a pass is active, and expose active_satellite in SchedulerStatus for the frontend. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -472,7 +472,6 @@
|
||||
<label class="bm-decoder-check"><input type="checkbox" id="bm-dec-ft2" value="ft2" /> FT2</label>
|
||||
<label class="bm-decoder-check"><input type="checkbox" id="bm-dec-wspr" value="wspr" /> WSPR</label>
|
||||
<label class="bm-decoder-check"><input type="checkbox" id="bm-dec-hf-aprs" value="hf-aprs" /> HF APRS</label>
|
||||
<label class="bm-decoder-check"><input type="checkbox" id="bm-dec-wxsat" value="wxsat" /> NOAA APT</label>
|
||||
<label class="bm-decoder-check"><input type="checkbox" id="bm-dec-lrpt" value="lrpt" /> Meteor LRPT</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -236,7 +236,6 @@ function bmReadDecoders() {
|
||||
if (document.getElementById("bm-dec-ft2").checked) decoders.push("ft2");
|
||||
if (document.getElementById("bm-dec-wspr").checked) decoders.push("wspr");
|
||||
if (document.getElementById("bm-dec-hf-aprs").checked) decoders.push("hf-aprs");
|
||||
if (document.getElementById("bm-dec-wxsat").checked) decoders.push("wxsat");
|
||||
if (document.getElementById("bm-dec-lrpt").checked) decoders.push("lrpt");
|
||||
return decoders;
|
||||
}
|
||||
@@ -251,7 +250,6 @@ function bmWriteDecoders(decoders) {
|
||||
document.getElementById("bm-dec-ft2").checked = list.includes("ft2");
|
||||
document.getElementById("bm-dec-wspr").checked = list.includes("wspr");
|
||||
document.getElementById("bm-dec-hf-aprs").checked = list.includes("hf-aprs");
|
||||
document.getElementById("bm-dec-wxsat").checked = list.includes("wxsat");
|
||||
document.getElementById("bm-dec-lrpt").checked = list.includes("lrpt");
|
||||
}
|
||||
|
||||
@@ -430,8 +428,10 @@ async function bmApply(bm) {
|
||||
await postPath("/set_freq?hz=" + bm.freq_hz);
|
||||
}
|
||||
})();
|
||||
// Decoder toggles (DIG mode) — also fire-and-forget.
|
||||
const decoderPromise = (bm.mode === "DIG" && Array.isArray(bm.decoders)) ? (async () => {
|
||||
// Decoder toggles (DIG / FM modes) — also fire-and-forget.
|
||||
const hasDecoders = Array.isArray(bm.decoders) && bm.decoders.length > 0;
|
||||
const decoderMode = bm.mode === "DIG" || bm.mode === "FM";
|
||||
const decoderPromise = (hasDecoders && decoderMode) ? (async () => {
|
||||
const statusResp = await fetch("/status");
|
||||
if (statusResp.ok) {
|
||||
const st = await statusResp.json();
|
||||
@@ -441,7 +441,7 @@ async function bmApply(bm) {
|
||||
toggles.push(postPath("/toggle_" + key.replace(/-/g, "_") + "_decode"));
|
||||
}
|
||||
};
|
||||
check("ft8"); check("ft4"); check("ft2"); check("wspr"); check("hf-aprs"); check("wxsat"); check("lrpt");
|
||||
check("ft8"); check("ft4"); check("ft2"); check("wspr"); check("hf-aprs"); check("lrpt");
|
||||
if (toggles.length) await Promise.all(toggles);
|
||||
}
|
||||
})() : Promise.resolve();
|
||||
|
||||
Reference in New Issue
Block a user