2.1 KiB
2.1 KiB
🧩 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: jsmock, 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)
flowchart TD
subgraph JSMOCK-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)
/mocks/device-cgi-simulator/SERVICE/*.js # jsmock-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