fix: Fehlerhafte RegExp im JS-Mock-Handler korrigiert (getAnalogInputsHandler)

- RegExp-Syntaxfehler behoben (unmatched ')') beim Parsen von JS-Mock-Dateien
- Fehlerhafte Klammern in extractArray durch korrektes Muster ersetzt
- API funktioniert jetzt korrekt im JSON- und JS-Mock-Modus
This commit is contained in:
Ismail Ali
2025-06-19 21:52:56 +02:00
parent d27b5b1b13
commit 8d67b08d7f
10 changed files with 27 additions and 19 deletions

View File

@@ -6,5 +6,5 @@ NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START=false
NEXT_PUBLIC_EXPORT_STATIC=false
NEXT_PUBLIC_USE_CGI=false
# App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.6.424
NEXT_PUBLIC_APP_VERSION=1.6.425
NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsmock (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter)

View File

@@ -5,5 +5,5 @@ NEXT_PUBLIC_CPL_API_PATH=/CPL
NEXT_PUBLIC_EXPORT_STATIC=true
NEXT_PUBLIC_USE_CGI=true
# App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.6.424
NEXT_PUBLIC_APP_VERSION=1.6.425
NEXT_PUBLIC_CPL_MODE=production

View File

@@ -32,9 +32,12 @@ export default function AnalogInputSettingsModal({
? selectedInput.factor.toFixed(3)
: selectedInput.factor || "1.000"
);
setLoggerInterval(selectedInput.interval);
setLoggerInterval(selectedInput.loggerInterval);
setUnit(selectedInput.unit || "V");
console.log("selectedInput in analoge Eingänge:", selectedInput.interval);
console.log(
"selectedInput in analoge Eingänge:",
selectedInput.loggerInterval
);
}
}, [selectedInput, isOpen]);

View File

@@ -10,7 +10,7 @@
0.000007
],
"win_analogInputsLabels": [
"AE 12",
"AE 1",
"AE 2",
"AE 3",
"AE 4",
@@ -20,7 +20,7 @@
"AE 8"
],
"win_analogInputsOffset": [
10.991,
10.99,
0,
0,
0,
@@ -30,7 +30,7 @@
0
],
"win_analogInputsFactor": [
11.992,
11.993,
1,
1,
1,
@@ -40,7 +40,7 @@
1
],
"win_analogInputsUnits": [
"V",
"mA",
"V",
"V",
"V",

View File

@@ -5,9 +5,9 @@ var win_analogInputsValues = [
0.070007,
];
var win_analogInputsLabels = ["AE 11", "AE 2", "AE 3", "AE 4", "AE 5", "AE 6", "AE 7", "AE 8", ];
var win_analogInputsOffset = [10.999, 0.0, 0.0, 0, 0.0, 0.0, 0.0, 0.0];
var win_analogInputsFactor = [11.999, 1.0, 1.0, 1, 1.0, 1.0, 1.0, 1.0];
var win_analogInputsLoggerIntervall = [9, 10, 10, 10, 10, 10, 10, 10];
var win_analogInputsOffset = [10.995, 0.0, 0.0, 0, 0.0, 0.0, 0.0, 0.0];
var win_analogInputsFactor = [11.996, 1.0, 1.0, 1, 1.0, 1.0, 1.0, 1.0];
var win_analogInputsLoggerIntervall = [6, 10, 10, 10, 10, 10, 10, 10];
var win_analogInputsUnits = ["mA", "V", "V", "V", "mA", "mA", "mA", "mA"];
var win_analogInputsWeighting = [0, 0, 0, 0, 0, 0, 0, 0];

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "cpl-v4",
"version": "1.6.424",
"version": "1.6.425",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "cpl-v4",
"version": "1.6.424",
"version": "1.6.425",
"dependencies": {
"@fontsource/roboto": "^5.1.0",
"@iconify-icons/ri": "^1.2.10",

View File

@@ -1,6 +1,6 @@
{
"name": "cpl-v4",
"version": "1.6.424",
"version": "1.6.425",
"private": true,
"scripts": {
"dev": "next dev",

View File

@@ -27,7 +27,7 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
function extractArray(name: string): any[] {
const match = content.match(
new RegExp(`var\s+${name}\s*=\s*\[([\s\S]*?)\];`)
new RegExp(`var\\s+${name}\\s*=\\s*\\[([\\s\\S]*?)\\];`)
);
if (!match) return [];
return match[1]
@@ -40,7 +40,7 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
win_analogInputsValues: extractArray("win_analogInputsValues").map(
Number
),
win_analogInputsNames: extractArray("win_analogInputsNames"),
win_analogInputsLabels: extractArray("win_analogInputsLabels"),
win_analogInputsOffset: extractArray("win_analogInputsOffset").map(
Number
),
@@ -55,6 +55,7 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
"win_analogInputsWeighting"
).map(Number),
};
console.log("Analog Inputs Mock Data:", responseData);
return res.status(200).json(responseData);
}

View File

@@ -12,6 +12,7 @@ export const fetchAnalogInputsThunk = createAsyncThunk(
if (typeof window === "undefined") return; // Server-Side Execution blockieren
try {
const data = await fetchAnalogInputsService();
console.log("📡 Analoge Eingänge geladen:", data);
if (data) {
dispatch(setAnalogInputs(data)); // ✅ Redux mit API-Daten füllen
}

View File

@@ -24,14 +24,15 @@ export const fetchAnalogInputsService = async () => {
unit: win.win_analogInputsUnits[i],
offset: parseFloat(win.win_analogInputsOffset[i]),
factor: parseFloat(win.win_analogInputsFactor[i]),
interval: parseInt(win.win_analogInputsLoggerIntervall[i]),
loggerInterval: parseInt(win.win_analogInputsLoggerIntervall[i]),
weighting: parseInt(win.win_analogInputsWeighting[i]),
}));
} else {
} else if (mode === "json" || mode === "jsmock") {
const res = await fetch("/api/cpl/getAnalogInputsHandler");
if (!res.ok) throw new Error("❌ Fehler beim Laden der analogen Eingänge");
const data = await res.json();
console.log("📡 Analoge Eingänge geladen:", data);
return data.win_analogInputsValues.map((value: number, i: number) => ({
id: i + 1,
@@ -40,8 +41,10 @@ export const fetchAnalogInputsService = async () => {
unit: data.win_analogInputsUnits[i],
offset: parseFloat(data.win_analogInputsOffset[i]),
factor: parseFloat(data.win_analogInputsFactor[i]),
interval: parseInt(data.win_analogInputsLoggerIntervall[i]),
loggerInterval: parseInt(data.win_analogInputsLoggerIntervall[i]),
weighting: parseInt(data.win_analogInputsWeighting[i]),
}));
} else {
throw new Error(`Unbekannter Modus: ${mode}`);
}
};