refactor: add typed decoder plugin runtime
This commit is contained in:
@@ -165,14 +165,14 @@
|
||||
}
|
||||
vdesWindow.updateVdesBar = updateVdesBar;
|
||||
vdesWindow.clearVdesBar = function() {
|
||||
vdesWindow.resetVdesHistoryView?.();
|
||||
resetVdesHistoryView();
|
||||
};
|
||||
vdesWindow.resetVdesHistoryView = function() {
|
||||
function resetVdesHistoryView() {
|
||||
if (vdesMessagesEl) vdesMessagesEl.innerHTML = "";
|
||||
vdesMessageHistory = [];
|
||||
updateVdesBar();
|
||||
renderVdesHistory();
|
||||
};
|
||||
}
|
||||
function renderVdesHistory() {
|
||||
pruneVdesMessageHistory();
|
||||
if (!vdesMessagesEl) {
|
||||
@@ -205,7 +205,7 @@
|
||||
rig_id: msg.rig_id || null
|
||||
};
|
||||
}
|
||||
vdesWindow.onServerVdesBatch = function(messages) {
|
||||
function onServerVdesBatch(messages) {
|
||||
if (!Array.isArray(messages) || messages.length === 0) return;
|
||||
if (vdesStatus) vdesStatus.textContent = "Receiving";
|
||||
const normalized = [];
|
||||
@@ -228,16 +228,13 @@
|
||||
pruneVdesMessageHistory();
|
||||
scheduleVdesBarUpdate();
|
||||
scheduleVdesHistoryRender();
|
||||
};
|
||||
vdesWindow.restoreVdesHistory = function(messages) {
|
||||
vdesWindow.onServerVdesBatch?.(messages);
|
||||
};
|
||||
}
|
||||
document.getElementById("settings-clear-vdes-history")?.addEventListener("click", () => {
|
||||
void (async () => {
|
||||
if (!await vdesWindow.trxUi.confirm({ title: "Clear VDES history?", message: "All stored VDES decodes will be permanently removed.", confirmLabel: "Clear history" })) return;
|
||||
try {
|
||||
await vdesWindow.postPath?.("/clear_vdes_decode");
|
||||
vdesWindow.resetVdesHistoryView?.();
|
||||
resetVdesHistoryView();
|
||||
} catch (e) {
|
||||
console.error("VDES history clear failed", e);
|
||||
}
|
||||
@@ -249,19 +246,26 @@
|
||||
renderVdesHistory();
|
||||
});
|
||||
}
|
||||
vdesWindow.onServerVdes = function(msg) {
|
||||
function onServerVdes(msg) {
|
||||
if (vdesStatus) vdesStatus.textContent = "Receiving";
|
||||
const next = normalizeServerVdesMessage(msg);
|
||||
addVdesMessage(next);
|
||||
if (next.lat != null && next.lon != null && vdesWindow.vdesMapAddPoint) {
|
||||
vdesWindow.vdesMapAddPoint(next);
|
||||
}
|
||||
};
|
||||
vdesWindow.pruneVdesHistoryView = function() {
|
||||
}
|
||||
function pruneVdesHistoryView() {
|
||||
pruneVdesMessageHistory();
|
||||
updateVdesBar();
|
||||
renderVdesHistory();
|
||||
};
|
||||
}
|
||||
updateVdesSummary();
|
||||
vdesWindow._trxDrainPendingDecode?.("vdes");
|
||||
window.trxPluginRuntime.registerDecoder({
|
||||
id: "vdes",
|
||||
onMessage: onServerVdes,
|
||||
onBatch: onServerVdesBatch,
|
||||
restore: onServerVdesBatch,
|
||||
reset: resetVdesHistoryView,
|
||||
prune: pruneVdesHistoryView
|
||||
});
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user