114 lines
2.9 KiB
TypeScript
114 lines
2.9 KiB
TypeScript
// ✅ Slice: /redux/slices/kueDataSlice.ts
|
|
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
|
|
|
|
interface KueDataState {
|
|
//---------------------
|
|
kueBezeichnungen: string[];
|
|
isolationsgrenzwerte: number[];
|
|
verzoegerung: number[];
|
|
untereSchleifenGrenzwerte: number[];
|
|
obereSchleifenGrenzwerte: number[];
|
|
schleifenintervall: number[];
|
|
//---------------
|
|
counter: number | null;
|
|
flutter: string | null;
|
|
//-----------------------
|
|
//-----------------------
|
|
kueOnline: number[];
|
|
kueID: string[];
|
|
kueName: string[];
|
|
kuePSTmMinus96V: number[];
|
|
kueAlarm1: number[];
|
|
kueAlarm2: number[];
|
|
kueIso: number[];
|
|
kueResidence: number[];
|
|
kueCableBreak: number[];
|
|
kueGroundFault: number[];
|
|
kueLimit1: number[];
|
|
kueLimit2Low: number[];
|
|
kueDelay1: number[];
|
|
kueLoopInterval: number[];
|
|
kueVersion: number[];
|
|
kueOverflow: number[];
|
|
|
|
tdrAtten: number[];
|
|
tdrPulse: number[];
|
|
tdrSpeed: number[];
|
|
tdrAmp: number[];
|
|
tdrTrigger: number[];
|
|
tdrLocation: number[];
|
|
tdrActive: number[];
|
|
tdrLast: string[];
|
|
tdrOverflow: number[];
|
|
kueLimit2High: number[];
|
|
memoryInterval: number[];
|
|
// Fallsensors
|
|
win_fallSensorsActive: number[];
|
|
// KVZ System - 32 Slots mit je 4 LEDs
|
|
kvzPresence: number[]; // 32 Werte: 1 = KVZ vorhanden, 0 = nicht vorhanden
|
|
kvzActive: number[]; // 32 Werte: 1 = KVZ aktiviert, 0 = deaktiviert
|
|
kvzStatus: number[]; // 128 Werte: 4 LEDs pro Slot (32 * 4)
|
|
}
|
|
|
|
const initialState: KueDataState = {
|
|
//---------------------
|
|
kueBezeichnungen: [],
|
|
isolationsgrenzwerte: [],
|
|
verzoegerung: [],
|
|
untereSchleifenGrenzwerte: [],
|
|
obereSchleifenGrenzwerte: [],
|
|
schleifenintervall: [],
|
|
//---------------
|
|
counter: null,
|
|
flutter: null,
|
|
//-----------------------
|
|
//-----------------------
|
|
kueOnline: [],
|
|
kueID: [],
|
|
kueName: [],
|
|
kuePSTmMinus96V: [],
|
|
kueAlarm1: [],
|
|
kueAlarm2: [],
|
|
kueIso: [],
|
|
kueResidence: [],
|
|
kueCableBreak: [],
|
|
kueGroundFault: [],
|
|
kueLimit1: [],
|
|
kueLimit2Low: [],
|
|
kueDelay1: [],
|
|
kueLoopInterval: [],
|
|
kueVersion: [],
|
|
kueOverflow: [],
|
|
|
|
tdrAtten: [],
|
|
tdrPulse: [],
|
|
tdrSpeed: [],
|
|
tdrAmp: [],
|
|
tdrTrigger: [],
|
|
tdrLocation: [],
|
|
tdrActive: [],
|
|
tdrLast: [],
|
|
tdrOverflow: [],
|
|
kueLimit2High: [],
|
|
memoryInterval: [],
|
|
// Fallsensors
|
|
win_fallSensorsActive: [], // Fallsensors aktiv
|
|
// KVZ System - 32 Slots mit je 4 LEDs
|
|
kvzPresence: new Array(32).fill(0), // 32 Slots: 1 = KVZ vorhanden, 0 = nicht vorhanden
|
|
kvzActive: new Array(32).fill(0), // 32 Slots: 1 = KVZ aktiviert, 0 = deaktiviert
|
|
kvzStatus: new Array(128).fill(0), // 128 LEDs: 4 LEDs pro Slot (32 * 4)
|
|
};
|
|
|
|
const kueDataSlice = createSlice({
|
|
name: "kueDataSlice",
|
|
initialState,
|
|
reducers: {
|
|
setKueData: (state, action: PayloadAction<Partial<KueDataState>>) => {
|
|
return { ...state, ...action.payload };
|
|
},
|
|
},
|
|
});
|
|
|
|
export const { setKueData } = kueDataSlice.actions;
|
|
export default kueDataSlice.reducer;
|