feat: jsSimulatedProd-Modus für analoge & digitale Eingänge implementiert

- neuen Modus `jsSimulatedProd` eingeführt für realitätsnahe Simulation auf Basis echter Produktionsdaten
- analoge Eingänge: analogInputsMockData.js eingebunden und dynamisch per Script geladen
- digitale Eingänge: digitalInputsMockData.js eingebunden mit window-Variablen (z. B. win_de_state, win_de_label etc.)
- fetchAnalogInputsService.ts und fetchDigitalInputsService.ts angepasst zur Modusprüfung und Script-Auswertung
- getAnalogInputsHandler.ts und getDigitalInputsHandler.ts geben im jsSimulatedProd-Modus JavaScript-Dateien aus
- .env.development setzt `NEXT_PUBLIC_CPL_MODE=jsSimulatedProd`
This commit is contained in:
Ismail Ali
2025-06-22 08:42:49 +02:00
parent 7d1e7ef88a
commit 041bc3e23e
20 changed files with 151 additions and 354 deletions

View File

@@ -4,7 +4,7 @@ Dieses Diagramm beschreibt die Datenflussarchitektur des Services `fetchAnalogeE
## 🎯 Ziel
Egal ob `json`, `jsmock` oder `production`-Modus der Service gibt **immer** ein einheitliches JSON-Objekt zurück.
Egal ob `json`, `jsSimulatedProd` oder `production`-Modus der Service gibt **immer** ein einheitliches JSON-Objekt zurück.
---
@@ -17,8 +17,8 @@ flowchart TD
CheckMode -->|json| FetchJSON[📄 JSON-Datei laden: /CPLmockData/SERVICE/analogeEingaengeMockData.json]
FetchJSON --> ReturnJSON1[✅ JSON zurückgeben]
CheckMode -->|jsmock| ImportJSMock[📜 JS-Datei importieren: analogeEingaengeMockData.js]
ImportJSMock --> ParseMock[🔁 parseWindowData]
CheckMode -->|jsSimulatedProd| ImportjsSimulatedProd[📜 JS-Datei importieren: analogeEingaengeMockData.js]
ImportjsSimulatedProd --> ParseMock[🔁 parseWindowData]
ParseMock --> ReturnJSON2[✅ JSON zurückgeben]
CheckMode -->|production| LoadCGI[🌐 JS vom Gerät laden: /CPL/SERVICE/analogeEingaenge.js]
@@ -37,7 +37,7 @@ flowchart TD
In dieser Anwendung werden drei Betriebsmodi unterstützt:
- `json`: lädt Mockdaten über API-Handler
- `jsmock`: lädt JS-Dateien mit `window.win_*` Variablen
- `jsSimulatedProd`: lädt JS-Dateien mit `window.win_*` Variablen
- `production`: lädt Platzhalterdaten vom echten Gerät (CPL)
Ziel: Alle Services liefern immer standardisiertes JSON-Objekt
@@ -48,7 +48,7 @@ Ziel: Alle Services liefern immer standardisiertes JSON-Objekt
```mermaid
flowchart TD
A[.env: NEXT_PUBLIC_CPL_MODE] -->|json| B1[/api/.../APIHandler.ts/]
A -->|jsmock / production| B2[window.win_* Variablen aus JS-Datei]
A -->|jsSimulatedProd / production| B2[window.win_* Variablen aus JS-Datei]
B1 --> C[fetchXYZService.ts]
B2 --> C
C --> D[Normiertes JSON-Objekt]