Zum Inhalt

SidPage (IPage)

Eigenschaft Wert
Modul Mcdu/Pages
Klasse SidPage
Typ IPage Implementation
Sichtbarkeit Public
Datei Mcdu/Pages/SidPage.vb

Beschreibung

MCDU-Seite zur Auswahl einer SID (Standard Instrument Departure) fuer den Abflughafen. Zeigt den Titel "DEPARTURES FROM {ADEP}", die aktuelle RWY/SID/TRANS-Kombination in Zeile 3, sowie eine scrollbare Liste verfuegbarer SIDs aus dem ProcedureCache (erster Eintrag ist immer "NO SID" fuer runway-only departure). Bei aktivem TMPY-Flugplan werden Titel und Auswahl gelb dargestellt, und die untere Zeile zeigt F-PLN/INSERT statt RETURN. L2-L5 waehlen eine SID aus der Liste, L6 navigiert zurueck (F-PLN bei TMPY, LatRevAdep ohne TMPY), R6 fuehrt INSERT bei TMPY aus.

Implementierte Methoden

Render

Public Sub Render(ctx As McduContext, buffer As Inet.Arinc429ScreenBuffer) Implements IPage.Render
Name Typ Beschreibung Standard
ctx McduContext Aktueller MCDU-Zustand mit FlightPlan, ProcedureCache, TMPY-Status und Scroll-Indizes
buffer Inet.Arinc429ScreenBuffer Zielpuffer fuer die ARINC-429-Bildschirmausgabe

HandleLsk

Public Function HandleLsk(key As McduLskKey, ctx As McduContext) As McduCommand Implements IPage.HandleLsk
Name Typ Beschreibung Standard
key McduLskKey Gedrueckte LSK-Taste (L1-L6, R1-R6)
ctx McduContext Aktueller MCDU-Zustand fuer Scratchpad-Inhalt und ProcedureCache-Zugriff

Rueckgabewert (HandleLsk)

Typ Beschreibung
McduCommand SelectSid bei L2-L5 (SID-Auswahl), NavigateTo bei L6 (Fpln oder LatRevAdep), TmpyInsertCommand bei R6 (TMPY INSERT), NoOp bei unbelegten Tasten

Ablaufdiagramm

flowchart TD
    A[HandleLsk aufgerufen] --> B{key = L6?}
    B -- Ja --> C{TMPY aktiv?}
    C -- Ja --> D[NavigateTo Fpln]
    C -- Nein --> E[NavigateTo LatRevAdep]
    B -- Nein --> F{key = R6 + TMPY?}
    F -- Ja --> G[TmpyInsertCommand]
    F -- Nein --> H{key = L2-L5?}
    H -- Nein --> I[NoOp]
    H -- Ja --> J[Slot berechnen via SidTopIndex]
    J --> K{entryIdx = 0?}
    K -- Ja --> L["SelectSid(NONE, rwy)"]
    K -- Nein --> M{ProcedureCache vorhanden?}
    M -- Nein --> N["ShowScratchpadMessage(NO SID DATA)"]
    M -- Ja --> O["SelectSid(proc.Name, rwy)"]

Aufgerufen von

Modul Sub/Function Kontext
McduActor Seitennavigation Wenn Pilot SID-Auswahl ueber LatRev ADEP oeffnet

Ruft auf

Modul Sub/Function Kontext
McduCommandParser ParseAndRender Render-Befehle in Bildschirmpuffer schreiben
ProcedureCache SidResult.Procedures Liste verfuegbarer SIDs abfragen
SelectSid Konstruktor SID-Auswahl an McduActor melden
TmpyInsertCommand Konstruktor TMPY-Flugplan einfuegen
NavigateTo Konstruktor Seitennavigation (Fpln, LatRevAdep)

Beispiel

' SidPage wird vom McduActor instanziiert und per Render()/HandleLsk() gesteuert:
Dim page As New SidPage()
page.Render(ctx, buffer)

' Pilot drueckt L3 (dritte SID in der Liste):
Dim cmd As McduCommand = page.HandleLsk(McduLskKey.L3, ctx)
' -> SelectSid mit dem Namen der SID an Index SidTopIndex + 1

Aenderungshistorie

Version Datum Aenderung
1.0 2026-04-16 Erstdokumentation