Zum Inhalt

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