Files
CPLv4.0/docs/KVZ/kvz-system-understanding.md
2025-07-31 13:44:30 +02:00

3.7 KiB

KVZ System - Mein aktuelles Verständnis

System Übersicht

graph TB
    subgraph "Kabelüberwachung System (32 Slots)"
        Slot0["Slot 0<br/>Kabelüberwachung"]
        Slot1["Slot 1<br/>Kabelüberwachung"]
        Slot2["Slot 2<br/>Kabelüberwachung"]
        Slot3["Slot 3<br/>Kabelüberwachung"]
        SlotDots["..."]
        Slot31["Slot 31<br/>Kabelüberwachung"]
    end

    subgraph "KVZ Geräte (Optional pro Slot)"
        KVZ0["KVZ Gerät<br/>für Slot 0"]
        KVZ1["KVZ Gerät<br/>für Slot 1"]
        KVZ2["KVZ Gerät<br/>für Slot 2"]
        KVZ3["KVZ Gerät<br/>für Slot 3"]
    end

    subgraph "KVZ LEDs (4 pro KVZ Gerät)"
        subgraph "KVZ0 LEDs"
            LED0_0["LED 1"]
            LED0_1["LED 2"]
            LED0_2["LED 3"]
            LED0_3["LED 4"]
        end

        subgraph "KVZ1 LEDs"
            LED1_0["LED 1"]
            LED1_1["LED 2"]
            LED1_2["LED 3"]
            LED1_3["LED 4"]
        end
    end

    Slot0 -.-> KVZ0
    Slot1 -.-> KVZ1
    Slot2 -.-> KVZ2
    Slot3 -.-> KVZ3

    KVZ0 --> LED0_0
    KVZ0 --> LED0_1
    KVZ0 --> LED0_2
    KVZ0 --> LED0_3

    KVZ1 --> LED1_0
    KVZ1 --> LED1_1
    KVZ1 --> LED1_2
    KVZ1 --> LED1_3

Redux Data Structure - Mein Verständnis

graph TB
    subgraph "Redux Store"
        subgraph "kvzPresence Array (32 Elemente)"
            P0["Index 0: 1<br/>(KVZ vorhanden)"]
            P1["Index 1: 0<br/>(KVZ nicht vorhanden)"]
            P2["Index 2: 0"]
            P3["Index 3: 0"]
            PDots["..."]
            P31["Index 31: 0"]
        end

        subgraph "kvzStatus Array (128 Elemente)"
            subgraph "Slot 0 LEDs (Index 0-3)"
                S0_0["Index 0: 1 (grün)"]
                S0_1["Index 1: 0 (rot)"]
                S0_2["Index 2: 1 (grün)"]
                S0_3["Index 3: 0 (rot)"]
            end

            subgraph "Slot 1 LEDs (Index 4-7)"
                S1_0["Index 4: 0"]
                S1_1["Index 5: 0"]
                S1_2["Index 6: 0"]
                S1_3["Index 7: 0"]
            end

            StatusDots["...weitere 120 Elemente"]
        end
    end

UI Darstellung - Mein aktuelles Verständnis

graph LR
    subgraph "FallSensors UI Component"
        subgraph "Aktuelle Implementierung (FALSCH?)"
            UI1["KVZ1: 🟢<br/>(kvzPresence[0] = 1)"]
            UI2["KVZ2: 🔴<br/>(kvzPresence[1] = 0)"]
            UI3["KVZ3: 🔴<br/>(kvzPresence[2] = 0)"]
            UI4["KVZ4: 🔴<br/>(kvzPresence[3] = 0)"]
        end
    end

    subgraph "Problem"
        Problem["Alle KVZ zeigen den gleichen Status<br/>basierend auf kvzPresence Array<br/>→ NICHT korrekt!"]
    end

    UI1 -.-> Problem
    UI2 -.-> Problem
    UI3 -.-> Problem
    UI4 -.-> Problem

Fragen zu meinem Verständnis

  1. KVZ Geräte Zuordnung:

    • Ist ein KVZ-Gerät einem Slot zugeordnet oder unabhängig?
    • Wie viele KVZ-Geräte gibt es insgesamt?
  2. UI KVZ1-KVZ4:

    • Repräsentieren KVZ1-KVZ4 in der UI die ersten 4 Slots (0-3)?
    • Oder sind es 4 separate, unabhängige KVZ-Geräte?
  3. LED Status Mapping:

    • Welche LED von welchem KVZ soll in KVZ1, KVZ2, KVZ3, KVZ4 angezeigt werden?
    • Soll jedes UI-KVZ eine andere LED des gleichen Geräts zeigen?
    • Oder soll jedes UI-KVZ ein anderes KVZ-Gerät repräsentieren?
  4. kvzStatus Array:

    • Wie soll das 128-Element Array für die UI-Darstellung genutzt werden?
    • Welche Indizes entsprechen welchen UI-Elementen?

Verdacht

Ich vermute, dass mein aktueller Ansatz falsch ist, weil:

  • KVZ2 sollte nicht eine Kopie von KVZ1 Status sein
  • Jedes KVZ in der UI sollte einen eigenen, unabhängigen Status haben
  • Die Zuordnung zwischen Redux Arrays und UI ist unklar

Bitte korrigieren Sie mein Verständnis! 🤔