From 8d67b08d7f5cc6cd3d9725c1de684c416f683926 Mon Sep 17 00:00:00 2001 From: Ismail Ali Date: Thu, 19 Jun 2025 21:52:56 +0200 Subject: [PATCH] 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 --- .env.development | 2 +- .env.production | 2 +- .../main/analogInputs/AnalogInputsSettingsModal.tsx | 7 +++++-- mocks/api/SERVICE/analogInputsMockData.json | 8 ++++---- .../device-cgi-simulator/SERVICE/analogInputsMockData.js | 6 +++--- package-lock.json | 4 ++-- package.json | 2 +- pages/api/cpl/getAnalogInputsHandler.ts | 5 +++-- redux/thunks/fetchAnalogInputsThunk.ts | 1 + services/fetchAnalogInputsService.ts | 9 ++++++--- 10 files changed, 27 insertions(+), 19 deletions(-) diff --git a/.env.development b/.env.development index ad2cb5a..499a888 100644 --- a/.env.development +++ b/.env.development @@ -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) \ No newline at end of file diff --git a/.env.production b/.env.production index c91b5fd..d3a66ec 100644 --- a/.env.production +++ b/.env.production @@ -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 \ No newline at end of file diff --git a/components/main/analogInputs/AnalogInputsSettingsModal.tsx b/components/main/analogInputs/AnalogInputsSettingsModal.tsx index be0b6b7..09ee73e 100644 --- a/components/main/analogInputs/AnalogInputsSettingsModal.tsx +++ b/components/main/analogInputs/AnalogInputsSettingsModal.tsx @@ -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]); diff --git a/mocks/api/SERVICE/analogInputsMockData.json b/mocks/api/SERVICE/analogInputsMockData.json index 39482b7..4c15278 100644 --- a/mocks/api/SERVICE/analogInputsMockData.json +++ b/mocks/api/SERVICE/analogInputsMockData.json @@ -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", diff --git a/mocks/device-cgi-simulator/SERVICE/analogInputsMockData.js b/mocks/device-cgi-simulator/SERVICE/analogInputsMockData.js index f51cafd..1a0f31d 100644 --- a/mocks/device-cgi-simulator/SERVICE/analogInputsMockData.js +++ b/mocks/device-cgi-simulator/SERVICE/analogInputsMockData.js @@ -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]; diff --git a/package-lock.json b/package-lock.json index 5eed91b..1d39a68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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", diff --git a/package.json b/package.json index 383807a..b0d0e7e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cpl-v4", - "version": "1.6.424", + "version": "1.6.425", "private": true, "scripts": { "dev": "next dev", diff --git a/pages/api/cpl/getAnalogInputsHandler.ts b/pages/api/cpl/getAnalogInputsHandler.ts index d6c080e..4d65ea3 100644 --- a/pages/api/cpl/getAnalogInputsHandler.ts +++ b/pages/api/cpl/getAnalogInputsHandler.ts @@ -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); } diff --git a/redux/thunks/fetchAnalogInputsThunk.ts b/redux/thunks/fetchAnalogInputsThunk.ts index def1d6f..40cf4e1 100644 --- a/redux/thunks/fetchAnalogInputsThunk.ts +++ b/redux/thunks/fetchAnalogInputsThunk.ts @@ -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 } diff --git a/services/fetchAnalogInputsService.ts b/services/fetchAnalogInputsService.ts index 10acb1c..798cf07 100644 --- a/services/fetchAnalogInputsService.ts +++ b/services/fetchAnalogInputsService.ts @@ -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}`); } };