Zum Inhalt

Perf1Page (IPage)

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

Beschreibung

PERF TAKE OFF Seite (PERF 1/6) — zeigt V1/VR/V2, FLP RETR/SLT RETR/CLEAN Geschwindigkeiten (F=/S=/O=), TRANS ALT, THR RED/ACC, RWY, TO SHIFT, FLAPS/THS, FLEX TO TEMP und ENG OUT ACC an. SEC/PRIM Dual-Pfad: SEC zeigt Brackets bei fehlenden V-Speeds, PRIM zeigt Amber-Platzhalter. Phase 0 (Preflight) = cyan Werte, Phase > 0 = gruene Werte. NEXT PHASE Navigation zu PERF 2 immer verfuegbar.

LSK-Aktionen (Phase 0 bei PRIM, immer bei SEC): L1 V1, L2 VR, L3 V2, L4 TRANS ALT, L5 THR RED/ACC (komplexe Slash-Eingabe), R2 TO SHIFT, R3 FLAPS/THS (Slash-Eingabe), R4 FLEX TO TEMP (40-70 Bereich), R5 ENG OUT ACC. R6 NEXT PHASE zu Perf2.

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 PerfSnapshot, LastMainPage (SEC-Erkennung), FlightPhaseInt, GrossWeight
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, PerfSnapshot, FlightPhaseInt

Rückgabewert (HandleLsk)

Typ Beschreibung
McduCommand Kommando-Objekt: UpdatePerfSnapshot (mit geaendertem Feld), NavigateTo (Perf2), ClearScratchpad, ShowScratchpadMessage oder NoOp

Ablaufdiagramm

flowchart TD
    A[Render Start] --> B{SEC Pfad?}
    B -- Ja --> C[SEC Titel]
    B -- Nein --> D[TAKE OFF Titel]
    C --> E[V1/VR/V2: Bracket bei SEC, Amber bei PRIM wenn nicht gesetzt]
    D --> E
    E --> F[F=/S=/O= Speeds aus SpeedCalculations]
    F --> G[TRANS ALT + THR RED/ACC links]
    G --> H[RWY + TO SHIFT + FLAPS/THS rechts]
    H --> I[FLEX TO TEMP + ENG OUT ACC]
    I --> J[NEXT PHASE Zeile 12-13]

    K[HandleLsk] --> L{SEC oder PRIM?}
    L -- SEC --> M[Alle LSKs immer aktiv]
    L -- PRIM --> N{Phase = 0?}
    N -- Ja --> M
    N -- Nein --> O[Nur R6 NEXT PHASE aktiv]
    M --> P{Taste?}
    P -- L1 --> Q[V1: CLR=-1, numerisch setzt]
    P -- L5 --> R[HandleThrRedAcc: Slash-Parser]
    P -- R3 --> S[HandleFlapsThs: Flap 0-3, /THS]
    P -- R4 --> T[HandleFlexTemp: 40-70 Bereich]
    P -- R6 --> U[NavigateTo Perf2]

Aufgerufen von

Modul Sub/Function Kontext
McduActor Seitennavigation PERF Hardkey-Taste oder PREV PHASE von Perf2

Ruft auf

Modul Sub/Function Kontext
McduCommandParser ParseAndRender Render-Kommandos in Bildschirmpuffer schreiben
Trajectory.SpeedCalculations CalcFSpeed, CalcSSpeed, CalcGreenDot F/S/O Geschwindigkeiten aus Gewicht berechnen
HandleThrRedAcc Private Methode THR RED/ACC Slash-Eingabe parsen
HandleFlapsThs Private Methode FLAPS/THS kombinierte Eingabe parsen
HandleFlexTemp Private Methode FLEX TEMP Eingabe validieren (40-70)

Beispiel

' Perf1Page wird vom McduActor bei PERF-Taste instanziiert
Dim page As New Perf1Page()

' Render: TAKE OFF Performance Seite anzeigen
page.Render(ctx, screenBuffer)

' HandleLsk: V1 setzen (z.B. "145" im Scratchpad, L1)
Dim cmd As McduCommand = page.HandleLsk(McduLskKey.L1, ctx)
' -> UpdatePerfSnapshot(perf.With(v1:=145))

' HandleLsk: FLAPS/THS setzen (z.B. "1/0.5" im Scratchpad, R3)
Dim flapCmd As McduCommand = page.HandleLsk(McduLskKey.R3, ctx)
' -> UpdatePerfSnapshot(perf.With(flaps:=1, ths:="0.5"))

Änderungshistorie

Version Datum Änderung
1.0 2026-04-16 Erstdokumentation