feat: Digitale Ausgänge aus Redux-Store in UI integriert
- DigitalOutputs.tsx auf Redux umgestellt, um Werte direkt aus dem Store zu lesen - toggleSwitch-Funktion angepasst, um den Status von digitalen Ausgängen in Redux zu aktualisieren - useDigitalOutputsData.ts nutzt nun Redux zum Speichern der `win_da_state` und `win_da_bezeichnung` Werte - Entfernen von Prop `digitalOutputs` in `DigitalOutputs.tsx`, da Redux nun als Datenquelle dient - Weboberfläche zeigt nun digitale Ausgänge korrekt an und Status kann geändert werden
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
addOpcUaUser,
|
||||
removeOpcUaUser,
|
||||
} from "../redux/slices/opcuaSettingsSlice";
|
||||
import { setDigitalOutputs } from "../redux/slices/digitalOutputsSlice";
|
||||
|
||||
// ✅ Interface für `window`-Objekt zur TypeScript-Sicherheit
|
||||
interface CustomWindow extends Window {
|
||||
@@ -234,3 +235,32 @@ const loadAndStoreOpcUaSettings = (win: CustomWindow) => {
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// ✅ Funktion zum Speichern der digitalen Ausgänge in Redux
|
||||
const loadAndStoreDigitalOutputs = (win: CustomWindow) => {
|
||||
console.log("Prüfe digitale Ausgänge in window:");
|
||||
console.log("win_da_state:", win.win_da_state);
|
||||
console.log("win_da_bezeichnung:", win.win_da_bezeichnung);
|
||||
|
||||
if (
|
||||
Array.isArray(win.win_da_state) &&
|
||||
Array.isArray(win.win_da_bezeichnung) &&
|
||||
win.win_da_state.length === win.win_da_bezeichnung.length
|
||||
) {
|
||||
const digitalOutputs = win.win_da_state.map(
|
||||
(status: number, index: number) => ({
|
||||
id: index + 1,
|
||||
label: win.win_da_bezeichnung[index] || `Ausgang ${index + 1}`,
|
||||
status: status === 1, // Status in Boolean umwandeln
|
||||
})
|
||||
);
|
||||
|
||||
console.log("Dispatching digitalOutputs:", digitalOutputs);
|
||||
store.dispatch(setDigitalOutputs(digitalOutputs));
|
||||
} else {
|
||||
console.warn("Digitale Ausgänge konnten nicht geladen werden:", {
|
||||
da_state: win.win_da_state,
|
||||
da_bezeichnung: win.win_da_bezeichnung,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user