Nav Tool – FeaturelisteNav Tool – Feature List
v1.0.1 · Code-verifiziert · Stand März 2026v1.0.1 · Code-verified · As of March 2026
Diese Liste dokumentiert alle implementierten und quellcode-verifizierten Features des DTNR Nav Tool in Version 1.0.This list documents all implemented and source-code-verified features of the DTNR Nav Tool in version 1.0.
NAV TOOL — FEATURES
DTNR Nav Tool
Die zentrale Desktop-Anwendung (PyQt6) für Karte, Navigation, Routenplanung, Tracking und Rennteilnahme auf dem Mond Daymar.
| Eigenschaft | Details |
|---|---|
| Framework | PyQt6 mit Dark Theme und dunkler Windows-Titelleiste |
| Auflösung | Min. 1920×1080, Max. 2560×1440 |
| Tabs | Team · POIs · Routen · Nav · Track · Progress |
| Menüs | Datei · Karte · Rennen · Einstellungen |
| Splash Screen | Daymar-Landschaft mit Logo und Ladebalken beim Start |
DTNR Nav Tool
The central desktop application (PyQt6) for map, navigation, route planning, tracking and race participation on the moon Daymar.
| Property | Details |
|---|---|
| Framework | PyQt6 with dark theme and dark Windows title bar |
| Resolution | Min. 1920×1080, Max. 2560×1440 |
| Tabs | Team · POIs · Routes · Nav · Track · Progress |
| Menus | File · Map · Race · Settings |
| Splash Screen | Daymar landscape with logo and loading bar on startup |
Karte & Viewport
- Interaktive Satellitenkarte (Mercator-Projektion) via QGraphicsView
- Zwei umschaltbare Kartenebenen: Daymar Primary und Daymar Secondary
- Horizontale Endloskarte — nahtloses Wrap-Around-Rendering in X-Richtung
- Mausrad-Zoom mit Anchor under Mouse + vertikaler Zoom-Slider
- Panning via Drag (ScrollHandDrag)
- Kartengitter (Breiten-/Längengradnetz) ein-/ausschaltbar
- Koordinatenanzeige an Mausposition
- Rechtsklick → Koordinaten in Zwischenablage kopieren
- Animierte Ansichtszentrierung (650 ms, InOutCubic-Easing) bei POI-/Waypoint-Auswahl
Map & Viewport
- Interactive satellite map (Mercator projection) via QGraphicsView
- Two switchable map layers: Daymar Primary and Daymar Secondary
- Horizontal infinite map — seamless wrap-around rendering in X direction
- Mouse wheel zoom with Anchor under Mouse + vertical zoom slider
- Panning via drag (ScrollHandDrag)
- Map grid (latitude/longitude grid) toggleable
- Coordinate display at mouse position
- Right-click → Copy coordinates to clipboard
- Animated view centering (650 ms, InOutCubic easing) on POI/waypoint selection
Navigation
- Navigation Ein/Aus mit Routen-Waypoint oder POI als Zielquelle
- Auto-Heading-Modus — automatischer Sprung zum nächsten Waypoint bei konfigurierbarem Abstandsschwellwert
- Follow-Modus — Karte zentriert sich auf Position; nach manuellem Pan Rezentrierung nach 5 s
- Nav-Tab-Anzeige: Nächstes Ziel, Peilung, Kurs, Entfernung, ETA
- Kartenvisualisierung: Positionsmarker, Ziellinie, Kompassring mit Gradmarkierungen und Kurslinie
- Mini-Kompass-Widget im Status-Overlay (Peilwinkel, Kursmarker)
- Einstellungen → Navigation: Auto-Heading-Schwellwert konfigurierbar
Navigation
- Navigation On/Off with route waypoint or POI as target source
- Auto-Heading mode — automatic jump to next waypoint at configurable distance threshold
- Follow mode — map centers on position; after manual pan, recenters after 5 s
- Nav tab display: Next target, Bearing, Heading, Distance, ETA
- Map visualization: Position marker, Target line, Compass ring with degree markings and heading line
- Mini compass widget in the status overlay (bearing angle, heading marker)
- Settings → Navigation: Auto-heading threshold configurable
Routenverwaltung
- Laden und Bearbeiten von bis zu 10 gleichzeitigen Routen
- Routen laden/erstellen/entfernen, Lock/Unlock-Modus pro Route
- Farbauswahl pro Route via Color Picker
- Dirty-Status-Tracking (ungesicherte Änderungen markiert mit *)
- Baumansicht mit Route + Waypoints, editierbare Waypoint-ID
- Waypoint-Neuordnung via Rechtsklick-Drag-Reorder
- Waypoints einfügen: darüber/darunter, via Kartenpunkt, nahe Segment
- Waypoints auf der Karte verschieben (Rechtsklick-Drag auf Marker)
- Dynamische Neunummerierung und Entfernungsberechnung (Haversine)
- Kontextmenü: Für Navigation verwenden, Speichern, Speichern unter, Entfernen, Sperren/Entsperren
Offizielle Rennstrecke
- Laden/Anzeigen einer separaten offiziellen Route, unabhängig von Bearbeitungsrouten
- Rendering: Breiter Korridor, dünne Mittellinie, Richtungspfeile, Flaggen (Start/Ziel), Labels an Waypoints
- Im Nav-Tab: Richtung/Entfernung zum nächsten Etappenziel + verbleibende Gesamtdistanz
- Wrap-Rendering über Kartengrenzen
Route Management
- Load and edit up to 10 routes simultaneously
- Load/create/remove routes, Lock/Unlock mode per route
- Color selection per route via color picker
- Dirty status tracking (unsaved changes marked with *)
- Tree view with route + waypoints, editable waypoint ID
- Waypoint reordering via right-click drag reorder
- Insert waypoints: above/below, via map point, near segment
- Move waypoints on the map (right-click drag on marker)
- Dynamic renumbering and distance calculation (Haversine)
- Context menu: Use for navigation, Save, Save as, Remove, Lock/Unlock
Official Race Route
- Load/display separate official route, independent of editing routes
- Rendering: Wide corridor, thin center line, direction arrows, flags (start/finish), labels at waypoints
- In the Nav tab: Direction/distance to next stage target + remaining total distance
- Wrap rendering across map boundaries
Points of Interest (POIs)
- Geladen aus CSV-Datei (Daymar_POIs.csv)
- POI-Tab mit Suchfeld, Alle aktivieren/Alle deaktivieren, Checkbox pro POI
- Spalten: POI-Name, Peilung (Bearing), Entfernung
- Marker-Rendering auf Karte mit Wrap-Unterstützung
- Selektions-Synchronisation zwischen Liste und Karte (Hervorhebung mit Ringen)
- Ausgewählter POI als Navigationsziel verwendbar
Points of Interest (POIs)
- Loaded from CSV file (Daymar_POIs.csv)
- POI tab with search field, Enable all/Disable all, checkbox per POI
- Columns: POI name, Heading (bearing), Distance
- Marker rendering on map with wrap support
- Selection synchronization between list and map (highlighting with rings)
- Selected POI usable as navigation target
Tracking — Routenaufzeichnung
- Tracking Ein/Aus, automatische Erstellung einer neuen Track-Datei
- Duplikat- und Sprungfilter für Bereinigung unplausibler Punkte
- Tracking-Baum mit Punktnummer, Lat/Lon, Zeitstempel pro Punkt
- Kontextmenü: Punkt entfernen, Umbenennen, Speichern, Speichern unter
- Track als Route speichern (Konvertierung)
- Rendering: Gestrichelte Linie mit hohem Kontrast (schwarze Basis + farbige Striche)
- Farbe und Sichtbarkeit konfigurierbar
- Entfernungsberechnung entlang des Trackpfads
Tracking — Route Recording
- Tracking On/Off, automatic creation of a new track file
- Duplicate and jump filter for cleaning implausible points
- Tracking tree with point number, Lat/Lon, timestamp per point
- Context menu: Remove point, Rename, Save, Save as
- Save track as route (conversion)
- Rendering: dashed line with high contrast (black base + colored dashes)
- Color and visibility configurable
- Distance calculation along track path
Tag/Nacht-Rendering
- Dynamische Terminatorlinie (gestrichelt) an der Tag-/Nachtgrenze
- Nacht-Overlay — halbtransparente Abdunklung, prozedural berechnet
- Astronomisches Zeitmodell: Simulationsstart, Zeitskala, Rotationsparameter (Daymar-Quaternion)
- Konfigurationsdialog: Terminator sichtbar, Nacht-Overlay sichtbar, Aktualisierungsintervall (Sekunden)
- Sanfter Dämmerungsübergang (kein harter Schnitt)
Day/Night Rendering
- Dynamic terminator line (dashed) at the day/night boundary
- Night overlay — semi-transparent darkening, procedurally computed
- Astronomical time model: simulation start, timescale, rotation parameters (Daymar quaternion)
- Configuration dialog: Terminator visible, Night overlay visible, Update interval (seconds)
- Soft twilight transition (no hard cut)
Status-Overlay
- Halbtransparentes, frei verschiebbares Panel (DraggableOverlayPanel)
- Ein-/ausschaltbar via Karte → Overlay, persistente Einstellung
- Statusanzeigen: Positionsupdate, Transponder, Tracking, Navigation, Auto-Heading, Follow-Modus
- Mini-Kompass mit Richtung und Peilung zum Ziel
- Countdown bis zur nächsten Positionsabfrage (große rote Warnanzeige in den letzten 10 s)
- Navigationswerte (Ziel, Richtung, Entfernung) bei aktiver Navigation
Status Overlay
- Semi-transparent, freely movable panel (DraggableOverlayPanel)
- Toggleable via Map → Overlay, persistent setting
- Status indicators: Position Update, Transponder, Tracking, Navigation, Auto-Heading, Follow Mode
- Mini compass with direction and bearing to target
- Countdown until next position query (large red warning display in the last 10 s)
- Navigation values (target, direction, distance) when navigation is active
Progress-Tab — Leistungsanalyse
- Durchschnittsgeschwindigkeit aktuell (gleitender Durchschnitt) und gesamt
- Diagramm: Geschwindigkeit über Distanz (SpeedDistanceGraphWidget)
- Diagramm: Routen-Geschwindigkeitsprofil (RouteSpeedProfileGraphWidget) mit Waypoint-Markern
Progress Tab — Performance Analysis
- Average speed current (moving average) and overall
- Chart: Speed over Distance (SpeedDistanceGraphWidget)
- Chart: Route Speed Profile (RouteSpeedProfileGraphWidget) with waypoint markers
Integrierter Transponder
- Vollständig integriert — kein eigenständiges Transponder-Tool erforderlich
- Steuerung via Team-Tab: Transponder Ein/Aus
- Automatische Positionsabfrage via /showlocation
- Positionsquellen: Clipboard-Parsing + UDP-Empfang (Queue + Receiver Thread)
- XYZ → Lat/Lon/Höhe-Transformation mit Rotationsmodell
- Einstellungen → Positionssystem: Update-Intervall, Chat Delay, Key Delay, Freeze Workaround
- Hotkeys: Einzelne Positionsabfrage, Positionsupdate Ein/Aus, Tracking Ein/Aus, Transponder Ein/Aus
- Race-UDP-Presets (z.B. DTNR-Europe)
- Tray-Icon-Unterstützung via pystray (optional)
- Laufzeitplan mit next_position_update_unix für Deadline-orientiertes Senden
Integrated Transponder
- Fully integrated — no standalone Transponder Tool required
- Control via Team tab: Transponder On/Off
- Automatic position query via /showlocation
- Position sources: Clipboard parsing + UDP reception (Queue + Receiver Thread)
- XYZ → Lat/Lon/Height transformation with rotation model
- Settings → Position System: Update interval, Chat Delay, Key Delay, Freeze Workaround
- Hotkeys: Single position update, Position Update On/Off, Tracking On/Off, Transponder On/Off
- Race UDP presets (e.g. DTNR-Europe)
- Tray icon support via pystray (optional)
- Runtime schedule with next_position_update_unix for deadline-oriented sending
Rennteilnahme
- Renndialog: Geplante Rennen ansehen, registrieren, beitreten
- WebSocket-Kommunikation mit dem Race Server (race_list, register, join, leave, ready)
- Bei Beitritt automatische Übernahme: offizielle Route, Update-Intervall, Transponder-Pflicht
- Rennsteuerung im Team-Tab: Route teilen, Team Ready
- Countdown-Overlay (RaceCountdownOverlay) mit Großschrift-Anzeige
- Automatische Aktivierung von Transponder + Positionsupdate bei Rennstart
- Race-Heartbeat-Timer: periodische Team-Updates an den Server
- Schutz-/Sperrlogik: Transponder/Positionsupdate können serverseitig gesperrt werden
- Bei Rennende: Leave an Server, Wiederherstellung der vorherigen offiziellen Route
Race Participation
- Race dialog: View scheduled races, register, join
- WebSocket communication with the Race Server (race_list, register, join, leave, ready)
- On join, automatic adoption: official route, update interval, transponder requirement
- Race controls in Team tab: Share route, Team Ready
- Countdown overlay (RaceCountdownOverlay) with large-font display
- Automatic activation of Transponder + Position Update at race start
- Race heartbeat timer: periodic team updates to the server
- Protection/lock logic: Transponder/Position Update can be locked server-side
- On race end: Leave to server, restoration of the previous official route
Hotkeys
- Systemweite Hotkeys — funktionieren auch im Hintergrund
- Aktionen: Einzelne Positionsabfrage, Positionsupdate Ein/Aus, Tracking Ein/Aus, Transponder Ein/Aus
- Key-Capture-Dialog für freie Tastenbelegung
- Standardwerte-Reset-Button
- Timer-basiertes Hotkey-Polling
Hotkeys
- System-wide hotkeys — work even in the background
- Actions: Single position update, Position Update On/Off, Tracking On/Off, Transponder On/Off
- Key capture dialog for free key assignment
- Defaults reset button
- Timer-based hotkey polling
Dateien & Persistenz
- Dateiformate: .route (JSON mit WPoints), .track (JSON mit Zeitstempeln)
- Konfiguration: config.json unter %LOCALAPPDATA%/DTNR-NavTool/config/
- Standard-Ordner für Routen und Trackdaten konfigurierbar
- Dev vs. Frozen-Mode Pfadlogik (PyInstaller)
- Logging unter %LOCALAPPDATA%/DTNR-Tool/logs/
- Lizenz-Envelope-Format unter %LOCALAPPDATA%/DTNR-Tool/licenses/
Files & Persistence
- File formats: .route (JSON with WPoints), .track (JSON with timestamps)
- Configuration: config.json under %LOCALAPPDATA%/DTNR-NavTool/config/
- Default folders for routes and track data configurable
- Dev vs. Frozen mode path logic (PyInstaller)
- Logging under %LOCALAPPDATA%/DTNR-Tool/logs/
- License envelope format under %LOCALAPPDATA%/DTNR-Tool/licenses/