let ws; function connectWS() { ws = new WebSocket("ws://" + location.host + "/ws"); ws.onopen = () => { console.log("WebSocket connesso"); }; ws.onclose = () => { console.log("WebSocket disconnesso, retry..."); setTimeout(connectWS, 5000); }; ws.onmessage = (event) => { let data; try { data = JSON.parse(event.data); } catch (e) { console.error("Invalid JSON received", e); return; } document.getElementById("datavalid").textContent = data.datavalid ?? "-"; document.getElementById("timestamp").textContent = data.timestamp ?? "-"; document.getElementById("volts_gen").textContent = data.volts_gen ?? "-"; document.getElementById("eng_rpm").textContent = data.eng_rpm ?? "-"; document.getElementById("adc_read_time").textContent = data.adc_read_time ?? "-"; document.getElementById("n_queue_errors").textContent = data.n_queue_errors ?? "-"; const coils12 = data.coils12 || {}; const coils34 = data.coils34 || {}; document.getElementById("coils12_spark_delay").textContent = coils12.spark_delay ?? "-"; document.getElementById("coils34_spark_delay").textContent = coils34.spark_delay ?? "-"; document.getElementById("coils12_spark_status").textContent = coils12.spark_status ?? "-"; document.getElementById("coils34_spark_status").textContent = coils34.spark_status ?? "-"; document.getElementById("coils12_sstart_status").textContent = coils12.sstart_status ?? "-"; document.getElementById("coils34_sstart_status").textContent = coils34.sstart_status ?? "-"; document.getElementById("coils12_peak_p_in").textContent = coils12.peak_p_in ?? "-"; document.getElementById("coils34_peak_p_in").textContent = coils34.peak_p_in ?? "-"; document.getElementById("coils12_peak_n_in").textContent = coils12.peak_n_in ?? "-"; document.getElementById("coils34_peak_n_in").textContent = coils34.peak_n_in ?? "-"; document.getElementById("coils12_peak_p_out").textContent = coils12.peak_p_out ?? "-"; document.getElementById("coils34_peak_p_out").textContent = coils34.peak_p_out ?? "-"; document.getElementById("coils12_peak_n_out").textContent = coils12.peak_n_out ?? "-"; document.getElementById("coils34_peak_n_out").textContent = coils34.peak_n_out ?? "-"; document.getElementById("coils12_level_spark").textContent = coils12.level_spark ?? "-"; document.getElementById("coils34_level_spark").textContent = coils34.level_spark ?? "-"; document.getElementById("coils12_n_events").textContent = coils12.n_events ?? "-"; document.getElementById("coils34_n_events").textContent = coils34.n_events ?? "-"; document.getElementById("coils12_n_missed_firing").textContent = coils12.n_missed_firing ?? "-"; document.getElementById("coils34_n_missed_firing").textContent = coils34.n_missed_firing ?? "-"; }; } function start() { fetch("/start"); } function stop() { fetch("/stop"); } connectWS();