AocWeatherReqPage (IPage)
| Eigenschaft |
Wert |
| Modul |
Mcdu/Pages |
| Klasse |
AocWeatherReqPage |
| Typ |
IPage Implementation |
| Sichtbarkeit |
Public |
| Datei |
Mcdu/Pages/AocPages.vb |
Beschreibung
AOC WEATHER REQ Seite -- 3-Flughafen-Slot Wetteranfrage-Layout. Jeder Slot zeigt den aktuellen Nachrichtentyp (METAR/TAF/METAR + TAF) als Label und einen "WX MSG TYPE" Link zum Aendern. R1-R3 uebernehmen ICAO-Codes aus dem Scratchpad (sequentiell: Slot 1 nur wenn Slot 0 belegt). L1-L3 navigieren zur AocWxMsgType-Seite. R5 zeigt "SEND*" wenn mindestens ein Flughafen eingegeben ist und sendet die Wetteranfrage. Nach dem Senden wird der UTC-Zeitstempel angezeigt. L6 kehrt zum AOC Main Menu zurueck.
Implementierte Methoden
Render
Public Sub Render(ctx As McduContext, buffer As Inet.Arinc429ScreenBuffer) Implements IPage.Render
| Name |
Typ |
Beschreibung |
Standard |
| ctx |
McduContext |
MCDU-Kontext mit ZuluTimeHhmm |
-- |
| buffer |
Inet.Arinc429ScreenBuffer |
Zielpuffer fuer die ARINC-429-Screenausgabe |
-- |
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-L3, R1-R3, R5, L6 aktiv) |
-- |
| ctx |
McduContext |
MCDU-Kontext mit Scratchpad fuer ICAO-Eingabe |
-- |
Rueckgabewert (HandleLsk)
| Typ |
Beschreibung |
| McduCommand |
SetAocWxSlotAndNavigate fuer L1-L3, ClearScratchpad fuer R1-R3, SendAocWeatherRequest fuer R5, NavigateTo(AocMainMenu) fuer L6, NoOp/ShowScratchpadMessage sonst |
Ablaufdiagramm
flowchart TD
A[Start Render] --> B[LISTCLEAR]
B --> C["Row 01: AOC WEATHER REQ"]
C --> D["Slot 0: Label MsgType + ARPT 1"]
D --> E["Row 03: WX MSG TYPE / ICAO oder Platzhalter"]
E --> F["Slot 1: Label MsgType + ARPT 2"]
F --> G["Row 05: WX MSG TYPE / ICAO oder Klammern"]
G --> H["Slot 2: Label MsgType + ARPT 3"]
H --> I["Row 07: WX MSG TYPE / ICAO oder Klammern"]
I --> J{Mindestens ein Airport?}
J -->|Ja| K["Row 11: SEND*"]
J -->|Nein| L[Weiter]
K --> M{Bereits gesendet?}
L --> N["Row 13: RETURN + UTC-Zeit"]
M -->|Ja| O["Row 11: Sende-Zeitstempel"]
M -->|Nein| N
O --> N
N --> P[ParseAndRender]
P --> Q[Ende]
Aufgerufen von
| Modul |
Sub/Function |
Kontext |
| McduActor |
Render-Dispatch |
Wenn McduPageType.AocWeatherReq aktiv ist |
Ruft auf
| Modul |
Sub/Function |
Kontext |
| McduCommandParser |
ParseAndRender |
Uebergibt die Befehlsliste an den Screen-Buffer |
| WriteDataLeft |
Helper |
Datenzeilen links formatieren |
| MsgTypeLabel |
Private Shared |
Wandelt Typ-Code (0/1/2) in Labeltext (METAR/TAF/METAR + TAF) |
| SetAocWxSlotAndNavigate |
Konstruktor |
L1-L3 navigiert zur Wettertyp-Auswahl mit Slot-Index |
| ClearScratchpad |
Konstruktor |
R1-R3 nach ICAO-Eingabe |
| SendAocWeatherRequest |
Konstruktor |
R5 sendet Anfrage mit allen 3 Airports und MsgTypes |
| NavigateTo |
Konstruktor |
L6 -> AocMainMenu |
Beispiel
Dim page As New AocWeatherReqPage()
page.Render(ctx, buffer)
' ICAO eingeben (Scratchpad = "EDDF"):
Dim cmd = page.HandleLsk(McduLskKey.R1, ctx) ' -> ClearScratchpad, _tempAirports(0) = "EDDF"
' Wettertyp waehlen:
Dim cmd2 = page.HandleLsk(McduLskKey.L1, ctx) ' -> SetAocWxSlotAndNavigate(0)
' Anfrage senden:
Dim cmd3 = page.HandleLsk(McduLskKey.R5, ctx) ' -> SendAocWeatherRequest(...)
Aenderungshistorie
| Version |
Datum |
Aenderung |
| 1.0 |
2026-04-16 |
Erstdokumentation |