From 7f792f833ff446f9bc31861b073d0eca8b339fed Mon Sep 17 00:00:00 2001 From: ISA Date: Sun, 27 Oct 2024 08:09:54 +0100 Subject: [PATCH] fix: Verhindere Wechsel zwischen aktivem und inaktivem Status bei leerem Slot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Korrigiert die Bedingung für `kueOnline`, sodass nur aktive Slots den Alarmstatus überprüfen. - Entfernt Mehrfachreferenzen von `kueOnline`, die den Status ungewollt überschrieben haben. - Setzt ein bedingtes Update für `kueCableBreak`, `kueAlarm1`, und `kueAlarm2`, um unnötige Aktualisierungen zu vermeiden. - Stellt sicher, dass der erste Slot als "Leer" angezeigt wird, wenn `kueOnline` auf `0` gesetzt ist. --- components/Header.jsx | 2 +- components/modulesStatus/KabelModulStatus.jsx | 9 +- pages/_app.js | 2 +- pages/dashboard.js | 34 ++-- public/CPLmockData/SERVICE/kueDetailTdr.js | 160 ++++++++++++++++-- utils/loadWindowVariables.js | 1 - 6 files changed, 169 insertions(+), 39 deletions(-) diff --git a/components/Header.jsx b/components/Header.jsx index e5c7841..b529239 100644 --- a/components/Header.jsx +++ b/components/Header.jsx @@ -41,7 +41,7 @@ function Header() { script.async = true; script.onload = () => { - console.log(`System.js wurde erfolgreich geladen.`); + // console.log(`System.js wurde erfolgreich geladen.`); // Systemvariablen überprüfen und zuweisen if (window.deviceName) { diff --git a/components/modulesStatus/KabelModulStatus.jsx b/components/modulesStatus/KabelModulStatus.jsx index 5794af2..b694dc1 100644 --- a/components/modulesStatus/KabelModulStatus.jsx +++ b/components/modulesStatus/KabelModulStatus.jsx @@ -1,7 +1,3 @@ -// components/modulesStatus/KabelModulStatus.jsx -//Bei Kabelbruch (cableBreak), Erdschluss (groundFault), Isolationsfehler (measure1Alarm) oder Schleifenfehler (measure2Alarm) wird der Status rot angezeigt. Ansonsten grün. -import React from "react"; - const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => { if (!isOnline) { return ( @@ -11,7 +7,7 @@ const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => { ); } - // Bestimme den Modultyp basierend auf der Version + // Modultyp basierend auf der Version bestimmen let moduleName = ""; let moduleType = ""; @@ -26,6 +22,7 @@ const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => { moduleType = "___"; } + // Status nur prüfen, wenn der Slot aktiv ist (kueOnline für den Slot ist 1) const isCableBreak = kueCableBreak[slot - 1] === 1; const isAlarm1 = kueAlarm1[slot - 1] === 1; const isAlarm2 = kueAlarm2[slot - 1] === 1; @@ -33,13 +30,11 @@ const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => { return (
- {/* Slot-Nummer anzeigen */}
{slot}
{moduleName}
{moduleType}
- {/* Status-Anzeige */}
{ if (typeof window !== "undefined") { - console.log("Client-side logic can run here."); + //console.log("Client-side logic can run here."); } }, []); diff --git a/pages/dashboard.js b/pages/dashboard.js index 600559d..e1d9e4b 100644 --- a/pages/dashboard.js +++ b/pages/dashboard.js @@ -166,21 +166,28 @@ function Dashboard() { 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 || ""); + // Prüfen, ob der Slot in kueOnline aktiv ist, bevor kueCableBreak gesetzt wird const cableBreakArray = Array.isArray(window.kueCableBreak) - ? window.kueCableBreak.map(Number) - : (window.kueCableBreak || "").split(",").map(Number); + ? window.kueCableBreak.map((value, index) => + window.kueOnline[index] === 1 ? Number(value) : 0 + ) + : (window.kueCableBreak || "") + .split(",") + .map((value, index) => + window.kueOnline[index] === 1 ? Number(value) : 0 + ); setKueCableBreak(cableBreakArray); const onlineArray = Array.isArray(window.kueOnline) @@ -202,11 +209,15 @@ function Dashboard() { return () => clearInterval(intervalId); } }, []); + + //--------------------------------------------------- const handleModuleClick = (rackNumber) => { // Navigiere zu /kabelueberwachung und übermittle den rackNumber als Parameter router.push(`/kabelueberwachung?rack=${rackNumber}`); }; + // app/dashboard/page.jsx + // app/dashboard/page.jsx const renderBaugruppentraeger = () => { const baugruppen = []; const numBaugruppen = Math.ceil(kueOnline.length / 8); @@ -219,27 +230,21 @@ function Dashboard() {
{slots.map((version, index) => { const slotNumber = i * 8 + index + 1; + const isSlotOnline = kueOnline[slotNumber - 1] === 1; // Prüfe, ob der Slot online ist + const moduleVersion = window.kueVersion ? window.kueVersion[slotNumber - 1] : version; - const hasAlarm1 = kueAlarm1.includes(slotNumber); - const hasAlarm2 = kueAlarm2.includes(slotNumber); - const hasCableBreak = kueCableBreak.includes(slotNumber); - const alarmClass = - hasAlarm1 || hasAlarm2 || hasCableBreak - ? "bg-red-500" - : "bg-white"; - return (
handleModuleClick(i + 1)} // Bei Klick navigieren + className="cursor-pointer" + onClick={() => handleModuleClick(i + 1)} > @@ -253,6 +258,7 @@ function Dashboard() { return baugruppen; }; + return (
{/* Letzte Meldungen - Titel und Icon Bereich */} diff --git a/public/CPLmockData/SERVICE/kueDetailTdr.js b/public/CPLmockData/SERVICE/kueDetailTdr.js index 5c2fa39..de50828 100644 --- a/public/CPLmockData/SERVICE/kueDetailTdr.js +++ b/public/CPLmockData/SERVICE/kueDetailTdr.js @@ -1,17 +1,147 @@ -var kueOnline=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; -var kueValid=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; +/* var kueOnline = [ + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, +]; */ +/* var kueValid = [ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, +]; */ +/* var kueID = [ + "FTZ_2", + "B23", + "Kabel 3", + "Kabel 4", + "Kabel 5", + "Kabel 6", + "FTZ4562", + "Kabel 8", + "12344", + "Kabel 10", + "Kabel 11", + "Kabel 12", + "Kabel 13", + "Kabel 14", + "Kabel 15", + "H56-77", + "Kabel 17", + "Kabel 18", + "Kabel 19", + "Kabel 20", + "Kabel 21", + "Kabel 22", + "Kabel 23", + "Kabel 24", + "Kabel 25", + "Kabel 26", + "Kabel 27", + "Kabel 28", + "Kabel 29", + "Kabel 30", + "Kabel 31", + "Kabel 32", +]; +var kueName = [ + "Kabel_2", + "Petersfehn", + "Kabel 3", + "Kabel 4", + "Kabel 5", + "Kabel 6", + "Melanie", + "Kabel 8", + "Merle", + "Kabel 10", + "Kabel 11", + "Kabel 12", + "Kabel 13", + "Kabel 14", + "Kabel 15", + "Daniela", + "Kabel 17", + "Kabel 18", + "Kabel 19", + "Kabel 20", + "Kabel 21", + "Kabel 22", + "Kabel 23", + "Kabel 24", + "Kabel 25", + "Kabel 26", + "Kabel 27", + "Kabel 28", + "Kabel 29", + "Kabel 30", + "Kabel 31", + "Kabel 32", +]; */ +/* var kueVersion = [ + 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, + 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, + 419, 419, +]; */ -var kueID=['FTZ_2','B23','Kabel 3','Kabel 4','Kabel 5','Kabel 6','FTZ4562','Kabel 8','12344','Kabel 10','Kabel 11','Kabel 12','Kabel 13','Kabel 14','Kabel 15','H56-77','Kabel 17','Kabel 18','Kabel 19','Kabel 20','Kabel 21','Kabel 22','Kabel 23','Kabel 24','Kabel 25','Kabel 26','Kabel 27','Kabel 28','Kabel 29','Kabel 30','Kabel 31','Kabel 32']; -var kueName=['Kabel_2','Petersfehn','Kabel 3','Kabel 4','Kabel 5','Kabel 6','Melanie','Kabel 8','Merle','Kabel 10','Kabel 11','Kabel 12','Kabel 13','Kabel 14','Kabel 15','Daniela','Kabel 17','Kabel 18','Kabel 19','Kabel 20','Kabel 21','Kabel 22','Kabel 23','Kabel 24','Kabel 25','Kabel 26','Kabel 27','Kabel 28','Kabel 29','Kabel 30','Kabel 31','Kabel 32']; -var kueVersion=[419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419,419]; - - -var tdrAtten=[2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0]; -var tdrPulse=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; -var tdrSpeed=[100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100]; -var tdrAmp=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; -var tdrTrigger=[80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80]; -var tdrLocation=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; -var tdrActive=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; -var tdrLast=['2024-10-17 07:51:54:000','2024-09-30 08:38:50:000','?','?','?','?','?','?','2024-09-30 08:36:43:000','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?']; \ No newline at end of file +var tdrAtten = [ + 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, + 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, + 2.0, 2.0, +]; +var tdrPulse = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, +]; +var tdrSpeed = [ + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, +]; +var tdrAmp = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, +]; +var tdrTrigger = [ + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, +]; +var tdrLocation = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, +]; +var tdrActive = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, +]; +var tdrLast = [ + "2024-10-17 07:51:54:000", + "2024-09-30 08:38:50:000", + "?", + "?", + "?", + "?", + "?", + "?", + "2024-09-30 08:36:43:000", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", + "?", +]; diff --git a/utils/loadWindowVariables.js b/utils/loadWindowVariables.js index 6a5278d..e5023a3 100644 --- a/utils/loadWindowVariables.js +++ b/utils/loadWindowVariables.js @@ -62,7 +62,6 @@ export async function loadWindowVariables() { const scripts = [ "de.js", - "kueConfig.js", "kueData.js", "kueDetailTdr.js", "Start.js",