Skip to content

Flight Log Design

Stefan Kebekus edited this page Jun 15, 2020 · 2 revisions

C++

FlightLogEntry

Diese Klasse speichert die Daten zu einem Flug. Im Wesentlichen enthält die Klasse die folgenden Daten.

  • Startort und Zeitpunkt (falls bekannt)

  • Landeort und Zeitpunkt (falls bekannt)

  • Anzahl Landungen (falls bekannt)

  • Status (vollständig/unvollständig/ungültig)

  • optional: vollständige GPS-Aufzeichnung des Flugweges

FlightLog

Diese Klasse stellt QML eine Liste von FlightLogEntries zur Verfügung.

FlightLogger

Diese Klasse nimmt GPS-Daten von der Klasse SatNav entgegen und generiert FlightLogEntries. Der Code muss auch in folgenden Situationen sinnvolle Ergebnisse liefern.

  • Die App oder das "FlightLog" wird erst während des Fluges eingeschaltet, so dass der Startort und Startzeitpunkt unbekannt sind.

  • Die App oder das "FlightLog" wird während des Fluges ausgeschaltet oder die App stürzt ab oder die Batterie ist leer, so dass der Landeort und -zeitpunkt unbekannt sind.

  • Die Klasse SatNav liefert für einen kürzeren Zeitraum keine Daten (z.B. vorübergehende Empfangsstörung).

  • Die Klasse SatNav liefert für einen längeren Zeitraum keine Daten.

  • Der Nutzer schaltet die App versehentlich während des Fluges aus und korrigiert den Fehler, indem er die App schnell wieder einschaltet.

Die Aufgaben der Klasse sind dann folgende:

  • Daten der Klasse SatNav entgegennehmen.

  • FlightLogEntries generieren und speichern, auf Wunsch mit detaillierter Aufzeichnung des Flugweges.

  • Vereinfachen der Aufzeichnung des Flugweges beim Abspeichern (sehr detaillierte Aufzeichnung nahe Start/Landung/Richtungsänderung, ansonsten reicht ein Datenpunkt pro NM)

  • Zusammenfassen von Einträgen bei mehreren Landungen auf dem gleichen Flugfeld/Touch-and-Go

  • Informieren der Klasse "FlightLog" über Änderungen

GUI/QML

Ich plane für die GUI einen Eintrag "Flight Log" im Hauptmenü, dann eine eigene Seite für die Details.

Header der Seite

Ein drei-Punkte-Menü mit

  • "Clear Flight Log" -> öffnet Dialog mit "Flights older than 6 months"/"All Flights", dann Bestätigungsdialog.

  • "Clear detailed flight paths" -> öffnet Dialog mit "Flights older than 6 months"/"All Flights", dann Bestätigungsdialog

  • Export (z.B. als PDF, CSV oder ähnlich)

  • Open in other app (z.B. als PDF, CSV oder ähnlich)

Content Item

Von oben nach unten

  • Schieberegler "Enable automatic flight log"

  • Schieberegler "Include detailed flight path"

  • Liste der einzelnen Flüge (neuester Flug ganz oben), evtl mit Zwischenüberschriften ("Today", "Yesterday", "Last Week", "Last Month", …), bei leerer Liste einen Erläuterungstext

Delegate für jeden Flug

  • Kurzangabe Startzeit/Ort

  • Landezeit/Ort

  • Flugdauer

  • #Landungen

  • Farbcode für Status (vollständig/unvollständig/ungültig)

  • Icon für detaillierte Flugaufzeichnung

Zusätzlich hat jeder Eintrag drei-Punkte-Menü mit folgendem Inhalt

  • Flug löschen

  • Detailierte Flugaufzeichnung löschen

  • Flug exportierten (z.B. als GPX, Text, …)

  • Flug in anderer App öffnen