McduCommandParser.ParseAndRender
| Eigenschaft |
Wert |
| Modul |
Mcdu |
| Klasse |
McduCommandParser |
| Typ |
Sub |
| Sichtbarkeit |
Public |
| Datei |
Mcdu/McduCommandParser.vb |
Beschreibung
Parst eine Liste von VB6-MCDU-Kommandostrings und schreibt das Ergebnis in den uebergebenen Bildschirmpuffer. Unterstuetzte Kommandos sind LISTCLEAR (Puffer leeren, Zustand zuruecksetzen), LISTCOMPLETE (No-Op Endmarkierung) und Inhaltsstrings im Format "LLBODY" (LL = 2-stellige 1-basierte Zeilennummer). Im Body werden Steuertoken fuer Spaltenposition (|CC), Schriftgroesse (@s/@l) und Farbe (~w/~b/~g/~y/~r/~a/~m) erkannt. Die Kommandoliste wird zusaetzlich in buffer.LastCommands gespeichert fuer den INET-Register-5339-Textpfad.
Signatur
Public Sub ParseAndRender(commands As IEnumerable(Of String), buffer As Inet.Arinc429ScreenBuffer)
Parameter
| Name |
Typ |
Beschreibung |
Standard |
| commands |
IEnumerable(Of String) |
Sequenz von VB6-Kommandostrings (LISTCLEAR, LISTCOMPLETE oder Inhaltsstrings) |
-- |
| buffer |
Inet.Arinc429ScreenBuffer |
Ziel-Bildschirmpuffer; LISTCLEAR ruft buffer.Clear() auf |
-- |
Ablaufdiagramm
flowchart TD
A[Start] --> B["Kommandos in Array zwischenspeichern + LISTCOMPLETE anfuegen"]
B --> C["buffer.LastCommands = cmdArray"]
C --> D["Farbe=White, Font=Large"]
D --> E{"Naechster Eintrag?"}
E -- Nein --> M[Ende]
E -- Ja --> F{"LISTCLEAR?"}
F -- Ja --> G["buffer.Clear(), Reset Farbe/Font"]
G --> E
F -- Nein --> H{"LISTCOMPLETE oder leer?"}
H -- Ja --> E
H -- Nein --> I["Zeilennummer aus ersten 2 Zeichen parsen"]
I --> J{"Zeile 0-12 gueltig?"}
J -- Nein --> E
J -- Ja --> K["Body-Zeichen durchlaufen: Pipe/At/Tilde/Zeichen"]
K --> L["WriteChar fuer jedes regulaere Zeichen"]
L --> E
Aufgerufen von
| Modul |
Sub/Function |
Kontext |
| Mcdu/Pages |
Alle IPage.Render-Implementierungen |
Jede MCDU-Seite (InitAPage, FplnPage, PerfPages, etc.) ruft ParseAndRender mit ihren Kommandos auf |
Ruft auf
| Modul |
Sub/Function |
Kontext |
| Inet |
Arinc429ScreenBuffer.Clear |
Bei LISTCLEAR-Kommando |
| Inet |
Arinc429ScreenBuffer.WriteChar |
Fuer jedes regulaere Zeichen im Body |
| Inet |
Arinc429SpecialChars.MapSpecialChar |
Zeichenumwandlung in ARINC 429 Byte |
Beispiel
Dim buffer As New Arinc429ScreenBuffer()
' Typische Kommandoliste fuer eine MCDU-Seite
Dim cmds As New List(Of String) From {
"LISTCLEAR",
"01|09~w@lINIT",
"02@s~bCO RTE",
"03@l~gEDDM/EDDF",
"LISTCOMPLETE"
}
McduCommandParser.ParseAndRender(cmds, buffer)
' Puffer enthaelt jetzt die gerenderte INIT-Seite
Aenderungshistorie
| Version |
Datum |
Aenderung |
| 1.0 |
2026-04-16 |
Erstdokumentation |