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);
|
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,
|
||||||
|
|||||||
Reference in New Issue
Block a user