DuplicateNamesPage (IPage)
| Eigenschaft |
Wert |
| Modul |
Mcdu/Pages |
| Klasse |
DuplicateNamesPage |
| Typ |
IPage Implementation |
| Sichtbarkeit |
Public |
| Datei |
Mcdu/Pages/NavSearchPages.vb |
Beschreibung
DUPLICATE NAMES Seite — zeigt eine Disambiguierungsliste wenn mehrere Wegpunkte denselben Ident haben. Bis zu 6 Eintraege pro Seite mit Ident (links), LAT/LONG (Spalte 10), Frequenz (Spalte 19) und Entfernung von der Referenzposition (rechts im Label). L1-L6 waehlen den jeweiligen Eintrag aus und geben InsertWaypoint zurueck. R5/R6 blaettern zwischen Seiten. Kandidaten werden per SetCandidates() gesetzt und nach Entfernung von der Referenzposition sortiert (Haversine-Formel). Separate Instanzen pro McduActor (CPT/FO) um Zustandslecks zu vermeiden. Portiert aus VB6 CreateDUPLICATENAMES.
Implementierte Methoden
Render
Public Sub Render(ctx As McduContext, buffer As Inet.Arinc429ScreenBuffer) Implements IPage.Render
| Name |
Typ |
Beschreibung |
Standard |
| ctx |
McduContext |
MCDU-Kontextdaten |
— |
| buffer |
Inet.Arinc429ScreenBuffer |
Zielpuffer fuer die gerenderten ARINC-429-Bildschirmdaten |
— |
HandleLsk
Public Function HandleLsk(key As McduLskKey, ctx As McduContext) As McduCommand Implements IPage.HandleLsk
| Name |
Typ |
Beschreibung |
Standard |
| key |
McduLskKey |
Gedrueckte LSK-Taste |
— |
| ctx |
McduContext |
MCDU-Kontextdaten |
— |
Rückgabewert (HandleLsk)
| Typ |
Beschreibung |
| McduCommand |
InsertWaypoint bei L1-L6, NoOp bei R5/R6 (Scroll intern), NoOp sonst |
Ablaufdiagramm
flowchart TD
A[Start Render] --> B[LISTCLEAR senden]
B --> C[Titel DUPLICATE NAMES + Pagination]
C --> D{Kandidaten vorhanden?}
D -- Nein --> E[NO RESULTS anzeigen]
D -- Ja --> F[Bis zu 6 Eintraege rendern]
F --> G[Pro Eintrag: Ident + LatLon + Freq + Distanz]
G --> H[Scroll-Pfeile bei mehreren Seiten]
E --> I[ParseAndRender]
H --> I
I --> J[Ende]
Aufgerufen von
| Modul |
Sub/Function |
Kontext |
| McduActor |
RenderActivePage |
Seitenrendering bei aktivem PageType.DuplicateNames |
Ruft auf
| Modul |
Sub/Function |
Kontext |
| McduCommandParser |
ParseAndRender |
Kommandoliste in Bildschirmpuffer rendern |
| GreatCircleNm |
(Private) |
Grosskreis-Entfernung zur Referenzposition berechnen |
Beispiel
Dim page As New DuplicateNamesPage()
page.SetReferencePosition(50.0, 8.5)
page.SetCandidates(candidates)
page.Render(ctx, buffer)
' L1 druecken → ersten Kandidaten auswaehlen
Dim cmd = page.HandleLsk(McduLskKey.L1, ctx)
' cmd ist InsertWaypoint("WPT01", -1)
Änderungshistorie
| Version |
Datum |
Änderung |
| 1.0 |
2026-04-16 |
Erstdokumentation |