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`
This commit is contained in:
29
CHANGELOG.md
29
CHANGELOG.md
@@ -1,23 +1,32 @@
|
||||
## [1.6.442] – 2025-06-22
|
||||
|
||||
- docs: add full architecture diagram and data flow for json, jsmock and production modes
|
||||
|
||||
---
|
||||
## [1.6.441] – 2025-06-21
|
||||
|
||||
- docs: add analog inputs architecture diagram and flow description
|
||||
|
||||
---
|
||||
|
||||
## [1.6.440] – 2025-06-21
|
||||
|
||||
- docs: move user documentation to docs/user-guide as single source of truth
|
||||
|
||||
---
|
||||
|
||||
## [1.6.439] – 2025-06-21
|
||||
|
||||
- chore: fetch to get in redux thunks files name
|
||||
- chore: fetch to get in redux thunks files name
|
||||
|
||||
---
|
||||
|
||||
## [1.6.438] – 2025-06-21
|
||||
|
||||
- chore(tsconfig): fix moduleResolution and path aliases for Next.js project
|
||||
|
||||
---
|
||||
|
||||
## [1.6.437] – 2025-06-21
|
||||
|
||||
- chore: rename service/thunk files to follow get/fetch naming convention
|
||||
@@ -56,7 +65,7 @@
|
||||
|
||||
## [1.6.431] – 2025-06-20
|
||||
|
||||
- feat: Digitale & analoge Eingänge in allen Modi (json/jsmock/production) vollständig implementiert
|
||||
- feat: Digitale & analoge Eingänge in allen Modi (json/jsSimulatedProd/production) vollständig implementiert
|
||||
|
||||
---
|
||||
|
||||
@@ -72,9 +81,9 @@ Alle Änderungen und Versionen des CPLv4.0 Frontends chronologisch dokumentiert.
|
||||
|
||||
- Digitale Eingänge (Meldungseingänge) sind jetzt vollständig implementiert:
|
||||
- `json`: Mock-Daten werden editierbar über eine JSON-Datei verwaltet
|
||||
- `jsmock`: JavaScript-basierte Simulation mit `window.win_di_state`, `win_di_label`, etc.
|
||||
- `jsSimulatedProd`: JavaScript-basierte Simulation mit `window.win_di_state`, `win_di_label`, etc.
|
||||
- `production`: Kommunikation über CGI-Befehle wie `DEN1=...`, `DEI1=...`
|
||||
- Analoge Eingänge ebenfalls vollständig in allen Modi (json/jsmock/production) nutzbar
|
||||
- Analoge Eingänge ebenfalls vollständig in allen Modi (json/jsSimulatedProd/production) nutzbar
|
||||
- Die Statusanzeige für digitale Eingänge wird korrekt aus Redux gelesen (`input.status`)
|
||||
- Redux-Struktur überarbeitet: `invert`, `status`, `counterActive`, `value` werden sauber getrennt
|
||||
- Die Modi-Erkennung erfolgt automatisch über `NEXT_PUBLIC_CPL_MODE`
|
||||
@@ -89,18 +98,18 @@ Alle Änderungen und Versionen des CPLv4.0 Frontends chronologisch dokumentiert.
|
||||
|
||||
- Die Schaltausgänge (digitale Ausgänge) sind jetzt in allen Modi vollständig funktionsfähig:
|
||||
- `json` (lokale Entwicklung mit editierbaren Mock-Daten)
|
||||
- `jsmock` (Simulation durch JavaScript-Variablen im `window`-Objekt)
|
||||
- `jsSimulatedProd` (Simulation durch JavaScript-Variablen im `window`-Objekt)
|
||||
- `production` (Platzhalterersetzung über CGI durch das echte CPL-Gerät)
|
||||
- Die API `/api/cpl/updateDigitalOutputsHandler` verarbeitet POST-Daten je nach Modus:
|
||||
- In `json`: Speicherung in `digitalOutputsMockData.json`
|
||||
- In `jsmock`: Live-Änderung in `digitalOutputsMockData.js` per Regex
|
||||
- In `jsSimulatedProd`: Live-Änderung in `digitalOutputsMockData.js` per Regex
|
||||
- In `production`: Statusänderung über Redirect zu `/CPL?digitalOutputs.html&DAS0X=1`
|
||||
- Die Datei `fetchDigitalOutputsService.ts` erkennt den aktiven Modus und lädt Daten kontextsensitiv
|
||||
- Alle Werte werden über Redux bereitgestellt, die UI nutzt `useSelector()` zur Anzeige in `DigitalOutputsWidget.tsx`
|
||||
- Mermaid-Dokumentation zur Architektur im Projekt ergänzt (`README_digitalOutputs_final.md`)- `json` und `jsmock` wurden zu einer gemeinsamen API `/api/cpl/getDigitalOutputsHandler.ts` zusammengeführt
|
||||
- Mermaid-Dokumentation zur Architektur im Projekt ergänzt (`README_digitalOutputs_final.md`)- `json` und `jsSimulatedProd` wurden zu einer gemeinsamen API `/api/cpl/getDigitalOutputsHandler.ts` zusammengeführt
|
||||
- Die API erkennt den Modus automatisch über `NEXT_PUBLIC_CPL_MODE`
|
||||
- In `json` wird eine editierbare JSON-Datei gelesen und zurückgegeben
|
||||
- In `jsmock` wird eine JavaScript-Datei per Regex analysiert und verarbeitet
|
||||
- In `jsSimulatedProd` wird eine JavaScript-Datei per Regex analysiert und verarbeitet
|
||||
- Die Logik in `fetchDigitalOutputsService.ts` wurde vereinfacht:
|
||||
- Für beide Modi wird dieselbe API aufgerufen
|
||||
- Nur in `production` wird das Script `/CPL?/CPL/SERVICE/digitalOutputs.js` dynamisch eingebunden
|
||||
@@ -116,11 +125,11 @@ Alle Änderungen und Versionen des CPLv4.0 Frontends chronologisch dokumentiert.
|
||||
|
||||
- Die Schaltausgänge (digitale Ausgänge) sind jetzt in allen Modi vollständig funktionsfähig:
|
||||
- `json` (lokale Entwicklung mit editierbaren Mock-Daten)
|
||||
- `jsmock` (Simulation durch JavaScript-Variablen im `window`-Objekt)
|
||||
- `jsSimulatedProd` (Simulation durch JavaScript-Variablen im `window`-Objekt)
|
||||
- `production` (Platzhalterersetzung über CGI durch das echte CPL-Gerät)
|
||||
- Die API `/api/cpl/updateDigitalOutputsHandler` verarbeitet POST-Daten je nach Modus:
|
||||
- In `json`: Speicherung in `digitalOutputsMockData.json`
|
||||
- In `jsmock`: Live-Änderung in `digitalOutputsMockData.js` per Regex
|
||||
- In `jsSimulatedProd`: Live-Änderung in `digitalOutputsMockData.js` per Regex
|
||||
- In `production`: Statusänderung über Redirect zu `/CPL?digitalOutputs.html&DAS0X=1`
|
||||
- Die Datei `fetchDigitalOutputsService.ts` erkennt den aktiven Modus und lädt Daten kontextsensitiv
|
||||
- Alle Werte werden über Redux bereitgestellt, die UI nutzt `useSelector()` zur Anzeige in `DigitalOutputsWidget.tsx`
|
||||
|
||||
Reference in New Issue
Block a user