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 |