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_EXPORT_STATIC=false
NEXT_PUBLIC_USE_CGI=false NEXT_PUBLIC_USE_CGI=false
# App-Versionsnummer # 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) 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_EXPORT_STATIC=true
NEXT_PUBLIC_USE_CGI=true NEXT_PUBLIC_USE_CGI=true
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.6.424 NEXT_PUBLIC_APP_VERSION=1.6.425
NEXT_PUBLIC_CPL_MODE=production NEXT_PUBLIC_CPL_MODE=production

View File

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

View File

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

View File

@@ -5,9 +5,9 @@ var win_analogInputsValues = [
0.070007, 0.070007,
]; ];
var win_analogInputsLabels = ["AE 11", "AE 2", "AE 3", "AE 4", "AE 5", "AE 6", "AE 7", "AE 8", ]; 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_analogInputsOffset = [10.995, 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_analogInputsFactor = [11.996, 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_analogInputsLoggerIntervall = [6, 10, 10, 10, 10, 10, 10, 10];
var win_analogInputsUnits = ["mA", "V", "V", "V", "mA", "mA", "mA", "mA"]; var win_analogInputsUnits = ["mA", "V", "V", "V", "mA", "mA", "mA", "mA"];
var win_analogInputsWeighting = [0, 0, 0, 0, 0, 0, 0, 0]; 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", "name": "cpl-v4",
"version": "1.6.424", "version": "1.6.425",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "cpl-v4", "name": "cpl-v4",
"version": "1.6.424", "version": "1.6.425",
"dependencies": { "dependencies": {
"@fontsource/roboto": "^5.1.0", "@fontsource/roboto": "^5.1.0",
"@iconify-icons/ri": "^1.2.10", "@iconify-icons/ri": "^1.2.10",

View File

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

View File

@@ -27,7 +27,7 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
function extractArray(name: string): any[] { function extractArray(name: string): any[] {
const match = content.match( 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 []; if (!match) return [];
return match[1] return match[1]
@@ -40,7 +40,7 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
win_analogInputsValues: extractArray("win_analogInputsValues").map( win_analogInputsValues: extractArray("win_analogInputsValues").map(
Number Number
), ),
win_analogInputsNames: extractArray("win_analogInputsNames"), win_analogInputsLabels: extractArray("win_analogInputsLabels"),
win_analogInputsOffset: extractArray("win_analogInputsOffset").map( win_analogInputsOffset: extractArray("win_analogInputsOffset").map(
Number Number
), ),
@@ -55,6 +55,7 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) {
"win_analogInputsWeighting" "win_analogInputsWeighting"
).map(Number), ).map(Number),
}; };
console.log("Analog Inputs Mock Data:", responseData);
return res.status(200).json(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 if (typeof window === "undefined") return; // Server-Side Execution blockieren
try { try {
const data = await fetchAnalogInputsService(); const data = await fetchAnalogInputsService();
console.log("📡 Analoge Eingänge geladen:", data);
if (data) { if (data) {
dispatch(setAnalogInputs(data)); // ✅ Redux mit API-Daten füllen dispatch(setAnalogInputs(data)); // ✅ Redux mit API-Daten füllen
} }

View File

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