Zum Inhalt

ProcedureQueryHandler.LoadApproach

Eigenschaft Wert
Modul NavDb
Klasse ProcedureQueryHandler
Typ Function
Sichtbarkeit Public
Datei NavDb/ProcedureQueryHandler.vb

Beschreibung

Laedt Approach-Prozeduren (ProcedureType=3) fuer den angegebenen Flughafen, die Runway und optional einen bestimmten Approach-Namen (z.B. "ILS26L"). Wenn approachName leer ist, werden alle Approaches fuer die Runway zurueckgegeben. Gemeinsame Transitionen (RunwayId=-1) werden immer mit eingeschlossen. Der Prozedur-Cache wird beim ersten Aufruf fuer einen Flughafen aus der Datenbank gefuellt.

Signatur

Public Function LoadApproach(icao As String, runwayDesignator As String, approachName As String) As ProcedureResult

Parameter

Name Typ Beschreibung Standard
icao String ICAO-Code des Flughafens (z.B. "EDDF", "EGLL")
runwayDesignator String Runway-Bezeichnung (z.B. "26L", "09R"); leer fuer alle Runways
approachName String Optionaler Approach-Name (z.B. "ILS26L"); leer fuer alle Approaches

Rückgabewert

Typ Beschreibung
ProcedureResult Ergebnisobjekt mit passenden TerminalRecords und zugehoerigen ProcedureLegs

Ablaufdiagramm

flowchart TD
    A[Start] --> B["EnsureCached(icao)"]
    B --> C{Cache vorhanden?}
    C -- Ja --> D[Cache verwenden]
    C -- Nein --> E[LoadAirportProcedures aus DB]
    E --> D
    D --> F["FindRunwayId(cache, runwayDesignator)"]
    F --> G["FilterProcedures(cache, 3, runwayId, approachName)"]
    G --> H[Return ProcedureResult]

Aufgerufen von

Modul Sub/Function Kontext
NavDb NavDbActor.Receive(Of LoadApproach) Beantwortet Approach-Abfragen vom Akka-Nachrichtensystem
Mcdu McduActor MCDU-Seitenaufbau: Laden der Approach-Liste fuer Arrival-Auswahl

Ruft auf

Modul Sub/Function Kontext
NavDb ProcedureQueryHandler.EnsureCached (Private) Stellt sicher, dass der Prozedur-Cache fuer den Flughafen geladen ist
NavDb ProcedureQueryHandler.FindRunwayId (Private) Ermittelt die Datenbank-ID der angegebenen Runway
NavDb ProcedureQueryHandler.FilterProcedures (Friend) Filtert Terminals nach ProcedureType=3, RunwayId und approachName

Beispiel

Dim handler As New ProcedureQueryHandler("C:\NavData\ASTNAV.mdb",
    AddressOf navaidHandler.LookupWaypointById)

' Alle Approaches fuer EDDF laden
Dim result As ProcedureResult = handler.LoadApproach("EDDF", "", "")
For Each terminal As TerminalRecord In result.Terminals
    Console.WriteLine($"Approach: {terminal.Name}")
Next

' Spezifischen ILS-Approach laden
Dim ilsResult As ProcedureResult = handler.LoadApproach("EDDF", "25L", "ILS25L")

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation