fix: Verhindere Wechsel zwischen aktivem und inaktivem Status bei leerem Slot
- 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.
This commit is contained in:
@@ -41,7 +41,7 @@ function Header() {
|
|||||||
|
|
||||||
script.async = true;
|
script.async = true;
|
||||||
script.onload = () => {
|
script.onload = () => {
|
||||||
console.log(`System.js wurde erfolgreich geladen.`);
|
// console.log(`System.js wurde erfolgreich geladen.`);
|
||||||
|
|
||||||
// Systemvariablen überprüfen und zuweisen
|
// Systemvariablen überprüfen und zuweisen
|
||||||
if (window.deviceName) {
|
if (window.deviceName) {
|
||||||
|
|||||||
@@ -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 }) => {
|
const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => {
|
||||||
if (!isOnline) {
|
if (!isOnline) {
|
||||||
return (
|
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 moduleName = "";
|
||||||
let moduleType = "";
|
let moduleType = "";
|
||||||
|
|
||||||
@@ -26,6 +22,7 @@ const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => {
|
|||||||
moduleType = "___";
|
moduleType = "___";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Status nur prüfen, wenn der Slot aktiv ist (kueOnline für den Slot ist 1)
|
||||||
const isCableBreak = kueCableBreak[slot - 1] === 1;
|
const isCableBreak = kueCableBreak[slot - 1] === 1;
|
||||||
const isAlarm1 = kueAlarm1[slot - 1] === 1;
|
const isAlarm1 = kueAlarm1[slot - 1] === 1;
|
||||||
const isAlarm2 = kueAlarm2[slot - 1] === 1;
|
const isAlarm2 = kueAlarm2[slot - 1] === 1;
|
||||||
@@ -33,13 +30,11 @@ const KabelModulStatus = ({ slot, kueCableBreak, isOnline, moduleVersion }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="border border-gray-400 w-10 h-20 flex flex-col">
|
<div className="border border-gray-400 w-10 h-20 flex flex-col">
|
||||||
{/* Slot-Nummer anzeigen */}
|
|
||||||
<div className="bg-littwin-blue flex-grow flex flex-col items-center justify-center text-white text-[10px]">
|
<div className="bg-littwin-blue flex-grow flex flex-col items-center justify-center text-white text-[10px]">
|
||||||
<div className="flex w-full mb-1 items-start justify-start">{slot}</div>
|
<div className="flex w-full mb-1 items-start justify-start">{slot}</div>
|
||||||
<div className="text-[10px]">{moduleName}</div>
|
<div className="text-[10px]">{moduleName}</div>
|
||||||
<div className="text-[10px]">{moduleType}</div>
|
<div className="text-[10px]">{moduleType}</div>
|
||||||
</div>
|
</div>
|
||||||
{/* Status-Anzeige */}
|
|
||||||
<div
|
<div
|
||||||
className={`w-full h-2/6 ${
|
className={`w-full h-2/6 ${
|
||||||
isCableBreak || isAlarm1 || isAlarm2 || groundFault
|
isCableBreak || isAlarm1 || isAlarm2 || groundFault
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ function MyApp({ Component, pageProps }) {
|
|||||||
// Client-seitige Logik kann hier hinzugefügt werden
|
// Client-seitige Logik kann hier hinzugefügt werden
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (typeof window !== "undefined") {
|
if (typeof window !== "undefined") {
|
||||||
console.log("Client-side logic can run here.");
|
//console.log("Client-side logic can run here.");
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|||||||
@@ -166,21 +166,28 @@ function Dashboard() {
|
|||||||
setError("Konnte die Variablen nicht laden: " + error.message);
|
setError("Konnte die Variablen nicht laden: " + error.message);
|
||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
//---------------------------------------------------
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (typeof window !== "undefined") {
|
if (typeof window !== "undefined") {
|
||||||
const updateData = () => {
|
const updateData = () => {
|
||||||
loadWindowVariables()
|
loadWindowVariables()
|
||||||
.then(() => {
|
.then(() => {
|
||||||
//console.log("Updating last20Messages:", window.last20Messages);
|
|
||||||
setLast20Messages(parseMessages(window.last20Messages || ""));
|
setLast20Messages(parseMessages(window.last20Messages || ""));
|
||||||
setIp(window.ip || "");
|
setIp(window.ip || "");
|
||||||
setSubnet(window.subnet || "");
|
setSubnet(window.subnet || "");
|
||||||
setGateway(window.gateway || "");
|
setGateway(window.gateway || "");
|
||||||
setAppVersion(window.appVersion || "");
|
setAppVersion(window.appVersion || "");
|
||||||
|
|
||||||
|
// Prüfen, ob der Slot in kueOnline aktiv ist, bevor kueCableBreak gesetzt wird
|
||||||
const cableBreakArray = Array.isArray(window.kueCableBreak)
|
const cableBreakArray = Array.isArray(window.kueCableBreak)
|
||||||
? window.kueCableBreak.map(Number)
|
? window.kueCableBreak.map((value, index) =>
|
||||||
: (window.kueCableBreak || "").split(",").map(Number);
|
window.kueOnline[index] === 1 ? Number(value) : 0
|
||||||
|
)
|
||||||
|
: (window.kueCableBreak || "")
|
||||||
|
.split(",")
|
||||||
|
.map((value, index) =>
|
||||||
|
window.kueOnline[index] === 1 ? Number(value) : 0
|
||||||
|
);
|
||||||
setKueCableBreak(cableBreakArray);
|
setKueCableBreak(cableBreakArray);
|
||||||
|
|
||||||
const onlineArray = Array.isArray(window.kueOnline)
|
const onlineArray = Array.isArray(window.kueOnline)
|
||||||
@@ -202,11 +209,15 @@ function Dashboard() {
|
|||||||
return () => clearInterval(intervalId);
|
return () => clearInterval(intervalId);
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
//---------------------------------------------------
|
||||||
const handleModuleClick = (rackNumber) => {
|
const handleModuleClick = (rackNumber) => {
|
||||||
// Navigiere zu /kabelueberwachung und übermittle den rackNumber als Parameter
|
// Navigiere zu /kabelueberwachung und übermittle den rackNumber als Parameter
|
||||||
router.push(`/kabelueberwachung?rack=${rackNumber}`);
|
router.push(`/kabelueberwachung?rack=${rackNumber}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// app/dashboard/page.jsx
|
||||||
|
// app/dashboard/page.jsx
|
||||||
const renderBaugruppentraeger = () => {
|
const renderBaugruppentraeger = () => {
|
||||||
const baugruppen = [];
|
const baugruppen = [];
|
||||||
const numBaugruppen = Math.ceil(kueOnline.length / 8);
|
const numBaugruppen = Math.ceil(kueOnline.length / 8);
|
||||||
@@ -219,27 +230,21 @@ function Dashboard() {
|
|||||||
<div className="flex gap-1">
|
<div className="flex gap-1">
|
||||||
{slots.map((version, index) => {
|
{slots.map((version, index) => {
|
||||||
const slotNumber = i * 8 + index + 1;
|
const slotNumber = i * 8 + index + 1;
|
||||||
|
const isSlotOnline = kueOnline[slotNumber - 1] === 1; // Prüfe, ob der Slot online ist
|
||||||
|
|
||||||
const moduleVersion = window.kueVersion
|
const moduleVersion = window.kueVersion
|
||||||
? window.kueVersion[slotNumber - 1]
|
? window.kueVersion[slotNumber - 1]
|
||||||
: version;
|
: 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 (
|
return (
|
||||||
<div
|
<div
|
||||||
key={slotNumber}
|
key={slotNumber}
|
||||||
className={`cursor-pointer ${alarmClass}`} // Sicherstellen, dass cursor-pointer hier verwendet wird
|
className="cursor-pointer"
|
||||||
onClick={() => handleModuleClick(i + 1)} // Bei Klick navigieren
|
onClick={() => handleModuleClick(i + 1)}
|
||||||
>
|
>
|
||||||
<KabelModulStatus
|
<KabelModulStatus
|
||||||
slot={slotNumber}
|
slot={slotNumber}
|
||||||
isOnline={version !== 0} // Prüfen, ob ein Modul online ist
|
isOnline={isSlotOnline} // Online-Status weitergeben
|
||||||
moduleVersion={moduleVersion}
|
moduleVersion={moduleVersion}
|
||||||
kueCableBreak={kueCableBreak}
|
kueCableBreak={kueCableBreak}
|
||||||
/>
|
/>
|
||||||
@@ -253,6 +258,7 @@ function Dashboard() {
|
|||||||
|
|
||||||
return baugruppen;
|
return baugruppen;
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-col p-4">
|
<div className="flex flex-col p-4">
|
||||||
{/* Letzte Meldungen - Titel und Icon Bereich */}
|
{/* Letzte Meldungen - Titel und Icon Bereich */}
|
||||||
|
|||||||
@@ -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 kueOnline = [
|
||||||
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];
|
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 tdrAtten = [
|
||||||
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'];
|
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 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];
|
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 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 = [
|
||||||
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];
|
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];
|
0, 0, 0, 0, 0, 0,
|
||||||
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 tdrSpeed = [
|
||||||
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];
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
|
||||||
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];
|
100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
|
||||||
var tdrLast=['2024-10-17 07:51:54:000','2024-09-30 08:38:50:000','?','?','?','?','?','?','2024-09-30 08:36:43:000','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?'];
|
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",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
"?",
|
||||||
|
];
|
||||||
|
|||||||
@@ -62,7 +62,6 @@ export async function loadWindowVariables() {
|
|||||||
|
|
||||||
const scripts = [
|
const scripts = [
|
||||||
"de.js",
|
"de.js",
|
||||||
"kueConfig.js",
|
|
||||||
"kueData.js",
|
"kueData.js",
|
||||||
"kueDetailTdr.js",
|
"kueDetailTdr.js",
|
||||||
"Start.js",
|
"Start.js",
|
||||||
|
|||||||
Reference in New Issue
Block a user