Zum Inhalt

AcarsViewMessagePage (IPage)

Eigenschaft Wert
Modul Mcdu/Pages
Klasse AcarsViewMessagePage
Typ IPage Implementation
Sichtbarkeit Public
Datei Mcdu/Pages/AcarsMessagePages.vb

Beschreibung

ACARS VIEW MESSAGE Seite -- schreibgeschuetzte Anzeige einer einzelnen gespeicherten ACARS-Nachricht. Zeigt den Nachrichtentext in gruener Kleinschrift (@s~g), 4 Zeilen pro Seite mit Seitenzaehler (bis zu 3 Seiten). Der Betreff wird auf 14 Zeichen gekuerzt und im Titel angezeigt. L5 loescht die aktuelle Nachricht, L6 kehrt zum Message Log zurueck, R6 druckt die Nachricht. Up/Down-Tasten wechseln die Scroll-Seite.

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 AcarsData.ViewMessageLines und ViewMessageIndex --
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 (L5, L6, R6) --
ctx McduContext MCDU-Kontext mit AcarsData fuer Nachrichtenzugriff --

Rueckgabewert (HandleLsk)

Typ Beschreibung
McduCommand EraseAcarsMessage fuer L5, NavigateTo(AcarsMessageLog) fuer L6, PrintAcarsMessageCommand fuer R6, NoOp sonst

Ablaufdiagramm

flowchart TD
    A[Start Render] --> B[LISTCLEAR]
    B --> C[ViewMessageLines und ViewMessageIndex laden]
    C --> D[Subject auf 14 Zeichen kuerzen/auffuellen]
    D --> E[TotalPages berechnen]
    E --> F["Row 01: UTC-Zeit + Subject + P/T"]
    F --> G{4 Textzeilen ausgeben}
    G -->|Zeile vorhanden| H["Row @s~g Nachrichtentext"]
    G -->|Zeile leer| I["Row @s~g leer"]
    H --> G
    I --> G
    G -->|Alle Zeilen| J["Row 11: ERASE"]
    J --> K["Row 13: RETURN + PRINT>"]
    K --> L[ParseAndRender]
    L --> M[Ende]

Aufgerufen von

Modul Sub/Function Kontext
McduActor Render-Dispatch Wenn McduPageType.AcarsViewMessage aktiv ist

Ruft auf

Modul Sub/Function Kontext
McduCommandParser ParseAndRender Uebergibt die Befehlsliste an den Screen-Buffer
EraseAcarsMessage Konstruktor L5 loescht die aktuell angezeigte Nachricht anhand ihrer Id
NavigateTo Konstruktor L6 -> AcarsMessageLog
PrintAcarsMessageCommand Konstruktor R6 druckt Subject + Body der Nachricht

Beispiel

Dim page As New AcarsViewMessagePage()
page.Render(ctx, buffer)

' Nachricht loeschen:
Dim cmd = page.HandleLsk(McduLskKey.L5, ctx) ' -> EraseAcarsMessage(msgId)
' Zurueck zum Log:
Dim cmd2 = page.HandleLsk(McduLskKey.L6, ctx) ' -> NavigateTo(AcarsMessageLog)
' Nachricht drucken:
Dim cmd3 = page.HandleLsk(McduLskKey.R6, ctx) ' -> PrintAcarsMessageCommand(text)

Aenderungshistorie

Version Datum Aenderung
1.0 2026-04-16 Erstdokumentation