TDR und Schleife Button in KÜs wieder für die Funktionen

This commit is contained in:
ISA
2025-07-24 14:55:48 +02:00
parent e932bee120
commit 8dafd5fe67
6 changed files with 161 additions and 11 deletions

View File

@@ -6,6 +6,6 @@ NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START=false
NEXT_PUBLIC_EXPORT_STATIC=false NEXT_PUBLIC_EXPORT_STATIC=false
NEXT_PUBLIC_USE_CGI=false NEXT_PUBLIC_USE_CGI=false
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.6.645 NEXT_PUBLIC_APP_VERSION=1.6.647
NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter) NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter)

View File

@@ -5,5 +5,5 @@ NEXT_PUBLIC_CPL_API_PATH=/CPL
NEXT_PUBLIC_EXPORT_STATIC=true NEXT_PUBLIC_EXPORT_STATIC=true
NEXT_PUBLIC_USE_CGI=true NEXT_PUBLIC_USE_CGI=true
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.6.645 NEXT_PUBLIC_APP_VERSION=1.6.647
NEXT_PUBLIC_CPL_MODE=production NEXT_PUBLIC_CPL_MODE=production

View File

@@ -1,3 +1,43 @@
## [1.6.647] 2025-07-24
- feat:
Anzeige KÜ-Display:
1. Zeile Alarm: Isolationsfehler, Schleifenfehler, Aderbruch, Erdschluß, Messpannung: Immer in Rot; wenn kein Alarm, bleibt die Zeile leer
2. Zeile: Isowert: xx MOhm (großes M)
in Rot, wenn Iso-Fehler ansteht
Beispiel: ISO: 100 MOHm der beim Abliech: ISO: Abgleich
3. Zeile: Schleifenwert, xx kOhm (kleines k)
in Rot, wenn Schleifenfehler ansteht
Beispiel:: RSL: 1,7 kOhm oder wenn Schleifenmessung aktiv: RSL: Messung
---
## [1.6.646] 2025-07-24
- feat:
Anzeige KÜ-Display:
1. Zeile Alarm: Isolationsfehler, Schleifenfehler, Aderbruch, Erdschluß, Messpannung: Immer in Rot; wenn kein Alarm, bleibt die Zeile leer
2. Zeile: Isowert: xx MOhm (großes M)
in Rot, wenn Iso-Fehler ansteht
Beispiel: ISO: 100 MOHm der beim Abliech: ISO: Abgleich
3. Zeile: Schleifenwert, xx kOhm (kleines k)
in Rot, wenn Schleifenfehler ansteht
Beispiel:: RSL: 1,7 kOhm oder wenn Schleifenmessung aktiv: RSL: Messung
---
## [1.6.645] 2025-07-24 ## [1.6.645] 2025-07-24
- Feat: Fenster nicht schließen für Firmware Update - Feat: Fenster nicht schließen für Firmware Update

View File

