the page uses server-side stale detection first, so another PC with wrong clock should not falsely blur the UI
This commit is contained in:
parent
c9ffe85d54
commit
3891d9b61d
|
|
@ -810,7 +810,6 @@
|
|||
ctx.fillText((Number(knValue) || 0).toFixed(1) + ' ' + UNIT_FORCE, cx, cy + 58);
|
||||
}
|
||||
|
||||
// FIX: update digital display HTML elements (only visible when show_gauge_digital: true)
|
||||
function updateDigitalDisplay(side, percent, kn) {
|
||||
if (!SHOW_GAUGE_DIGITAL) return;
|
||||
const el = document.getElementById('digital-' + side);
|
||||
|
|
@ -1132,6 +1131,20 @@
|
|||
} catch (err) { console.warn('UI revision check error:', err); }
|
||||
}
|
||||
|
||||
function computeStaleFromPayload(d, connected) {
|
||||
if (!connected) return false;
|
||||
if (typeof d.stale === 'boolean') return d.stale;
|
||||
if (!d.last_update) return false;
|
||||
|
||||
const lastTs = new Date(d.last_update).getTime();
|
||||
if (isNaN(lastTs)) return false;
|
||||
|
||||
const serverNowTs = d.server_time ? new Date(d.server_time).getTime() : Date.now();
|
||||
if (isNaN(serverNowTs)) return false;
|
||||
|
||||
return (serverNowTs - lastTs) > STALE_MS;
|
||||
}
|
||||
|
||||
async function fetchLiveData() {
|
||||
try {
|
||||
const res = await fetch('/api/data', { cache: 'no-store' });
|
||||
|
|
@ -1148,12 +1161,7 @@
|
|||
const bias = Number(d.bias_percent) || 0;
|
||||
const leftKN = Number(d.sila_l_kn) || 0;
|
||||
const rightKN = Number(d.sila_r_kn) || 0;
|
||||
|
||||
let stale = false;
|
||||
if (connected && d.last_update) {
|
||||
const lastTs = new Date(d.last_update).getTime();
|
||||
if (!isNaN(lastTs)) stale = (Date.now() - lastTs) > STALE_MS;
|
||||
}
|
||||
const stale = computeStaleFromPayload(d, connected);
|
||||
|
||||
setConnectionIndicator(connected, stale);
|
||||
setProcessVisualState(connected && !stale);
|
||||
|
|
@ -1171,8 +1179,6 @@
|
|||
|
||||
applyChannelState('l', leftPercent);
|
||||
applyChannelState('r', rightPercent);
|
||||
|
||||
// FIX: update digital HTML displays (was missing in original)
|
||||
updateDigitalDisplay('l', leftPercent, leftKN);
|
||||
updateDigitalDisplay('r', rightPercent, rightKN);
|
||||
|
||||
|
|
@ -1188,7 +1194,6 @@
|
|||
updateSummaryBar(false, false, 0, 0, 0);
|
||||
updateMachineVerdict(false, false, 0, 0, 0);
|
||||
updateAlarmBanner(0, 0, 0, false, false);
|
||||
// FIX: reset digital displays on error
|
||||
updateDigitalDisplay('l', 0, 0);
|
||||
updateDigitalDisplay('r', 0, 0);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue