feat: API zum gezielten Überschreiben einzelner KUE-Mock-Werte erstellt

- nur betroffene window.win_*[slot] Werte werden ersetzt
- gesamte Datei bleibt erhalten
- handleSave übermittelt nur geänderte Felder und Slot
This commit is contained in:
Ismail Ali
2025-04-16 22:17:56 +02:00
parent 49ccf1da5d
commit 28775ab63c
4 changed files with 35 additions and 82 deletions

View File

@@ -46,11 +46,7 @@ var win_kueIso = [
10.5, 10.0, 200.0, 200.0, 200.0, 200.0,
];
//Grenzwert (MOhm) für Isolationswiderstand
var win_kueLimit1 = [
9, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0,
10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0,
10.0, 10.0, 10.0, 10.0, 10.0, 10.0,
];
var win_kueLimit1 = [ "8.9", 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0, ];
/*
Verzögerung/Filterzeit 420 Sekunden Standardeinstellung
@@ -61,11 +57,7 @@ Wenn der Widerstand innerhalb dieser 420 Sekunden wieder über den Grenzwert ste
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 win_kueDelay1 = [
10, 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, 420,
420,
];
var win_kueDelay1 = [ 10, 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, 420, 420, ];
//---------------------------------------------------
//Schleifenwiderstand in Display (resDisplay) Einheit: KOhm
var win_kueResidence = [
@@ -74,17 +66,11 @@ var win_kueResidence = [
0.615, 0.494, 1.217, 65.0, 65.0, 65.0, 65.0,
];
//Schleifenmessung Unterer Grenzwert (KOhm)
var win_kueLimit2Low = [
0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
0.1, 0.1,
];
var win_kueLimit2Low = [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, ];
var win_kueLimit2High = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ];
//Schleifenintervall (h) für Schleifenmessung
var win_kueLoopInterval = [
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6,
];
var win_kueLoopInterval = [ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, ];
//---------------------------------------------------
//KÜ Modul Version soll /100 und davor V angezeigt werden z.B. 4.19V
var win_kueVersion = [
@@ -94,40 +80,7 @@ var win_kueVersion = [
];
//Modulname in Komponente und auf der Anzeige
var win_kueID = [
"FTZ_2",
"B23",
"Kabel 3",
"Kabel 4",
"Kabel 5",
"Kabel 6",
"FTZ4562",
"Kabel 8",
"12344",
"Kabel 10",
"Kabel 11",
"Kabel 12",
"Kabel 13",
"Kabel 14",
"Kabel 15",
"H56-77",
"Kabel 17",
"Kabel 18",
"Kabel 19",
"Kabel 20",
"Kabel 21",
"Kabel 22",
"Kabel 23",
"Kabel 24",
"Kabel 25",
"Kabel 26",
"Kabel 27",
"Kabel 28",
"Kabel 29",
"Kabel 30",
"Kabel 31",
"Kabel 32",
];
var win_kueID = [ "FTZ_2", "B23", "Kabel 3", "Kabel 4", "Kabel 5", "Kabel 6", "FTZ4562", "Kabel 8", "12344", "Kabel 10", "Kabel 11", "Kabel 12", "Kabel 13", "Kabel 14", "Kabel 15", "H56-77", "Kabel 17", "Kabel 18", "Kabel 19", "Kabel 20", "Kabel 21", "Kabel 22", "Kabel 23", "Kabel 24", "Kabel 25", "Kabel 26", "Kabel 27", "Kabel 28", "Kabel 29", "Kabel 30", "Kabel 31", "Kabel 32", ];
//---------------------------------------------------

View File

@@ -88,14 +88,14 @@ const handleSave = async ({
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
data: {
kueID: ids,
kueBezeichnungen: bezeichnungen,
isolationsgrenzwerte,
verzoegerung,
untereSchleifenGrenzwerte,
obereSchleifenGrenzwerte,
schleifenintervall,
slot,
changes: {
win_kueID: ids[slot],
win_kueLimit1: isolationsgrenzwerte[slot],
win_kueDelay1: verzoegerung[slot],
win_kueLimit2Low: untereSchleifenGrenzwerte[slot],
win_kueLimit2High: obereSchleifenGrenzwerte[slot],
win_kueLoopInterval: schleifenintervall[slot],
},
}),
});

View File

@@ -6,5 +6,5 @@
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
*/
const webVersion = "1.6.237";
const webVersion = "1.6.238";
export default webVersion;

View File

@@ -11,36 +11,36 @@ export default async function handler(
return res.status(405).json({ error: "Method not allowed" });
}
const { data } = req.body;
const { slot, changes } = req.body;
if (!data) {
return res.status(400).json({ error: "No data provided" });
if (slot === undefined || !changes || typeof changes !== "object") {
return res.status(400).json({ error: "Missing slot or changes" });
}
const filePath = path.join(
process.cwd(),
"apiMockData",
"SERVICE",
"kueDataMockData.js"
"kabelueberwachungMockData.js"
);
try {
const fileContent =
`window.win_kueID = ${JSON.stringify(data.kueID)};\n` +
`window.win_kuePSTmMinus96V = ${JSON.stringify(
data.kueBezeichnungen
)};\n` +
`window.win_kueLimit1 = ${JSON.stringify(data.isolationsgrenzwerte)};\n` +
`window.win_kueDelay1 = ${JSON.stringify(data.verzoegerung)};\n` +
`window.win_kueLimit2Low = ${JSON.stringify(
data.untereSchleifenGrenzwerte
)};\n` +
`window.win_kueLimit2High = ${JSON.stringify(
data.obereSchleifenGrenzwerte
)};\n` +
`window.win_kueLoopInterval = ${JSON.stringify(
data.schleifenintervall
)};\n`;
let fileContent = await fs.readFile(filePath, "utf-8");
for (const [varName, value] of Object.entries(changes)) {
const regex = new RegExp(
`(var\\s+${varName}\\s*=\\s*\\[)([^\\]]*)(\\])`,
"m"
);
const match = fileContent.match(regex);
if (match) {
const values = match[2].split(",").map((v) => v.trim());
values[slot] = JSON.stringify(value); // korrektes Format: z.B. `"FTZ_2"` oder `10.5`
const updatedArray = `${match[1]} ${values.join(", ")} ${match[3]}`;
fileContent = fileContent.replace(regex, updatedArray);
}
}
await fs.writeFile(filePath, fileContent, "utf-8");