Files
CPLv4.0/components/main/einausgaenge
ISA 3e6c973f3b feat: Unterstützung für JSON- und Production-Modus hinzugefügt
- API-Handler `updateDigitalOutputsHandler` überarbeitet:
  - JSON-Dateien werden jetzt korrekt im gültigen Format gespeichert (`{ key: value }`)
  - Schreibzugriff im production-Modus blockiert
  - JS-Mock-Struktur vorbereitet (noch nicht aktiv getestet)

- Verzeichnisstruktur vereinheitlicht:
  - JSON-Mocks unter `/mocks/api/SERVICE/`
  - CGI-Platzhalter unter `/public/CPL/`
  - JSMock-Ordner für CPL-Simulation vorbereitet (`/mocks/js-simulator/`)

- README.md um Betriebsmodi erweitert (`NEXT_PUBLIC_CPL_MODE` mit `json`, `jsmock`, `production`)
- `.env`-Dateien angepasst zur besseren Modussteuerung
2025-06-18 14:06:23 +02:00
..

🧩 Datenfluss CPLv4.0 Digitale Eingänge

classDiagram

class EmbeddedServer {
  + Generiert de.js per CGI
  + Ersetzt Platzhalter wie <%=DES81%>
  + Kein Node.js vorhanden
}

class DeJS {
  + JavaScript mit konkreten Werten
  + Beispiel: win_de_state, win_de_label
}

class FrontendLoader {
  + Lädt de.js dynamisch mit script-Tag
  + Pfad: /CPL?/CPL/SERVICE/de.js
}

class DatenMapper {
  + Wandelt window-Variablen in Objekte
  + Wandelt in strukturierte Eingangs-Daten
}

class ReduxStore {
  + digitalInputsSlice
  + Speichert die Eingänge im State
}

class ReactComponent {
  + DigitalInputs.tsx
  + useSelector: Zugriff auf Redux
  + Darstellung mit Tailwind
}

EmbeddedServer --> DeJS : erstellt per CGI
DeJS --> FrontendLoader : wird per Script geladen
FrontendLoader --> DatenMapper : verarbeitet window-Variablen
DatenMapper --> ReduxStore : dispatch(setInputs)
ReduxStore --> ReactComponent : useSelector() → Anzeige