Files
CPLv4.0/docs/architecture.md
Ismail Ali 041bc3e23e 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`
2025-06-22 08:42:49 +02:00

1.9 KiB
Raw Blame History

Architektur: fetchAnalogeEingaengeService.ts

Dieses Diagramm beschreibt die Datenflussarchitektur des Services fetchAnalogeEingaengeService.ts.

🎯 Ziel

Egal ob json, jsSimulatedProd oder production-Modus der Service gibt immer ein einheitliches JSON-Objekt zurück.


🧠 Datenfluss

flowchart TD
    Start[fetchAnalogeEingaengeService aufgerufen] --> CheckMode{CPL Mode}

    CheckMode -->|json| FetchJSON[📄 JSON-Datei laden: /CPLmockData/SERVICE/analogeEingaengeMockData.json]
    FetchJSON --> ReturnJSON1[✅ JSON zurückgeben]

    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]
    LoadCGI --> ParseCGI[🔁 parseWindowData]
    ParseCGI --> ReturnJSON3[✅ JSON zurückgeben]

    style ReturnJSON1 fill:#d4f4dd
    style ReturnJSON2 fill:#d4f4dd
    style ReturnJSON3 fill:#d4f4dd

Architecture

In dieser Anwendung werden drei Betriebsmodi unterstützt:

  • json: lädt Mockdaten über API-Handler
  • 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
➡️ Redux und UI bleiben unabhängig von Datenquelle


flowchart TD
  A[.env: NEXT_PUBLIC_CPL_MODE] -->|json| B1[/api/.../APIHandler.ts/]
  A -->|jsSimulatedProd / production| B2[window.win_* Variablen aus JS-Datei]
  B1 --> C[fetchXYZService.ts]
  B2 --> C
  C --> D[Normiertes JSON-Objekt]
  D --> E[Redux Thunk]
  E --> F[Redux Slice]
  F --> G[UI-Komponente z.B. Tabelle]

  subgraph Service-Schicht
    C
  end

  subgraph Redux-Schicht
    E --> F
  end

  subgraph UI-Schicht
    G
  end