RadNavPage (IPage)
| Eigenschaft |
Wert |
| Modul |
Mcdu/Pages |
| Klasse |
RadNavPage |
| Typ |
IPage Implementation |
| Sichtbarkeit |
Public |
| Datei |
Mcdu/Pages/RadNavPage.vb |
Beschreibung
RADNAV-Seite — manuelle Funknavigation-Abstimmung. Implementiert drei VB6-Varianten: Standard (RenderStandard), NAV1ILS-Modus (RenderOwn, Nav1IlsMode=True) und Original-ILS-Frequenz-Override (RenderOwnIlsFs, OriginalIlsFreq nicht leer). Zweispaltiges Layout: VOR1/ILS links, VOR2 rechts; ADF1 links, ADF2 rechts. Rechte Spalte rechtsbuendig mit Format(25-Len, "00") Formel. CRS-Felder (OBS) werden als 3-stellige Gradzahl angezeigt.
LSK-Aktionen: L1 VOR1 Freq (oder ILS Freq bei Nav1IlsMode), R1 VOR1 OBS (0-359), L2 ILS Freq, R2 ILS CRS (0-359), L3 VOR2 Freq, R3 VOR2 OBS, L5 ADF1 Freq, R5 ADF2 Freq, L6 Navigation zu McduMenu1.
Implementierte Methoden
Render
Public Sub Render(ctx As McduContext, buffer As Inet.Arinc429ScreenBuffer) Implements IPage.Render
| Name |
Typ |
Beschreibung |
Standard |
| ctx |
McduContext |
MCDU-Zustandskontext mit Vor1/Vor2/ILS/ADF Freq/Ident/OBS/CRS, Nav1IlsMode, OriginalIlsFreq |
— |
| buffer |
Inet.Arinc429ScreenBuffer |
ARINC-429-Bildschirmpuffer fuer die MCDU-Anzeige |
— |
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-L6, R1-R6) |
— |
| ctx |
McduContext |
MCDU-Zustandskontext mit Scratchpad und Radio-Nav-Feldern |
— |
Rückgabewert (HandleLsk)
| Typ |
Beschreibung |
| McduCommand |
Kommando-Objekt: SetRadioNav (mit allen VOR/ILS/ADF Feldern), NavigateTo (McduMenu1), ShowScratchpadMessage oder NoOp |
Ablaufdiagramm
flowchart TD
A[Render Start] --> B[LISTCLEAR]
B --> C{Render-Variante?}
C -- Nav1IlsMode --> D[RenderOwn: VOR1 + ILS aktiv]
C -- OriginalIlsFreq --> E[RenderOwnIlsFs: Original ILS Freq]
C -- Standard --> F[RenderStandard: VOR1 auto, ILS Bracket]
D --> G[VOR1 Zeile 03 + OBS Zeile 05]
E --> G
F --> G
G --> H[VOR2 rechtsbuendig Zeile 03]
H --> I[ILS Zeile 07 + CRS Zeile 09]
I --> J[ADF1 Zeile 11 links + ADF2 rechtsbuendig]
K[HandleLsk] --> L{Taste?}
L -- L1 --> M{Nav1IlsMode?}
M -- Ja --> N[ILS Freq setzen]
M -- Nein --> O[VOR1 Freq setzen]
L -- R1 --> P[VOR1 OBS: 0-359]
L -- L2 --> Q[ILS Freq setzen]
L -- R2 --> R[ILS CRS: 0-359]
L -- L3 --> S[VOR2 Freq setzen]
L -- L5 --> T[ADF1 Freq setzen]
L -- R5 --> U[ADF2 Freq setzen]
L -- L6 --> V[NavigateTo McduMenu1]
Aufgerufen von
| Modul |
Sub/Function |
Kontext |
| McduActor |
Seitennavigation |
RAD NAV Hardkey-Taste oder MCDU-Menu |
Ruft auf
| Modul |
Sub/Function |
Kontext |
| McduCommandParser |
ParseAndRender |
Render-Kommandos in Bildschirmpuffer schreiben |
| RenderVor2 |
Private Methode |
VOR2 Daten rechtsbuendig rendern |
| RenderAdf1 |
Private Methode |
ADF1 Daten links rendern |
| RenderAdf2 |
Private Methode |
ADF2 Daten rechtsbuendig rendern |
| ValidateFreq |
Private Methode |
VOR/ILS Frequenz validieren (Dezimalpunkt erforderlich) |
| ValidateAdfFreq |
Private Methode |
ADF Frequenz validieren (nur numerisch) |
Beispiel
' RadNavPage wird vom McduActor bei RAD NAV-Taste instanziiert
Dim page As New RadNavPage()
' Render: Radio-Navigation-Seite anzeigen
page.Render(ctx, screenBuffer)
' HandleLsk: VOR1 Frequenz setzen (z.B. "114.50" im Scratchpad, L1)
Dim cmd As McduCommand = page.HandleLsk(McduLskKey.L1, ctx)
' -> SetRadioNav(vor1Freq:="114.50", ...)
' HandleLsk: ILS CRS setzen (z.B. "275" im Scratchpad, R2)
Dim crsCmd As McduCommand = page.HandleLsk(McduLskKey.R2, ctx)
' -> SetRadioNav(..., ilsCrs:=275, ...)
Änderungshistorie
| Version |
Datum |
Änderung |
| 1.0 |
2026-04-16 |
Erstdokumentation |