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
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 |