feat: zentrale API für json und jsmock + Diagramm-Doku aktualisiert

- Neue API /api/cpl/getDigitalOutputsHandler.ts implementiert (vereint json + jsmock)
- fetchDigitalOutputsService.ts auf zentrale API umgestellt (weniger Code, klarere Struktur)
- Nur production-Modus lädt weiterhin Skript /CPL?/CPL/SERVICE/digitalOutputs.js
- README_digitalOutputs.md überarbeitet:
  - Diagrammtyp („flowchart“, Datenflussdiagramm) explizit benannt
  - API-Endpunkte konsolidiert dargestellt
- CHANGELOG.md um neue API-Struktur und Dokumentationsänderung ergänzt
This commit is contained in:
ISA
2025-06-19 10:48:18 +02:00
parent dbb38cc7d8
commit 887e7b4992
686 changed files with 139 additions and 1947501 deletions

View File

@@ -8,7 +8,9 @@ Dieses Dokument beschreibt die Architektur und Datenflüsse für das **Lesen** u
---
## 🔁 Lesen der digitalen Ausgänge
## 🔁 flowchart: Lesen der digitalen Ausgänge
<!-- flowchart (Typ: Datenflussdiagramm) oder Allgemein Ablaufsdiagramm -->
```mermaid
flowchart TD
@@ -17,22 +19,21 @@ flowchart TD
C --> D[fetchDigitalOutputsService]
D --> E{Moduswahl: NEXT_PUBLIC_CPL_MODE}
E -->|json| F1[GET /api/cpl/fetchDigitalOutputsHandler.ts]
F1 --> F2[digitalOutputsMockData.json]
E -->|json oder jsmock| F[GET /api/cpl/getDigitalOutputsHandler.ts]
F --> G[JSON oder geparste JS-Datei]
E -->|jsmock| G1[GET /api/fake-cpl/fetchDigitalOutputsDeviceMockHandler]
G1 --> G2[digitalOutputsMockData.js → window.win_da_state]
E -->|production| H[loadScript '/CPL?/CPL/SERVICE/digitalOutputs.js']
H --> I[Platzhalter-basierte win_da_state]
E -->|production| H1[loadScript '/CPL?/CPL/SERVICE/digitalOutputs.js']
H1 --> H2[Platzhalter-basierte win_da_state]
F2 & G2 & H2 --> I[Redux: digitalOutputsSlice]
I --> J[useSelector] --> A
G & I --> J[Redux: digitalOutputsSlice]
J --> K[useSelector] --> A
```
---
## ✍️ Updaten der digitalen Ausgänge
## ✍️ flowchart: Updaten der digitalen Ausgänge
<!-- flowchart (Typ: Datenflussdiagramm) oder Allgemein Ablaufsdiagramm -->
```mermaid
flowchart TD
@@ -51,12 +52,11 @@ flowchart TD
## 🌐 API-Endpunkte
| Route | Methode | Modus | Funktion |
| ------------------------------------------------------- | -------- | ------------- | ----------------------------- |
| `/api/cpl/fetchDigitalOutputsHandler.ts` | `GET` | `json` | Liest JSON-Datei |
| `/api/fake-cpl/fetchDigitalOutputsDeviceMockHandler.ts` | `GET` | `jsmock` | Liest Mock-JS-Datei |
| `/CPL?/CPL/SERVICE/digitalOutputs.js` | `SCRIPT` | `production` | Liefert Platzhalter vom Gerät |
| `/api/cpl/updateDigitalOutputsHandler.ts` | `POST` | `json/jsmock` | Speichert Statusänderung |
| Route | Methode | Modus | Funktion |
| ----------------------------------------- | -------- | ---------------- | ------------------------------ |
| `/api/cpl/getDigitalOutputsHandler.ts` | `GET` | `json`, `jsmock` | Liest JSON-Datei oder JS-Datei |
| `/CPL?/CPL/SERVICE/digitalOutputs.js` | `SCRIPT` | `production` | Liefert Platzhalter vom Gerät |
| `/api/cpl/updateDigitalOutputsHandler.ts` | `POST` | `json`, `jsmock` | Speichert Statusänderung |
---
@@ -77,8 +77,7 @@ flowchart TD
/mocks/api/SERVICE/ → JSON-Dateien
/mocks/device-cgi-simulator/SERVICE/→ jsmock: digitalOutputsMockData.js
/public/CPL/SERVICE/ → production: digitalOutputs.js
/pages/api/cpl/ → JSON-/Update-Handler
/pages/api/fake-cpl/ → jsmock-API-Handler
/pages/api/cpl/ → GET/POST-Handler für json + jsmock
/components/main/einausgaenge/ → UI-Komponente: DigitalOutputsWidget.tsx
```
@@ -88,4 +87,5 @@ flowchart TD
- [x] Lesen funktioniert in allen Modi
- [x] Schreiben funktioniert in allen Modi (production nur über Redirect)
- [x] json + jsmock verwenden jetzt denselben API-Handler
- [x] Redux-Integration ist vollständig