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.onload = () => {
|
||||
console.log(`System.js wurde erfolgreich geladen.`);
|
||||
// console.log(`System.js wurde erfolgreich geladen.`);
|
||||
|
||||
// Systemvariablen überprüfen und zuweisen
|
||||
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 }) => {
|
||||
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 (
|
||||
<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="flex w-full mb-1 items-start justify-start">{slot}</div>
|
||||
<div className="text-[10px]">{moduleName}</div>
|
||||
<div className="text-[10px]">{moduleType}</div>
|
||||
</div>
|
||||
{/* Status-Anzeige */}
|
||||
<div
|
||||
className={`w-full h-2/6 ${
|
||||
isCableBreak || isAlarm1 || isAlarm2 || groundFault
|
||||
|
||||
@@ -8,7 +8,7 @@ function MyApp({ Component, pageProps }) {
|
||||
// Client-seitige Logik kann hier hinzugefügt werden
|
||||
useEffect(() => {
|
||||
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);
|
||||
});
|
||||
}, []);
|
||||
//---------------------------------------------------
|
||||
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() {
|
||||
<div className="flex gap-1">
|
||||
{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 (
|
||||
<div
|
||||
key={slotNumber}
|
||||
className={`cursor-pointer ${alarmClass}`} // Sicherstellen, dass cursor-pointer hier verwendet wird
|
||||
onClick={() => handleModuleClick(i + 1)} // Bei Klick navigieren
|
||||
className="cursor-pointer"
|
||||
onClick={() => handleModuleClick(i + 1)}
|
||||
>
|
||||
<KabelModulStatus
|
||||
slot={slotNumber}
|
||||
isOnline={version !== 0} // Prüfen, ob ein Modul online ist
|
||||
isOnline={isSlotOnline} // Online-Status weitergeben
|
||||
moduleVersion={moduleVersion}
|
||||
kueCableBreak={kueCableBreak}
|
||||
/>
|
||||
@@ -253,6 +258,7 @@ function Dashboard() {
|
||||
|
||||
return baugruppen;
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col p-4">
|
||||
{/* 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 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','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?'];
|
||||
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",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
"?",
|
||||
];
|
||||
|
||||
@@ -62,7 +62,6 @@ export async function loadWindowVariables() {
|
||||
|
||||
const scripts = [
|
||||
"de.js",
|
||||
"kueConfig.js",
|
||||
"kueData.js",
|
||||
"kueDetailTdr.js",
|
||||
"Start.js",
|
||||
|
||||
Reference in New Issue
Block a user