Zum Inhalt

HoldStateMachine.AdvanceStep

Eigenschaft Wert
Modul Guidance
Klasse HoldStateMachine
Typ Sub
Sichtbarkeit Public
Datei Guidance/GuidanceModels.vb

Beschreibung

Schaltet den Holding-Schritt um eine Position weiter. Die Sequenz folgt dem Schema 1→2→3→4→5→4 (Endlosschleife zwischen Schritt 4 und 5). Schritt 0 (inaktiv) ist ein No-Op — es wird kein Zustand verändert. Dies bildet die VB6-Logik der Holding-Pattern-Schrittfolge nach: Entry (1), HE1 (2), HP1 (3), HP2 (4), und die Schleife HP1↔HP2 (5→4). Wird bei jedem Waypoint-Durchgang (Abeam-Detektion) aufgerufen, solange das Hold aktiv ist.

Signatur

Public Sub AdvanceStep()

Parameter

Keine Parameter.

Ablaufdiagramm

flowchart TD
    A[Start AdvanceStep] --> B{Aktueller HoldStep?}
    B -- 0 --> C[No-Op: Hold nicht aktiv]
    B -- 1 --> D[HoldStep = 2 HE1]
    B -- 2 --> E[HoldStep = 3 HP1]
    B -- 3 --> F[HoldStep = 4 HP2]
    B -- 4 --> G[HoldStep = 5 HP1-Loop]
    B -- 5 --> H[HoldStep = 4 HP2-Loop]
    C --> I[Ende]
    D --> I
    E --> I
    F --> I
    G --> I
    H --> I

Aufgerufen von

Modul Sub/Function Kontext
Guidance/GuidanceActor ProcessGuidanceInput Nach Abeam-Detektion (Waypoint-Durchgang), wenn _guidanceHoldActive = True
Tests/HoldStateMachineTests Diverse Testmethoden Unit-Tests für vollständige Schrittfolge und Loop-Verhalten

Ruft auf

Modul Sub/Function Kontext
Keine weiteren Aufrufe — setzt nur das interne _HoldStep Backing-Feld

Beispiel

Dim hsm As New HoldStateMachine()
hsm.Activate()                     ' HoldStep = 1 (Entry)

hsm.AdvanceStep()                  ' HoldStep = 2 (HE1)
hsm.AdvanceStep()                  ' HoldStep = 3 (HP1)
hsm.AdvanceStep()                  ' HoldStep = 4 (HP2)
hsm.AdvanceStep()                  ' HoldStep = 5 (HP1 loop)
hsm.AdvanceStep()                  ' HoldStep = 4 (HP2 loop — Endlosschleife)
hsm.AdvanceStep()                  ' HoldStep = 5 (HP1 loop)

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation