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 |