Zum Inhalt

Arinc429ScreenBuffer.WriteChar

Eigenschaft Wert
Modul Inet
Klasse Arinc429ScreenBuffer
Typ Sub
Sichtbarkeit Public
Datei Inet/Arinc429ScreenBuffer.vb

Beschreibung

Schreibt ein einzelnes Zeichen mit Farbe und Schriftgroesse an die angegebene Position im MCDU-Bildschirmpuffer. Die Position wird aus Zeile und Spalte berechnet (pos = line * 24 + col). Das Steuer-Byte wird als OR-Verknuepfung von Font- und Farbwert gesetzt. Die Position wird im Dirty-Range markiert, damit BuildDifferentialMessage nur geaenderte Bereiche uebertraegt.

Signatur

Public Sub WriteChar(line As Integer, col As Integer, charByte As Byte, color As McduColor, font As McduFont)

Parameter

Name Typ Beschreibung Standard
line Integer Nullbasierter Zeilenindex (0-12) im 13-zeiligen MCDU-Display --
col Integer Nullbasierter Spaltenindex (0-23) im 24-spaltigen MCDU-Display --
charByte Byte ARINC 429 Zeichen-Byte, ermittelt ueber Arinc429SpecialChars.MapSpecialChar --
color McduColor Zeichenfarbe (Black, Cyan, Red, Yellow, Green, Magenta, Amber, White) --
font McduFont Schriftgroesse (Small=0, Large=128) --

Ablaufdiagramm

flowchart TD
    A[Start] --> B["pos = line * COLUMNS + col"]
    B --> C["_charBuffer(pos) = charByte"]
    C --> D["_ctrlBuffer(pos) = font Or color"]
    D --> E["_firstChange = Min(_firstChange, pos)"]
    E --> F["_lastChange = Max(_lastChange, pos)"]
    F --> G[Ende]

Aufgerufen von

Modul Sub/Function Kontext
Inet Arinc429ScreenBuffer.WriteString Fuer jedes Zeichen im String
Mcdu McduCommandParser.ParseAndRender Fuer regulaere Zeichen im Kommando-Body

Ruft auf

Modul Sub/Function Kontext
System Math.Min Dirty-Range Startposition aktualisieren
System Math.Max Dirty-Range Endposition aktualisieren

Beispiel

Dim buffer As New Arinc429ScreenBuffer()

' Buchstabe "A" in Gruen, grosse Schrift auf Zeile 0, Spalte 5
buffer.WriteChar(0, 5, CByte(AscW("A"c)), McduColor.Green, McduFont.Large)

' Gradzeichen (Sonderzeichen "b") auf Zeile 2, Spalte 10
buffer.WriteChar(2, 10, Arinc429SpecialChars.MapSpecialChar("b"c), McduColor.White, McduFont.Small)

Aenderungshistorie

Version Datum Aenderung
1.0 2026-04-16 Erstdokumentation