feat: Alarmanzeige mit blinkendem Icon und Text für Alarmstatus implementiert

- useEffect-Hook erweitert, um die Alarmanzeige mit blinkendem Text und Icon zu versehen.
- Verschiedene Alarmstatus (kueCableBreak, kueGroundFault, kueAlarm1, kueAlarm2, kueOverflow) triggern abwechselnde Anzeige von Text und Icon.
- Icon erscheint 2 Sekunden lang, gefolgt von 5 Sekunden Text zur verbesserten Benutzererkennung.
- Cleanup für Intervall hinzugefügt, um Speicherlecks zu vermeiden.
This commit is contained in:
ISA
2024-11-06 08:07:41 +01:00
parent df22aa2b5d
commit 2d2889a36d

View File

@@ -309,41 +309,60 @@ function Kue705FO({
return () => clearInterval(interval); return () => clearInterval(interval);
}, [slotIndex, kueAlarm1, kueAlarm2, kueCableBreak, kueGroundFault]); }, [slotIndex, kueAlarm1, kueAlarm2, kueCableBreak, kueGroundFault]);
// Funktion zum Aktualisieren der Anzeige basierend auf dem Alarmstatus mit Icon und Blinken
useEffect(() => { useEffect(() => {
const updateDisplay = () => { let intervalId;
if (kuePSTmMinus96V?.[slotIndex] === 1) {
setCurrentDisplayValue("PST-M prüfen"); // Funktion zum Blinken des Textes oder Icons
return; const setBlinkingText = (text) => {
} intervalId = setInterval(() => {
if (kueCableBreak?.[slotIndex] === 1) { setCurrentDisplayValue((prevValue) =>
setCurrentDisplayValue(isoDisplayText); prevValue === text ? (
return; <i
} className="bi bi-exclamation-triangle"
if (kueGroundFault?.[slotIndex] === 1) { style={{ fontSize: "24px", color: "red" }}
setCurrentDisplayValue(groundFaultDisplayText); ></i>
return; ) : (
} text
if (kueAlarm1?.[slotIndex] === 1) { )
setCurrentDisplayValue(isoFaultDisplayText); );
return; }, 5000); // Gesamtdauer von 7 Sekunden für einen vollständigen Blink-Zyklus
}
if (kueAlarm2?.[slotIndex] === 1) {
setCurrentDisplayValue(loopFaultDisplayText);
return;
}
if (kueOverflow?.[slotIndex] === 1) {
setCurrentDisplayValue(isoGreaterThan200);
return;
}
setCurrentDisplayValue(isolationswert);
}; };
updateDisplay(); // Alarmanzeige je nach Status aktualisieren
const interval = setInterval(updateDisplay, 5000); if (kuePSTmMinus96V?.[slotIndex] === 1) {
return () => clearInterval(interval); clearInterval(intervalId); // Vorheriges Intervall stoppen
setCurrentDisplayValue("PST-M prüfen");
} else if (kueCableBreak?.[slotIndex] === 1) {
clearInterval(intervalId);
setBlinkingText(isoDisplayText);
} else if (kueGroundFault?.[slotIndex] === 1) {
clearInterval(intervalId);
setBlinkingText(groundFaultDisplayText);
} else if (kueAlarm1?.[slotIndex] === 1) {
clearInterval(intervalId);
setBlinkingText(isoFaultDisplayText);
} else if (kueAlarm2?.[slotIndex] === 1) {
clearInterval(intervalId);
setBlinkingText(loopFaultDisplayText);
} else if (kueOverflow?.[slotIndex] === 1) {
clearInterval(intervalId);
setBlinkingText(isoGreaterThan200);
} else {
clearInterval(intervalId);
setCurrentDisplayValue(isolationswert); // Kein Alarm aktiv
}
// Cleanup, um das Intervall zu stoppen, wenn sich der Status ändert oder der Effekt aufgeräumt wird
return () => clearInterval(intervalId);
}, [ }, [
slotIndex, slotIndex,
isolationswert, isolationswert,
isoDisplayText,
groundFaultDisplayText,
isoFaultDisplayText,
loopFaultDisplayText,
isoGreaterThan200,
kuePSTmMinus96V, kuePSTmMinus96V,
kueCableBreak, kueCableBreak,
kueGroundFault, kueGroundFault,