149 lines
3.7 KiB
TypeScript
149 lines
3.7 KiB
TypeScript
// store/variablesSlice.ts
|
|
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
|
|
|
|
// Typ für den State
|
|
export interface VariablesState {
|
|
//------------
|
|
kueBezeichnungen: string[];
|
|
isolationsgrenzwerte: number[];
|
|
verzoegerung: number[];
|
|
untereSchleifenGrenzwerte: number[];
|
|
obereSchleifenGrenzwerte: number[];
|
|
schleifenintervall: number[];
|
|
//---------------
|
|
last20Messages: string | null;
|
|
deviceName: string | null;
|
|
mac1: string | null;
|
|
ip: string | null;
|
|
subnet: string | null;
|
|
gateway: string | null;
|
|
cplInternalTimestamp: string | null;
|
|
ntp1: string | null;
|
|
ntp2: string | null;
|
|
ntp3: string | null;
|
|
ntpTimezone: string | null;
|
|
ntpActive: boolean | null;
|
|
de: string | null;
|
|
counter: number | null;
|
|
flutter: string | null;
|
|
kueOnline: string[] | number[];
|
|
kueID: string[];
|
|
kueIso: string[];
|
|
kuePSTmMinus96V: string[];
|
|
kueAlarm1: number[];
|
|
kueAlarm2: number[];
|
|
kueResidence: string[];
|
|
kueCableBreak: number[];
|
|
kueGroundFault: number[];
|
|
kueLimit1: number | null;
|
|
kueLimit2Low: number | null;
|
|
kueDelay1: number | null;
|
|
kueLoopInterval: number | null;
|
|
kueVersion: number[] | string[];
|
|
tdrAtten: number | null;
|
|
tdrPulse: number | null;
|
|
tdrSpeed: number | null;
|
|
tdrAmp: number | null;
|
|
tdrTrigger: number | null;
|
|
tdrLocation: number | null;
|
|
tdrActive: boolean | null;
|
|
kueOverflow: string | null;
|
|
tdrLast: string | null;
|
|
appVersion: string | null;
|
|
win_analogeEingaenge1: string | null;
|
|
win_analogeEingaenge2: string | null;
|
|
win_analogeEingaenge3: string | null;
|
|
win_analogeEingaenge4: string | null;
|
|
win_analogeEingaenge5: string | null;
|
|
win_analogeEingaenge6: string | null;
|
|
win_analogeEingaenge7: string | null;
|
|
win_analogeEingaenge8: string | null;
|
|
}
|
|
|
|
// Initialer Zustand
|
|
const initialState: VariablesState = {
|
|
//------------
|
|
kueBezeichnungen: [],
|
|
isolationsgrenzwerte: [],
|
|
verzoegerung: [],
|
|
untereSchleifenGrenzwerte: [],
|
|
obereSchleifenGrenzwerte: [],
|
|
schleifenintervall: [],
|
|
//---------------
|
|
last20Messages: null,
|
|
deviceName: null,
|
|
mac1: null,
|
|
ip: null,
|
|
subnet: null,
|
|
gateway: null,
|
|
cplInternalTimestamp: null,
|
|
ntp1: null,
|
|
ntp2: null,
|
|
ntp3: null,
|
|
ntpTimezone: null,
|
|
ntpActive: null,
|
|
de: null,
|
|
counter: null,
|
|
flutter: null,
|
|
kueOnline: [],
|
|
kueID: [],
|
|
kueIso: [],
|
|
kuePSTmMinus96V: [],
|
|
kueAlarm1: [],
|
|
kueAlarm2: [],
|
|
kueResidence: [],
|
|
kueCableBreak: [],
|
|
kueGroundFault: [],
|
|
kueLimit1: null,
|
|
kueLimit2Low: null,
|
|
kueDelay1: null,
|
|
kueLoopInterval: null,
|
|
kueVersion: [],
|
|
tdrAtten: null,
|
|
tdrPulse: null,
|
|
tdrSpeed: null,
|
|
tdrAmp: null,
|
|
tdrTrigger: null,
|
|
tdrLocation: null,
|
|
tdrActive: null,
|
|
kueOverflow: null,
|
|
tdrLast: null,
|
|
appVersion: null,
|
|
win_analogeEingaenge1: null,
|
|
win_analogeEingaenge2: null,
|
|
win_analogeEingaenge3: null,
|
|
win_analogeEingaenge4: null,
|
|
win_analogeEingaenge5: null,
|
|
win_analogeEingaenge6: null,
|
|
win_analogeEingaenge7: null,
|
|
win_analogeEingaenge8: null,
|
|
};
|
|
|
|
// Slice erstellen
|
|
const variablesSlice = createSlice({
|
|
name: "variables",
|
|
initialState,
|
|
reducers: {
|
|
setVariable(
|
|
state,
|
|
action: PayloadAction<{
|
|
key: keyof VariablesState;
|
|
value: VariablesState[keyof VariablesState];
|
|
}>
|
|
) {
|
|
const { key, value } = action.payload;
|
|
(state[key] as VariablesState[keyof VariablesState]) = value;
|
|
},
|
|
setVariables(state, action: PayloadAction<Partial<VariablesState>>) {
|
|
Object.entries(action.payload).forEach(([key, value]) => {
|
|
(state[
|
|
key as keyof VariablesState
|
|
] as VariablesState[keyof VariablesState]) = value!;
|
|
});
|
|
},
|
|
},
|
|
});
|
|
|
|
export const { setVariable, setVariables } = variablesSlice.actions;
|
|
export default variablesSlice.reducer;
|