Zum Inhalt

InitAPage (IPage)

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

Beschreibung

INIT A Seite — erste MCDU-Setup-Seite, die vom Piloten aufgerufen wird. Zeigt die Felder CO RTE, FROM/TO (ADEP/ADES), Alternate, Flugnummer, Cost Index, CRZ FL/TEMP und Tropopause an. Wenn beide Flughaefen gesetzt sind, werden Lat/Lon des Abflughafens, der ALIGN IRS-Prompt und die WIND-Navigation angezeigt. SimBrief-Integration ist verfuegbar, wenn beide Flughaefen noch leer sind.

LSK-Aktionen umfassen: L1 CO RTE laden/speichern, L2 ALTN setzen/loeschen, L3 Flugnummer setzen, L5 Cost Index (0-99), L6 CRZ FL/TEMP (komplexer Multi-Format-Parser), R1 FROM/TO Eingabe (XXXX/YYYY, XXXX, /XXXX), R2 SimBrief-Request, R3 ALIGN IRS, R5 WIND-Seite, R6 Tropopause.

Implementierte Methoden

Render

Public Sub Render(ctx As McduContext, buffer As Inet.Arinc429ScreenBuffer) Implements IPage.Render
Name Typ Beschreibung Standard
ctx McduContext MCDU-Zustandskontext mit FlightPlan, Scratchpad, SimBrief-Status etc.
buffer Inet.Arinc429ScreenBuffer ARINC-429-Bildschirmpuffer fuer die MCDU-Anzeige

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 MCDU-Zustandskontext mit Scratchpad-Inhalt und FlightPlan

Rückgabewert (HandleLsk)

Typ Beschreibung
McduCommand Kommando-Objekt: NavigateTo, SetAltn, SetFlightNumber, SetCostIndex, SetCrzAltAndTemp, SetOriginDestination, TriggerSimBriefRequest, AlignIrs, SetTropopause, ShowScratchpadMessage oder NoOp

Ablaufdiagramm

flowchart TD
    A[Render Start] --> B[LISTCLEAR]
    B --> C[Titel + Labels setzen]
    C --> D{ADEP + ADES gesetzt?}
    D -- Nein --> E[Amber-Platzhalter anzeigen: Dashes fuer ALTN, Lat/Lon, CI, CRZ FL]
    D -- Ja --> F[Cyan-Daten: CO RTE, ALTN, Lat/Lon, CI, CRZ FL/TEMP]
    F --> G{ALIGN IRS noetig?}
    G -- Ja --> H[ALIGN IRS Prompt Zeile 07]
    G -- Nein --> I[Weiter]
    E --> J[SimBrief Block pruefen]
    H --> I
    I --> K[Flugnummer anzeigen]
    J --> K
    K --> L[Tropopause rechtsbuendig]
    L --> M[ParseAndRender]

    N[HandleLsk Start] --> O{Welche Taste?}
    O -- L1 --> P{Scratchpad leer?}
    P -- Ja --> Q[NavigateTo SaveCoRte]
    P -- Nein --> R[LoadCompanyRoute]
    O -- R1 --> S[ParseFromTo: XXXX/YYYY, XXXX, /XXXX]
    O -- L5 --> T[CI pruefen: 0-99, nur wenn Airports bekannt]
    O -- L6 --> U[ParseCrzFlTemp: FL/TEMP Multi-Format]
    O -- R6 --> V[SetTropopause: CLR=36090, numerisch direkt]
    O -- R3 --> W[AlignIrs: INET Register 2486, 4201, 4204, 4207, 4191, 4194, 4197]

Aufgerufen von

Modul Sub/Function Kontext
McduActor Seitennavigation Standardseite bei MCDU-Initialisierung oder ueber INIT-Taste
InitBPage HandleLsk R6 Ruecknavigation von INIT B zu INIT A

Ruft auf

Modul Sub/Function Kontext
McduCommandParser ParseAndRender Render-Kommandos in Bildschirmpuffer schreiben
CalcIsaTemp Private Methode ISA-Temperatur aus Hoehe berechnen (15 - 3*(alt/1000), min -56)
ParseFromTo Private Methode FROM/TO Eingabe parsen: XXXX/YYYY, XXXX, /XXXX Formate
ParseCrzFlTemp Private Methode CRZ FL/TEMP mit Slash-Position-Logik (VB6 Case 5)

Beispiel

' InitAPage wird vom McduActor bei Seitennavigation instanziiert
Dim page As New InitAPage()

' Render: Seite in Bildschirmpuffer schreiben
page.Render(ctx, screenBuffer)

' HandleLsk: FROM/TO Eingabe verarbeiten (z.B. "EDDF/EDDM" im Scratchpad)
Dim cmd As McduCommand = page.HandleLsk(McduLskKey.R1, ctx)
' -> SetOriginDestination("EDDF", "EDDM")

' HandleLsk: Cost Index setzen (z.B. "35" im Scratchpad)
Dim ciCmd As McduCommand = page.HandleLsk(McduLskKey.L5, ctx)
' -> SetCostIndex(35)

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation