Zum Inhalt

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