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 |