Zum Inhalt

ProcedureQueryHandler.LoadSid

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

Beschreibung

Laedt alle SID-Prozeduren (Standard Instrument Departure, ProcedureType=2) fuer den angegebenen Flughafen und die Runway. Gemeinsame Transitionen (RunwayId=-1) werden immer mit eingeschlossen. Beim ersten Aufruf fuer einen Flughafen werden alle Prozedurdaten aus der Datenbank geladen und gecacht; weitere Aufrufe verwenden den Cache.

Signatur

Public Function LoadSid(icao As String, runwayDesignator 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. "27L", "09R"); leer fuer alle Runways

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, 2, runwayId, leer)"]
    G --> H[Return ProcedureResult]

Aufgerufen von

Modul Sub/Function Kontext
NavDb NavDbActor.Receive(Of LoadSid) Beantwortet SID-Abfragen vom Akka-Nachrichtensystem
Mcdu McduActor MCDU-Seitenaufbau: Laden der SID-Liste fuer Departure-Auswahl
Tests ProcedureQueryHandlerTests Testaufrufe fuer SID-Lade- und Caching-Verifikation

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=2 und RunwayId

Beispiel

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

' Alle SIDs fuer EGLL Runway 27L laden
Dim result As ProcedureResult = handler.LoadSid("EGLL", "27L")
For Each terminal As TerminalRecord In result.Terminals
    Console.WriteLine($"SID: {terminal.Name}")
Next

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation