# ⚙️ AnalogInputsSettingsModal Diese Komponente zeigt ein zentriertes Modal zur Konfiguration eines analogen Eingangs. --- ## 🧩 Funktion - Wird angezeigt, wenn `isOpen` true ist und ein `selectedInput` gesetzt ist. - Zeigt alle relevanten Felder zur Konfiguration: - **Bezeichnung** - **Offset** (z. B. für Kalibrierung) - **Faktor** (Multiplikator) - **Einheit** (Dropdown: V, mA, °C, bar, %) - **Loggerintervall** (in Minuten) --- ## ✏️ Verwendung ```tsx setModalOpen(false)} /> ``` --- ## 💾 Speichern-Logik Beim Klick auf „Speichern“ werden die Einstellungen auf zwei verschiedene Arten verarbeitet: ### 🔧 Entwicklungsmodus (`localhost`): - Daten werden per POST an die lokale API gesendet: `/api/cpl/updateAnalogInputsSettingsHandler` - Die Datenstruktur orientiert sich an `window.win_analogInputs*` Variablen ### 🚀 Produktionsmodus: - Daten werden über einen GET-Request mit URL-Parametern an ein CGI-Backend übermittelt: `/CPL?/Service/ae.ACP&ACN{slot}=...&ACO{slot}=...` --- ## 🧪 Besonderheiten - Werte wie `offset` und `factor` werden als String mit `,` oder `.` akzeptiert und korrekt konvertiert. - Eingabefelder sind per `useState` gebunden. - Ein `console.log` zeigt `loggerInterval`, wenn `selectedInput` geladen wird. - Nach erfolgreichem Speichern wird die Seite neu geladen (`location.reload()`), um aktuelle Werte anzuzeigen. --- ## 🛑 Validierung - Aktuell keine Validierung gegen ungültige Werte (z. B. negatives Intervall oder leere Felder). - Sollte ggf. ergänzt werden, wenn das Backend empfindlich auf falsche Werte reagiert. --- ## 🖼️ UI/UX - Modal ist zentriert mit dunklem Overlay. - Abbrechen über „X“-Button oben rechts. - Tailwind CSS für Layout und Styling verwendet.