// services/fetchAnalogInputsService.ts export const fetchAnalogInputsService = async () => { const mode = process.env.NEXT_PUBLIC_CPL_MODE; if (mode === "production") { const scriptUrl = "/CPL?/CPL/SERVICE/analogInputs.js"; await new Promise((resolve, reject) => { const script = document.createElement("script"); script.src = scriptUrl; script.async = true; script.onload = () => resolve(); script.onerror = () => reject("❌ Fehler beim Laden der analogInputs.js"); document.body.appendChild(script); }); const win = window as any; return Array.from({ length: 8 }, (_, i) => ({ id: i + 1, value: parseFloat(win.win_analogInputsValues[i]), label: win.win_analogInputsLabels[i], unit: win.win_analogInputsUnits[i], offset: parseFloat(win.win_analogInputsOffset[i]), factor: parseFloat(win.win_analogInputsFactor[i]), loggerInterval: parseInt(win.win_analogInputsLoggerIntervall[i]), weighting: parseInt(win.win_analogInputsWeighting[i]), })); } 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, value, label: data.win_analogInputsLabels[i], unit: data.win_analogInputsUnits[i], offset: parseFloat(data.win_analogInputsOffset[i]), factor: parseFloat(data.win_analogInputsFactor[i]), loggerInterval: parseInt(data.win_analogInputsLoggerIntervall[i]), weighting: parseInt(data.win_analogInputsWeighting[i]), })); } else { throw new Error(`Unbekannter Modus: ${mode}`); } };