Zum Inhalt

SimPositionPage (IPage)

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

Beschreibung

SIM POSITION Seite — ermoeglicht die Neupositionierung des Flugzeugs an einem Flughafen. Der Pilot gibt einen 4-stelligen ICAO-Code ueber L1 ein, waehlt optional ein Gate (R1), LINE UP (R2), 6 NM FINAL (R3) oder 10 NM FINAL (R4) und bestaetigt mit SET (R6). Die Auswahl wird gruen hervorgehoben. Portiert aus VB6 CreateSimPosition / ProcessSIMPosition. Register 5001 (Reposition) und 5002 (Gate) werden per INET gesendet.

Implementierte Methoden

Render

Public Sub Render(ctx As McduContext, buffer As Inet.Arinc429ScreenBuffer) Implements IPage.Render
Name Typ Beschreibung Standard
ctx McduContext MCDU-Kontextdaten (Scratchpad, Flugplan, Zustandsfelder)
buffer Inet.Arinc429ScreenBuffer Zielpuffer fuer die gerenderten ARINC-429-Bildschirmdaten

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-Kontextdaten

Rückgabewert (HandleLsk)

Typ Beschreibung
McduCommand ClearScratchpad bei gueltigem ICAO/Gate, SendSimRegister(5001/5002) bei SET, NavigateTo bei RETURN, NoOp sonst

Ablaufdiagramm

flowchart TD
    A[Start Render] --> B[LISTCLEAR senden]
    B --> C[Titel POSITION schreiben]
    C --> D{Airport gesetzt?}
    D -- Nein --> E[L1: Amber Platzhalter aaaaa]
    D -- Ja --> F[L1: Gruener ICAO-Code]
    F --> G[R1: GATE Eingabefeld]
    E --> H[R2-R4: LINE UP / 6NM / 10NM]
    G --> H
    H --> I{Airport + Selection?}
    I -- Ja --> J[R6: SET* amber]
    I -- Nein --> K[R6: SET weiss oder leer]
    J --> L[L6: RETURN]
    K --> L
    L --> M[ParseAndRender]
    M --> N[Ende]

Aufgerufen von

Modul Sub/Function Kontext
McduActor RenderActivePage Seitenrendering bei aktivem PageType.SimPosition

Ruft auf

Modul Sub/Function Kontext
McduCommandParser ParseAndRender Kommandoliste in Bildschirmpuffer rendern
SendSimRegister (McduCommand) Register 5001 (Reposition) oder 5002 (Gate) senden

Beispiel

Dim page As New SimPositionPage()
page.Render(ctx, buffer)

' ICAO eingeben ueber Scratchpad "EDDF", dann L1 druecken
Dim cmd = page.HandleLsk(McduLskKey.L1, ctx)
' cmd ist ClearScratchpad (Airport intern auf "EDDF" gesetzt)

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation