Files
CPLv4.0/docs/diagrams/analog-inputs-flow.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

68 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🧩 Datenfluss & Architekturstrategie Analoge Eingänge (Alle Modi)
Diese Dokumentation beschreibt die Architekturstrategie für die Verarbeitung von analogen Eingangsdaten in den drei unterstützten Modi: `jsSimulatedProd`, `json` und `production`.
---
## 🎯 Ziel
- Trennung von Verantwortung (API, Service, UI)
- Mock-fähige Entwicklung ohne echte Hardware
- Einheitliches JSON-Format für alle Modi
- Zukunftssicherheit für moderne Systeme mit nativen JSON-APIs
---
## 🔁 Datenfluss (alle Modi)
```mermaid
flowchart TD
subgraph jsSimulatedProd-Modus
A1["analogInputsMockData.js - Mockdaten mit window-Variablen"]
B1["/api/cpl/getAnalogInputsHandler.ts - API gibt Rohdaten zurück"]
C1["fetchAnalogInputsService.ts - wandelt in JSON"]
A1 --> B1 --> C1
end
subgraph JSON-Modus
A2["analogInputs.json - Mockdaten im JSON-Format"]
B2["/api/cpl/getAnalogInputsHandler.ts - gibt JSON direkt weiter"]
C2["fetchAnalogInputsService.ts - verarbeitet JSON"]
A2 --> B2 --> C2
end
subgraph Production-Modus
A3["CPL Gerät via CGI - JS mit Platzhaltern (im public-Verzeichnis)"]
C3["fetchAnalogInputsService.ts - wandelt direkt JS in JSON"]
A3 --> C3
end
C1 --> D["getAnalogInputsThunk.ts"]
C2 --> D
C3 --> D
D --> E["Redux Store und UI"]
```
---
## ✅ Vorteile dieser Struktur
- 🔄 Austauschbare Datenquellen ohne Frontend-Codeänderung
- 🧼 Trennung von Datenformaten (JS, JSON, CGI) und deren Umwandlung
- 🧪 Mock-fähig für Entwickler und CI ohne Backend
- 🔮 Zukunftssicher für moderne embedded APIs mit echtem JSON
---
## 📁 Verzeichnisstruktur (Auszug)
```txt
/mocks/device-cgi-simulator/SERVICE/*.js # jsSimulatedProd-Modus
/mocks/api/SERVICE/*.json # json-Modus
/public/CPL/SERVICE/*.js # production-Modus (CGI-Daten im JS-Format)
/services/fetchAnalogInputsService.ts # verarbeitet Rückgabe zu JSON
/redux/thunks/getAnalogInputsThunk.ts # Redux-Thunk zur Übergabe
/components/AnalogInputsDisplay.tsx # Anzeige in der UI
```