CruiseWindPage (IPage)
| Eigenschaft |
Wert |
| Modul |
Mcdu/Pages |
| Klasse |
CruiseWindPage |
| Typ |
IPage Implementation |
| Sichtbarkeit |
Public |
| Datei |
Mcdu/Pages/CruiseWindPage.vb |
Beschreibung
MCDU-Seite zur Eingabe von Winddaten fuer die Reiseflugphase. Zeigt den Titel "CRUISE WIND AT {wptIdent}" und eine einzelne DIR/SPD-Zeile mit der aktuellen Reiseflughoehe ("AT FL{crzFl}"). Im Gegensatz zu Climb/Descend gibt es nur eine Windzeile (L1) ohne Hoeheneingabe — das Format ist DDD/SSS. R4 navigiert zu ClimbWind (PREV PHASE), R5 zu DescendWind (NEXT PHASE). Bei Aenderungen erscheinen CANCEL (L6) und INSERT (R6); INSERT committet als SetCruiseWind-Command.
Implementierte Methoden
Render
Public Sub Render(ctx As McduContext, buffer As Inet.Arinc429ScreenBuffer) Implements IPage.Render
| Name |
Typ |
Beschreibung |
Standard |
| ctx |
McduContext |
MCDU-Zustand mit WindData.CruiseEntries, CruiseWindWptIdent und CrzAltFt |
— |
| 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 |
MCDU-Zustand mit Scratchpad-Inhalt fuer Windeingabe |
— |
Rueckgabewert (HandleLsk)
| Typ |
Beschreibung |
| McduCommand |
ClearScratchpad bei L1 (erfolgreiche Windeingabe DDD/SSS), ShowScratchpadMessage bei Fehler, NavigateTo ClimbWind (R4), NavigateTo DescendWind (R5), SetCruiseWind (R6 bei Aenderungen), NavigateTo InitA (L6 CANCEL/RETURN), NoOp sonst |
Ablaufdiagramm
flowchart TD
A[HandleLsk aufgerufen] --> B{key = L1?}
B -- Ja --> C{Scratchpad leer?}
C -- Ja --> D[NoOp]
C -- Nein --> E["Split auf '/'"]
E --> F{2 Teile?}
F -- Nein --> G["ShowScratchpadMessage(FORMAT ERROR)"]
F -- Ja --> H{DIR 0-360, SPD 0-250?}
H -- Nein --> I[FORMAT ERROR oder ENTRY OUT OF RANGE]
H -- Ja --> J[_tempDir/_tempSpd setzen + ClearScratchpad]
B -- Nein --> K{key = R4?}
K -- Ja --> L[NavigateTo ClimbWind]
K -- Nein --> M{key = R5?}
M -- Ja --> N[NavigateTo DescendWind]
M -- Nein --> O{key = R6 + changeMade?}
O -- Ja --> P["SetCruiseWind(entry)"]
O -- Nein --> Q{key = L6?}
Q -- Ja --> R[Reset + NavigateTo InitA]
Q -- Nein --> S[NoOp]
Aufgerufen von
| Modul |
Sub/Function |
Kontext |
| McduActor |
Seitennavigation |
Ueber NEXT PHASE von ClimbWindPage oder PREV PHASE von DescendWindPage |
Ruft auf
| Modul |
Sub/Function |
Kontext |
| McduCommandParser |
ParseAndRender |
Render-Befehle in Bildschirmpuffer schreiben |
| ctx.WindData |
CruiseEntries |
Bestehende Reiseflug-Winddaten zur Initialisierung |
| ctx |
CruiseWindWptIdent, CrzAltFt |
Waypoint-Ident und Reiseflughoehe fuer Titelanzeige |
| SetCruiseWind |
Konstruktor |
Winddaten-Commit an McduActor |
| NavigateTo |
Konstruktor |
Seitennavigation (ClimbWind, DescendWind, InitA) |
Beispiel
' CruiseWindPage wird vom McduActor instanziiert:
Dim page As New CruiseWindPage()
page.Render(ctx, buffer)
' Pilot gibt "300/045" im Scratchpad ein und drueckt L1:
ctx.Scratchpad = "300/045"
Dim cmd = page.HandleLsk(McduLskKey.L1, ctx)
' -> ClearScratchpad, _tempDir = 300, _tempSpd = 45
' Pilot drueckt R6 (INSERT):
Dim cmd2 = page.HandleLsk(McduLskKey.R6, ctx)
' -> SetCruiseWind mit WindEntry(300, 45, "", 0)
Aenderungshistorie
| Version |
Datum |
Aenderung |
| 1.0 |
2026-04-16 |
Erstdokumentation |