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:
@@ -309,41 +309,60 @@ function Kue705FO({
|
||||
return () => clearInterval(interval);
|
||||
}, [slotIndex, kueAlarm1, kueAlarm2, kueCableBreak, kueGroundFault]);
|
||||
|
||||
// Funktion zum Aktualisieren der Anzeige basierend auf dem Alarmstatus mit Icon und Blinken
|
||||
useEffect(() => {
|
||||
const updateDisplay = () => {
|
||||
if (kuePSTmMinus96V?.[slotIndex] === 1) {
|
||||
setCurrentDisplayValue("PST-M prüfen");
|
||||
return;
|
||||
}
|
||||
if (kueCableBreak?.[slotIndex] === 1) {
|
||||
setCurrentDisplayValue(isoDisplayText);
|
||||
return;
|
||||
}
|
||||
if (kueGroundFault?.[slotIndex] === 1) {
|
||||
setCurrentDisplayValue(groundFaultDisplayText);
|
||||
return;
|
||||
}
|
||||
if (kueAlarm1?.[slotIndex] === 1) {
|
||||
setCurrentDisplayValue(isoFaultDisplayText);
|
||||
return;
|
||||
}
|
||||
if (kueAlarm2?.[slotIndex] === 1) {
|
||||
setCurrentDisplayValue(loopFaultDisplayText);
|
||||
return;
|
||||
}
|
||||
if (kueOverflow?.[slotIndex] === 1) {
|
||||
setCurrentDisplayValue(isoGreaterThan200);
|
||||
return;
|
||||
}
|
||||
setCurrentDisplayValue(isolationswert);
|
||||
let intervalId;
|
||||
|
||||
// Funktion zum Blinken des Textes oder Icons
|
||||
const setBlinkingText = (text) => {
|
||||
intervalId = setInterval(() => {
|
||||
setCurrentDisplayValue((prevValue) =>
|
||||
prevValue === text ? (
|
||||
<i
|
||||
className="bi bi-exclamation-triangle"
|
||||
style={{ fontSize: "24px", color: "red" }}
|
||||
></i>
|
||||
) : (
|
||||
text
|
||||
)
|
||||
);
|
||||
}, 5000); // Gesamtdauer von 7 Sekunden für einen vollständigen Blink-Zyklus
|
||||
};
|
||||
|
||||
updateDisplay();
|
||||
const interval = setInterval(updateDisplay, 5000);
|
||||
return () => clearInterval(interval);
|
||||
// Alarmanzeige je nach Status aktualisieren
|
||||
if (kuePSTmMinus96V?.[slotIndex] === 1) {
|
||||
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,
|
||||
isolationswert,
|
||||
isoDisplayText,
|
||||
groundFaultDisplayText,
|
||||
isoFaultDisplayText,
|
||||
loopFaultDisplayText,
|
||||
isoGreaterThan200,
|
||||
kuePSTmMinus96V,
|
||||
kueCableBreak,
|
||||
kueGroundFault,
|
||||
|
||||
Reference in New Issue
Block a user