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 |