loadWindowVariables.js optimiert

This commit is contained in:
ISA
2024-10-28 15:30:25 +01:00
parent 60fecd9045
commit e9e9c188a3
2 changed files with 43 additions and 16 deletions

View File

@@ -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,

View File

@@ -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
}
})