@@ -283,6 +283,7 @@ const Kue705FO: React.FC<Kue705FOProps> = ({
</div> </div>
{/* Schleifenwiderstand Bereich */} {/* Schleifenwiderstand Bereich */}
{/*
<div className="absolute bottom-[5.963rem] left-[0.068rem] w-[7.074rem] h-[4.1rem] bg-gray-300 border-[0.094rem] border-gray-400 p-[0.063rem]"> <div className="absolute bottom-[5.963rem] left-[0.068rem] w-[7.074rem] h-[4.1rem] bg-gray-300 border-[0.094rem] border-gray-400 p-[0.063rem]">
<span className="text-black text-[0.438rem] absolute top-[0.125rem] left-[0.063rem] mt-1"> <span className="text-black text-[0.438rem] absolute top-[0.125rem] left-[0.063rem] mt-1">
Schleifenwiderstand [kOhm] Schleifenwiderstand [kOhm]
@@ -309,8 +310,10 @@ const Kue705FO: React.FC<Kue705FOProps> = ({
</div> </div>
</div> </div>
</div> </div>
*/}
{/* TDR Bereich */} {/* TDR Bereich */}
{/*
{Array.isArray(tdrActive) && tdrActive[slotIndex] === 1 && ( {Array.isArray(tdrActive) && tdrActive[slotIndex] === 1 && (
<div className="absolute bottom-[0.063rem] left-[0.068rem] w-[7.074rem] h-[4.1rem] bg-gray-300 border-[0.094rem] border-gray-400 p-[0.063rem]"> <div className="absolute bottom-[0.063rem] left-[0.068rem] w-[7.074rem] h-[4.1rem] bg-gray-300 border-[0.094rem] border-gray-400 p-[0.063rem]">
<span className="text-black text-[0.438rem] absolute top-[0.125rem] left-[0.063rem] mt-1"> <span className="text-black text-[0.438rem] absolute top-[0.125rem] left-[0.063rem] mt-1">
@@ -334,6 +337,7 @@ const Kue705FO: React.FC<Kue705FOProps> = ({
</div> </div>
</div> </div>
)} )}
*/}
{/* Modal für Einstellungen */} {/* Modal für Einstellungen */}
</> </>
@@ -347,12 +351,118 @@ const Kue705FO: React.FC<Kue705FOProps> = ({
{/* Messkurven-Button unter dem Modul */} {/* Messkurven-Button unter dem Modul */}
{kueOnline === 1 && ( {kueOnline === 1 && (
<> <>
<button {/*
onClick={openChartModal}
className="w-full h-[1.863rem] bg-littwin-blue text-white text-[0.625rem] flex items-center justify-center mt-2" Überschrift: Detailansicht
> ISO und RSL als Buttons (Firmenblau) nebeneinander
Messkurve TDR und KVz Buttons (Firmenblau) nebeneinander
</button> Wenn kein TDR oder kein KVz: nur grauer Button ohne Text
*/}
<div className="flex flex-col items-center w-full px-2 mt-2 space-y-2">
{/* Detailansicht Header */}
<span className="text-black text-[0.625rem] font-semibold">
Detailansicht
</span>
{/* ISO and RSL Buttons */}
<div className="flex space-x-2">
<button
onClick={openChartModal}
className="bg-littwin-blue text-white text-[0.625rem] flex items-center justify-center p-2"
>
ISO
</button>
<button
onClick={openChartModal}
className="bg-littwin-blue text-white text-[0.625rem] flex items-center justify-center p-2"
>
RSL
</button>
</div>
{/* TDR and KVz Buttons */}
<div className="flex space-x-2 p-1">
<button
onClick={() => handleButtonClick("TDR", setActiveButton)}
className=" bg-littwin-blue text-white text-[0.625rem] flex items-center justify-center p-2"
>
TDR
</button>
<button
onClick={() => handleButtonClick("KVz", setActiveButton)}
className="bg-littwin-blue text-white text-[0.625rem] flex items-center justify-center p-2"
>
KVz
</button>
</div>
{/* Messkurve Button */}
<button
onClick={openChartModal}
className="w-full h-[1.863rem] bg-littwin-blue text-white text-[0.625rem] flex items-center justify-center"
>
Messkurve
</button>
<div className="flex mt-3 space-x-[0.063rem] ">
<button
onClick={() =>
handleButtonClick(
"Schleife",
setActiveButton,
setloopTitleText,
(value) =>
setLoopDisplayValue(
typeof value === "number" ? value : Number(value)
), // Hier sicherstellen, dass nur number übergeben wird
Number(schleifenwiderstand), // <- Stelle sicher, dass es eine Zahl ist
tdrLocation,
dispatch,
slotIndex
)
}
className={`w-[50%] h-[1.563rem] text-white text-[0.625rem] flex items-center justify-center ${
activeButton === "Schleife"
? "bg-littwin-blue"
: "bg-gray-400"
}`}
>
Schleife
</button>
<button
onClick={() => {
setActiveButton("TDR");
setloopTitleText("Entfernung [km]");
const latestTdrDistanceMeters =
Array.isArray(tdmChartData?.[slotIndex]) &&
tdmChartData[slotIndex].length > 0 &&
typeof tdmChartData[slotIndex][0].d === "number"
? tdmChartData[slotIndex][0].d
: 0;
const latestTdrDistance = Number(
(latestTdrDistanceMeters / 1000).toFixed(3)
);
setLoopDisplayValue(latestTdrDistance);
}}
className={`w-[50%] h-[1.563rem] text-white text-[0.625rem] flex items-center justify-center ${
Array.isArray(tdrActive) && tdrActive[slotIndex] === 0
? "bg-gray-200 cursor-not-allowed" // Deaktiviert: Hellgrau
: activeButton === "TDR"
? "bg-littwin-blue" // Aktiviert: Littwin Blau
: "bg-gray-400" // Nicht geklickt: Dunkelgrau
}`}
disabled={
Array.isArray(tdrActive) && tdrActive[slotIndex] === 0
} // Button deaktiviert, wenn TDR für diesen Slot nicht aktiv ist
>
TDR
</button>
</div>
</div>
{/* Modal für Messkurve */} {/* Modal für Messkurve */}
{showChartModal && ( {showChartModal && (
<ChartSwitcher <ChartSwitcher

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "cpl-v4", "name": "cpl-v4",
"version": "1.6.645", "version": "1.6.647",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "cpl-v4", "name": "cpl-v4",
"version": "1.6.645", "version": "1.6.647",
"dependencies": { "dependencies": {
"@fontsource/roboto": "^5.1.0", "@fontsource/roboto": "^5.1.0",
"@headlessui/react": "^2.2.4", "@headlessui/react": "^2.2.4",

View File

@@ -1,6 +1,6 @@
{ {
"name": "cpl-v4", "name": "cpl-v4",
"version": "1.6.645", "version": "1.6.647",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "next dev", "dev": "next dev",