Files
CPLv4.0/components/main/kabelueberwachung/kue705FO/Charts/LoopMeasurementChart

🧭 Zoom-Verhalten beim Schleifen-/Isolationsdiagramm

In dieser Komponente wird das automatische Nachladen der Messwerte temporär deaktiviert, wenn der Benutzer per Maus in das Diagramm zoomt oder pannt. Nach 30 Sekunden ohne Zoom/Pan-Aktion wird die automatische Aktualisierung wieder aktiviert. Dieses Verhalten dient dazu, den Zoom-Zustand nicht durch neue Daten zu verlieren.


📁 Enthaltene Komponenten

  • LoopChartActionBar.tsx
    → Auswahlleiste für Slot-Nummer, Zeitraum (über DateRangePicker), Messmodus (DIA0, DIA1, DIA2) und Slot-Typ (Schleife/Isolation).
    → Ruft alle 10 Sekunden neue Messdaten ab außer der Zoom-Modus pausiert das.

  • LoopMeasurementChart.tsx
    → Das eigentliche Liniendiagramm mit Chart.js + Zoom-Plugin.
    → Erkennt Zoom/Pan und setzt chartUpdatePaused, bis 30 Sekunden Inaktivität vergangen sind.

  • DateRangePicker.tsx
    → Zeigt zwei Felder für Von-/Bis-Datum. Nutzt Redux, um globale Zeitfenster zu setzen.

  • CustomTooltip.tsx
    → Zeigt beim Hover über die Kurve kontextbezogene Werte wie Messwert, Min, Max und Durchschnitt (DIA0/1/2).


🟢 UML-Aktivitätsdiagramm (Zoom → Pause → Timer → Auto-Update)

flowchart TD
    Start([Start])
    ZoomEvent[[Zoom oder Pan erkannt]]
    SetPause[Setze chartUpdatePaused = true]
    StartTimer[Starte 30s Timer]
    Check[Timer abgelaufen?]
    SetResume[Setze chartUpdatePaused = false]
    FetchData[[Datenabruf wieder erlaubt]]
    End([Ende])

    Start --> ZoomEvent --> SetPause --> StartTimer --> Check
    Check -- Nein --> StartTimer
    Check -- Ja --> SetResume --> FetchData --> End

stateDiagram-v2 [*] --> AktualisierungAktiv

AktualisierungAktiv --> ZoomPause : Zoom/Pan erkannt
ZoomPause --> AktualisierungAktiv : 30 Sekunden Inaktivität

state AktualisierungAktiv {
    [*] --> Normalbetrieb
}

state ZoomPause {
    [*] --> CountdownLäuft
}