From 07bd6267ea016ae0d30701214ee2a33ed752d4eb Mon Sep 17 00:00:00 2001 From: ISA Date: Sat, 26 Oct 2024 21:20:49 +0200 Subject: [PATCH] last20messages aktualisieren mit setInterval --- pages/dashboard.js | 51 ++++++++++++++++++++++++----- pages/kabelueberwachung.js | 4 +-- public/CPLmockData/SERVICE/Start.js | 23 ++++++++++++- utils/loadWindowVariables.js | 36 +++++++++++--------- 4 files changed, 87 insertions(+), 27 deletions(-) diff --git a/pages/dashboard.js b/pages/dashboard.js index 1de6016..600559d 100644 --- a/pages/dashboard.js +++ b/pages/dashboard.js @@ -26,7 +26,7 @@ function Dashboard() { const [kueCableBreak, setKueCableBreak] = useState([]); const [appVersion, setAppVersion] = useState(""); - useEffect(() => { + /* useEffect(() => { if (typeof window !== "undefined") { loadWindowVariables() .then(() => { @@ -49,8 +49,8 @@ function Dashboard() { setLoading(false); }); } - }, []); - useEffect(() => { + }, []); */ + /* useEffect(() => { loadWindowVariables() .then(() => { if (window.kueCableBreak && Array.isArray(window.kueCableBreak)) { @@ -76,7 +76,7 @@ function Dashboard() { setError(error); setLoading(false); }); - }, []); + }, []); */ const parseMessages = (messages) => { messages = messages @@ -97,7 +97,7 @@ function Dashboard() { return columns; }); }; - useEffect(() => { + /* useEffect(() => { loadWindowVariables() .then(() => { // console.log("kueOnline Data: ", window.kueOnline); // Debug: Ausgabe von kueOnline @@ -121,7 +121,7 @@ function Dashboard() { setError(error); setLoading(false); }); - }, []); + }, []); */ useEffect(() => { // Funktion zur Wiederholten Überprüfung der Variablen const checkVariablesLoaded = () => { @@ -156,17 +156,52 @@ function Dashboard() { .then(() => checkVariablesLoaded()) .then(() => { // Variablen sind jetzt verfügbar - console.log("kueAlarm1 und kueAlarm2 sind geladen:", { + /* console.log("kueAlarm1 und kueAlarm2 sind geladen:", { kueAlarm1: window.kueAlarm1, kueAlarm2: window.kueAlarm2, - }); + }); */ }) .catch((error) => { console.error("Fehler beim Laden der Variablen oder Timeout:", error); setError("Konnte die Variablen nicht laden: " + error.message); }); }, []); + useEffect(() => { + if (typeof window !== "undefined") { + const updateData = () => { + loadWindowVariables() + .then(() => { + //console.log("Updating last20Messages:", window.last20Messages); + setLast20Messages(parseMessages(window.last20Messages || "")); + setIp(window.ip || ""); + setSubnet(window.subnet || ""); + setGateway(window.gateway || ""); + setAppVersion(window.appVersion || ""); + const cableBreakArray = Array.isArray(window.kueCableBreak) + ? window.kueCableBreak.map(Number) + : (window.kueCableBreak || "").split(",").map(Number); + setKueCableBreak(cableBreakArray); + + const onlineArray = Array.isArray(window.kueOnline) + ? window.kueOnline.map(Number) + : []; + setkueOnline(onlineArray); + setLoading(false); + }) + .catch((error) => { + console.error("Error loading script:", error); + setError(error); + setLoading(false); + }); + }; + + updateData(); + const intervalId = setInterval(updateData, 5000); + + return () => clearInterval(intervalId); + } + }, []); const handleModuleClick = (rackNumber) => { // Navigiere zu /kabelueberwachung und übermittle den rackNumber als Parameter router.push(`/kabelueberwachung?rack=${rackNumber}`); diff --git a/pages/kabelueberwachung.js b/pages/kabelueberwachung.js index 238a3e9..bae5a32 100644 --- a/pages/kabelueberwachung.js +++ b/pages/kabelueberwachung.js @@ -56,7 +56,7 @@ function Kabelueberwachung() { (window.kueGroundFault && window.kueGroundFault[index]) ); }); - console.log("Aktualisierter alarmStatus:", updatedAlarmStatus); + // console.log("Aktualisierter alarmStatus:", updatedAlarmStatus); setAlarmStatus(updatedAlarmStatus); // State für Alarmstatus aktualisieren }; @@ -159,7 +159,7 @@ function Kabelueberwachung() { (window.kueGroundFault && window.kueGroundFault[index]) ); }); - console.log("Aktualisierter alarmStatus:", updatedAlarmStatus); + // console.log("Aktualisierter alarmStatus:", updatedAlarmStatus); setAlarmStatus(updatedAlarmStatus); // Setze den aktualisierten Alarmstatus }; diff --git a/public/CPLmockData/SERVICE/Start.js b/public/CPLmockData/SERVICE/Start.js index 4d5ce8d..9901cd3 100644 --- a/public/CPLmockData/SERVICE/Start.js +++ b/public/CPLmockData/SERVICE/Start.js @@ -1 +1,22 @@ -var last20Messages="16750035012024-10-23 15:08:58:000Modul 26 Isofehler kommend116749032012024-10-23 15:07:24:000Modul 23 Isofehler gehend016748035012024-10-23 15:01:52:000Modul 26 Isofehler gehend016747028012024-10-23 15:01:30:000Modul 19 Isofehler kommend116746035012024-10-23 14:57:33:000Modul 26 Isofehler kommend116745032012024-10-23 14:56:54:000Modul 23 Isofehler kommend116744028012024-10-23 14:51:01:000Modul 19 Isofehler gehend016743035012024-10-23 14:50:46:000Modul 26 Isofehler gehend016742032012024-10-23 14:49:49:000Modul 23 Isofehler gehend016741035012024-10-23 14:49:13:000Modul 26 Isofehler kommend116740028012024-10-23 14:45:28:000Modul 19 Isofehler kommend116739032012024-10-23 14:44:16:000Modul 23 Isofehler kommend116738035012024-10-23 14:42:08:000Modul 26 Isofehler gehend016737032012024-10-23 14:37:10:000Modul 23 Isofehler gehend016736035012024-10-23 14:35:20:000Modul 26 Isofehler kommend116735012012024-10-23 14:31:44:000Modul 03 Isofehler kommend116734017012024-10-23 14:30:14:000Modul 08 Isofehler kommend116733035012024-10-23 14:28:15:000Modul 26 Isofehler gehend016732033012024-10-23 14:26:23:000Modul 24 Isofehler kommend116731012012024-10-23 14:24:58:000Modul 03 Isofehler gehend0"; \ No newline at end of file +var last20Messages = ` +16750035012024-10-23 15:08:58:000Modul 26 Isofehler kommend1 +16749032012024-10-23 15:07:24:000Modul 23 Isofehler gehend0 +16748035012024-10-23 15:01:52:000Modul 26 Isofehler gehend0 +16747028012024-10-23 15:01:30:000Modul 19 Isofehler kommend1 +16746035012024-10-23 14:57:33:000Modul 26 Isofehler kommend1 +16745032012024-10-23 14:56:54:000Modul 23 Isofehler kommend1 +16744028012024-10-23 14:51:01:000Modul 19 Isofehler gehend0 +16743035012024-10-23 14:50:46:000Modul 26 Isofehler gehend0 +16742032012024-10-23 14:49:49:000Modul 23 Isofehler gehend0 +16741035012024-10-23 14:49:13:000Modul 26 Isofehler kommend1 +16740028012024-10-23 14:45:28:000Modul 19 Isofehler kommend1 +16739032012024-10-23 14:44:16:000Modul 23 Isofehler kommend1 +16738035012024-10-23 14:42:08:000Modul 26 Isofehler gehend0 +16737032012024-10-23 14:37:10:000Modul 23 Isofehler gehend0 +16736035012024-10-23 14:35:20:000Modul 26 Isofehler kommend1 +16735012012024-10-23 14:31:44:000Modul 03 Isofehler kommend1 +16734017012024-10-23 14:30:14:000Modul 08 Isofehler kommend1 +16733035012024-10-23 14:28:15:000Modul 26 Isofehler gehend0 +16732033012024-10-23 14:26:23:000Modul 24 Isofehler kommend1 +16731012012024-10-23 14:24:58:000Modul 03 Isofehler gehend0 +`; diff --git a/utils/loadWindowVariables.js b/utils/loadWindowVariables.js index 423643d..6a5278d 100644 --- a/utils/loadWindowVariables.js +++ b/utils/loadWindowVariables.js @@ -2,7 +2,8 @@ export async function loadWindowVariables() { return new Promise((resolve, reject) => { - // Überprüfen, ob die wichtigsten Variablen bereits geladen sind + //console.log("Running loadWindowVariables..."); // Log each run + const requiredVars = [ "last20Messages", "deviceName", @@ -44,17 +45,6 @@ export async function loadWindowVariables() { "appVersion", ]; - const missingVars = requiredVars.filter( - (variable) => window[variable] === undefined - ); - - // Wenn alle Variablen bereits vorhanden sind, auflösen und keine weiteren Skripte laden - if (missingVars.length === 0) { - console.log("Alle Systemvariablen sind bereits geladen."); - resolve(); - return; - } - const loadScript = (src) => { return new Promise((resolve, reject) => { const script = document.createElement("script"); @@ -70,7 +60,6 @@ export async function loadWindowVariables() { }); }; - // Nur die fehlenden Skripte laden const scripts = [ "de.js", "kueConfig.js", @@ -80,13 +69,28 @@ export async function loadWindowVariables() { "System.js", ]; + // Load all required scripts Promise.all(scripts.map(loadScript)) .then(() => { - console.log("Alle Systemvariablen wurden erfolgreich geladen."); - resolve(); + // console.log("Scripts loaded. Checking for variables..."); + + // Interval to check if all required variables are loaded + const checkInterval = setInterval(() => { + const missingVars = requiredVars.filter( + (variable) => window[variable] === undefined + ); + + if (missingVars.length === 0) { + //console.log("All system variables are now loaded."); + clearInterval(checkInterval); + resolve(); + } else { + console.log("Waiting for missing variables:", missingVars); + } + }, 5000); // Check every 5 seconds }) .catch((error) => { - console.error("Fehler beim Laden eines Skripts:", error); + console.error("Error loading a script:", error); reject(error); }); });