diff --git a/components/modules/Kue705FO.jsx b/components/modules/Kue705FO.jsx index 996eef9..11b978a 100644 --- a/components/modules/Kue705FO.jsx +++ b/components/modules/Kue705FO.jsx @@ -15,6 +15,7 @@ function Kue705FO({ tdrLocation, alarmStatus, }) { + const [currentAlarmStatus, setCurrentAlarmStatus] = useState(false); const [currentModulName, setCurrentModulName] = useState(modulName); const [activeButton, setActiveButton] = useState("Schleife"); const [displayText, setDisplayText] = useState("Schleifenwiderstand [kOhm]"); @@ -200,11 +201,6 @@ function Kue705FO({ } */ //------------------------------------------------- let slot = slotIndex; - const alarmStatus = - (window.kueAlarm1 && window.kueAlarm1[slotIndex]) || - (window.kueAlarm2 && window.kueAlarm2[slotIndex]) || - (window.kueCableBreak && window.kueCableBreak[slotIndex]) || - (window.kueGroundFault && window.kueGroundFault[slotIndex]); if (slot >= 32) { return; @@ -297,6 +293,23 @@ function Kue705FO({ useEffect(() => { setCurrentDisplayValue(schleifenwiderstand); }, [schleifenwiderstand]); + useEffect(() => { + const updateAlarmStatus = () => { + const alarmStatus = + (window.kueAlarm1 && window.kueAlarm1[slotIndex]) || + (window.kueAlarm2 && window.kueAlarm2[slotIndex]) || + (window.kueCableBreak && window.kueCableBreak[slotIndex]) || + (window.kueGroundFault && window.kueGroundFault[slotIndex]); + + setCurrentAlarmStatus(alarmStatus); // Aktualisiere den Alarmstatus + }; + + // Aktualisierung sofort und alle 5 Sekunden + updateAlarmStatus(); + const interval = setInterval(updateAlarmStatus, 5000); + + return () => clearInterval(interval); // Bereinigung bei Entladen der Komponente + }, [slotIndex]); return (
diff --git a/pages/kabelueberwachung.js b/pages/kabelueberwachung.js index 8707500..238a3e9 100644 --- a/pages/kabelueberwachung.js +++ b/pages/kabelueberwachung.js @@ -11,6 +11,7 @@ function Kabelueberwachung() { const [kueID, setKueID] = useState([]); // State to store the KUE names const [schleifenwiderstand, setSchleifenwiderstand] = useState([]); // State to store the resistance values const [kueOnline, setKueOnline] = useState([]); // State to store the module status + const [alarmStatus, setAlarmStatus] = useState([]); // State to store the alarm status // Verwende den useRouter Hook, um den Rack-Parameter zu extrahieren useEffect(() => { @@ -24,24 +25,45 @@ function Kabelueberwachung() { // Load the external JavaScript file and fetch the isolation values useEffect(() => { - loadWindowVariables() - .then(() => { - if (window.kueIso && Array.isArray(window.kueIso)) { - setKueIso(window.kueIso); - } - if (window.kueRes && Array.isArray(window.kueRes)) { - setSchleifenwiderstand(window.kueRes); - } - if (window.kueOnline && Array.isArray(window.kueOnline)) { - setKueOnline(window.kueOnline); - } - if (window.kueID && Array.isArray(window.kueID)) { - setKueID(window.kueID); - } - }) - .catch((error) => { - //console.error("Fehler beim Laden der Variablen:", error); + const fetchData = () => { + loadWindowVariables() + .then(() => { + if (window.kueIso && Array.isArray(window.kueIso)) { + setKueIso(window.kueIso); + } + if (window.kueRes && Array.isArray(window.kueRes)) { + setSchleifenwiderstand(window.kueRes); + } + if (window.kueOnline && Array.isArray(window.kueOnline)) { + setKueOnline(window.kueOnline); + } + if (window.kueID && Array.isArray(window.kueID)) { + setKueID(window.kueID); + } + updateAlarmStatus(); // Alarmstatus sofort aktualisieren + }) + .catch((error) => { + console.error("Fehler beim Laden der Variablen:", error); + }); + }; + + const updateAlarmStatus = () => { + const updatedAlarmStatus = kueIso.map((_, index) => { + return ( + (window.kueAlarm1 && window.kueAlarm1[index]) || + (window.kueAlarm2 && window.kueAlarm2[index]) || + (window.kueCableBreak && window.kueCableBreak[index]) || + (window.kueGroundFault && window.kueGroundFault[index]) + ); }); + console.log("Aktualisierter alarmStatus:", updatedAlarmStatus); + setAlarmStatus(updatedAlarmStatus); // State für Alarmstatus aktualisieren + }; + + fetchData(); + const interval = setInterval(fetchData, 5000); // alle 5 Sekunden + + return () => clearInterval(interval); }, []); // Zuerst alle Werte der Arrays speichern @@ -87,7 +109,68 @@ function Kabelueberwachung() { document.body.removeChild(script); }; }, []); + //---------------------------------------------- + useEffect(() => { + const fetchData = () => { + const existingScript = document.querySelector( + "script[src*='kueData.js']" + ); + // Stelle sicher, dass das Element existiert und ein Kind von `document.body` ist, bevor du es entfernst + if (existingScript && existingScript.parentNode === document.body) { + document.body.removeChild(existingScript); + } + + // Füge das Skript erneut hinzu + const script = document.createElement("script"); + script.src = + process.env.NODE_ENV === "production" + ? "CPL?/CPL/SERVICE/kueData.js" // Produktionspfad + : "/CPLmockData/SERVICE/kueData.js"; // Entwicklungs-Pfad für Mock-Daten + script.async = true; + + script.onload = () => { + // Aktualisiere die Variablen nach kurzer Verzögerung, um sicherzustellen, dass sie geladen sind + setTimeout(() => { + if (window.kueIso && Array.isArray(window.kueIso)) { + setKueIso(window.kueIso); + } + if (window.kueRes && Array.isArray(window.kueRes)) { + setSchleifenwiderstand(window.kueRes); + } + if (window.kueOnline && Array.isArray(window.kueOnline)) { + setKueOnline(window.kueOnline); + } + if (window.kueID && Array.isArray(window.kueID)) { + setKueID(window.kueID); + } + updateAlarmStatus(); // Aktualisiere den Alarmstatus + }, 500); // 500 ms Verzögerung, um sicherzustellen, dass die Daten geladen sind + }; + document.body.appendChild(script); + }; + + const updateAlarmStatus = () => { + const updatedAlarmStatus = window.kueIso.map((_, index) => { + return ( + (window.kueAlarm1 && window.kueAlarm1[index]) || + (window.kueAlarm2 && window.kueAlarm2[index]) || + (window.kueCableBreak && window.kueCableBreak[index]) || + (window.kueGroundFault && window.kueGroundFault[index]) + ); + }); + console.log("Aktualisierter alarmStatus:", updatedAlarmStatus); + setAlarmStatus(updatedAlarmStatus); // Setze den aktualisierten Alarmstatus + }; + + // Lade die Daten sofort und alle 5 Sekunden neu + fetchData(); + const interval = setInterval(fetchData, 5000); + + return () => clearInterval(interval); // Bereinige das Intervall beim Entladen der Komponente + }, []); + + //---------------------------------------------- return (

Kabelüberwachung

diff --git a/public/CPLmockData/SERVICE/kueData.js b/public/CPLmockData/SERVICE/kueData.js index 0a01042..40c31b3 100644 --- a/public/CPLmockData/SERVICE/kueData.js +++ b/public/CPLmockData/SERVICE/kueData.js @@ -1,25 +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 kueIso=[10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.50,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.50,10.00,10.00,10.00,10.00,10.00,10.50,10.00,200.00,200.00,200.00,200.00]; -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 kueAlarm1=[1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0]; -var kueAlarm2=[1,0,1,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0]; -var kueRes=[0.000,0.612,0.000,0.645,0.821,0.970,0.000,0.000,1.452,0.000,0.734,0.370,0.566,0.000,0.738,0.684,1.166,0.595,0.000,1.651,1.180,1.387,1.214,0.000,1.475,0.615,0.494,1.217,65.000,65.000,65.000,65.000]; -var kueCableBreak=[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,1,1,1,1]; -var kueGroundFault=[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 kueLimit1=[10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00,10.00]; -var kueLimit2Low=[0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100,0.100]; -var kueLimit2High=[1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000,1.000]; -var kueDelay1=[420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420]; -var kueLoopInterval=[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6]; -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 kueOverflow=[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,1,1,1,1]; -var kue100V=[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 kueResidence=[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 kueBooting=[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 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 kueIso = [ + 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.5, 10.0, 10.0, 10.0, 10.0, + 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.5, 10.0, 10.0, 10.0, 10.0, 10.0, + 10.5, 10.0, 200.0, 200.0, 200.0, 200.0, +]; +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 kueAlarm1 = [ + 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, + 0, 0, 0, 0, 0, 0, +]; +var kueAlarm2 = [ + 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, +]; +var kueRes = [ + 0.0, 0.612, 0.0, 0.645, 0.821, 0.97, 0.0, 0.0, 1.452, 0.0, 0.734, 0.37, 0.566, + 0.0, 0.738, 0.684, 1.166, 0.595, 0.0, 1.651, 1.18, 1.387, 1.214, 0.0, 1.475, + 0.615, 0.494, 1.217, 65.0, 65.0, 65.0, 65.0, +]; +var kueCableBreak = [ + 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, 1, 1, 1, 1, +]; +var kueGroundFault = [ + 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 kueLimit1 = [ + 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, + 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, + 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, +]; +var kueLimit2Low = [ + 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, + 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, + 0.1, 0.1, +]; +var kueLimit2High = [ + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, +]; +var kueDelay1 = [ + 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, + 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, + 420, 420, +]; +var kueLoopInterval = [ + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, +]; +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 kueOverflow = [ + 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, 1, 1, 1, 1, +]; +var kue100V = [ + 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 kueResidence = [ + 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 kueBooting = [ + 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, +];