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 |