- 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`
71 lines
1.9 KiB
Markdown
71 lines
1.9 KiB
Markdown
# 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
|
||
|
||
```mermaid
|
||
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
|
||
|
||
---
|
||
|
||
```mermaid
|
||
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
|
||
```
|