Zum Inhalt

FlightPlan.ApplyDirectTo

Eigenschaft Wert
Modul FlightPlan
Klasse FlightPlan
Typ Function
Sichtbarkeit Public
Datei FlightPlan/FlightPlanModels.vb

Beschreibung

Wendet ein Direct-To auf den Ziel-Leg-Index an (D-10). Alle Legs vor dem Ziel werden verworfen. Am Anfang wird ein DIRECT-Leg mit ArinCCommand "DF" und LegType Normal eingefuegt, gefolgt von allen Legs ab targetLegIndex+1. Die resultierende flache Liste wird vollstaendig in das EnRouteSegment gelegt; alle anderen Segmente werden geleert. Holdings bleiben erhalten.

Signatur

Public Function ApplyDirectTo(targetLegIndex As Integer) As FlightPlan

Parameter

Name Typ Beschreibung Standard
targetLegIndex Integer Globaler 0-basierter Index des Ziel-Legs fuer das Direct-To

Rückgabewert

Typ Beschreibung
FlightPlan Neuer FlightPlan mit Direct-To-Route ab dem Ziel-Leg

Ablaufdiagramm

flowchart TD
    A[Start] --> B[GetAllLegs aufrufen]
    B --> C[Ziel-Leg am targetLegIndex holen]
    C --> D["DIRECT-Leg erstellen (ArinC=DF, LegType=Normal)"]
    D --> E[DIRECT-Leg + Legs ab targetLegIndex+1 in neue Liste]
    E --> F[DepartureSegment leeren]
    F --> G[Neue Liste in EnRouteSegment setzen]
    G --> H[Arrival/Approach/MissedApproach leeren]
    H --> I[Holdings beibehalten]
    I --> J[Neuen FlightPlan zurueckgeben]

Aufgerufen von

Modul Sub/Function Kontext
FlightPlanActor Receive(Of ExecuteDirectTo) Fuehrt Direct-To ueber Actor-Message aus

Ruft auf

Modul Sub/Function Kontext
FlightPlanModels FlightPlan.GetAllLegs Holt alle Legs als flache Liste
FlightPlanModels FlightPlanLeg.New Erzeugt das DIRECT-Leg
FlightPlanModels EnRouteSegment.New(IEnumerable) Erstellt neues EnRoute-Segment mit DIRECT-Route
FlightPlanModels DepartureSegment.Empty Leeres Departure-Segment
FlightPlanModels ArrivalSegment.Empty Leeres Arrival-Segment
FlightPlanModels ApproachSegment.Empty Leeres Approach-Segment
FlightPlanModels MissedApproachSegment.Empty Leeres MissedApproach-Segment
FlightPlanModels FlightPlan.New (privat) Erzeugt neue immutable FlightPlan-Instanz

Beispiel

Dim enrLegs As New List(Of FlightPlanLeg)()
For i = 0 To 7
    enrLegs.Add(New FlightPlanLeg("ENR" & i, 49.0 + i * 0.1, 10.0 + i * 0.1, "TF", "", 90.0,
        0.0, 0.0, 0.0, 50.0, 0.0, 0.0, 0, "", 0, 0, 0, False, 0, False, "", FlightPlanLegType.Normal))
Next
Dim plan = FlightPlan.Empty().WithEnRouteSegment(New EnRouteSegment(enrLegs))

' Direct-To auf ENR4 (Index 4)
Dim updated = plan.ApplyDirectTo(4)
' updated.GetAllLegs()(0).ArinCCommand = "DF"       ' DIRECT-Leg
' updated.GetAllLegs()(0).WaypointIdent = "ENR4"
' updated.GetAllLegs()(1).WaypointIdent = "ENR5"    ' Rest der Route
' updated.DepartureSegment.Legs.Count = 0            ' Geleert

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation