From e9e9c188a3bbfacffa43f781c221083aae9fd144 Mon Sep 17 00:00:00 2001 From: ISA Date: Mon, 28 Oct 2024 15:30:25 +0100 Subject: [PATCH] loadWindowVariables.js optimiert --- public/CPLmockData/SERVICE/kueData.js | 10 +++++- utils/loadWindowVariables.js | 49 +++++++++++++++++++-------- 2 files changed, 43 insertions(+), 16 deletions(-) diff --git a/public/CPLmockData/SERVICE/kueData.js b/public/CPLmockData/SERVICE/kueData.js index b90ea02..fc8e7ef 100644 --- a/public/CPLmockData/SERVICE/kueData.js +++ b/public/CPLmockData/SERVICE/kueData.js @@ -32,7 +32,15 @@ var kueAlarm1 = [ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, ]; -// Verzögerung in Sekunden +/* +Verzögerung/Filterzeit 420 Sekunden Standardeinstellung +In dem Beispiel muss der Isolationswiderstand für die gesamte Filterzeit von 420 Sekunden + kontinuierlich unter dem Grenzwert bleiben, damit ein Isolationsfehler erkannt und das Signal weitergeleitet wird. + +Wenn der Widerstand innerhalb dieser 420 Sekunden wieder über den Grenzwert steigt, wird der Alarm nicht ausgelöst und +die Filterzeit startet beim nächsten Unterschreiten des Grenzwerts neu. Die Filterzeit verhindert also, dass +kurzfristige Schwankungen oder Störungen fälschlicherweise als Fehler gemeldet werden. +*/ var kueDelay1 = [ 410, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, diff --git a/utils/loadWindowVariables.js b/utils/loadWindowVariables.js index b449b3b..a7ecc0f 100644 --- a/utils/loadWindowVariables.js +++ b/utils/loadWindowVariables.js @@ -60,37 +60,56 @@ export async function loadWindowVariables() { const scripts = ["de.js", "kueData.js", "Start.js", "System.js"]; - // Erster Aufruf zum Laden aller Skripte - Promise.all(scripts.map(loadScript)) + // Lade die Skripte nacheinander + scripts + .reduce((promise, script) => { + return promise.then(() => loadScript(script)); + }, Promise.resolve()) .then(() => { - // Einmaliger direkter Check, ob alle Variablen vorhanden sind - const missingVarsInitial = requiredVars.filter( - (variable) => window[variable] === undefined - ); + const checkVariables = () => { + const missingVars = requiredVars.filter( + (variable) => window[variable] === undefined + ); + return missingVars; + }; - if (missingVarsInitial.length === 0) { - // Alle Variablen sind geladen, keine weiteren Checks notwendig + // Einmalige Überprüfung nach dem Laden aller Skripte + const initialMissingVars = checkVariables(); + + if (initialMissingVars.length === 0) { console.log("Alle Systemvariablen beim ersten Aufruf geladen."); resolve(); } else { console.log( "Noch fehlende Variablen beim ersten Aufruf:", - missingVarsInitial + initialMissingVars ); - // Falls Variablen fehlen, starte das Intervall + // Falls Variablen fehlen, starte ein Intervall zur wiederholten Überprüfung + const maxChecks = 10; + let checkCount = 0; const checkInterval = setInterval(() => { - const missingVars = requiredVars.filter( - (variable) => window[variable] === undefined - ); + const remainingMissingVars = checkVariables(); - if (missingVars.length === 0) { + if (remainingMissingVars.length === 0) { clearInterval(checkInterval); console.log("Alle fehlenden Systemvariablen sind jetzt geladen."); resolve(); + } else if (checkCount >= maxChecks) { + clearInterval(checkInterval); + console.warn( + "Einige Variablen wurden nicht geladen:", + remainingMissingVars + ); + reject( + new Error( + "Einige Variablen fehlen nach wiederholten Versuchen." + ) + ); } else { - console.log("Noch fehlende Variablen:", missingVars); + console.log("Noch fehlende Variablen:", remainingMissingVars); } + checkCount++; }, 10000); // Überprüfung alle 10 Sekunden } })