Programmierung

Hin und wieder entwickle ich auch in meiner Freizeit kleine Anwendungen. Dazu seien hier die 2 aktuellen Bastelprojekte vorgestellt.

X-Plane Launcher / FWL

Ich möchte mit einem beliebigen Flieger von dort starten, wo ich zuletzt gelandet bin.
Ich möchte die Standorte aller bereits verwendeten Flieger auf einer Karte sehen.
Ich möchte X-Plane einfach mit einem bestimmten Flieger an dessen Startposition starten.

Für obige Probleme und noch einige Weitere, gab es leider keine vorgefertigte Lösung.
Daher hab ich eine kleine Desktopanwendung sowie ein Fly-With-Lua Script entwickelt, welches mir obige Anforderungen erlaubt umzusetzen.

Fly with LUA

Ein Flieger in X-Plane kann eindeutig über den Flugzeugtyp (afc Datei) und die Bemalung (Livery) identifiziert werden (z.B.: Cessna_172SP_Laminar-Research_Cessna-172SP_waves).

Das Skript speichert periodisch:

  • die aktuelle Position in einer entsprechenden JSON Datei, die mit dem eindeutigen Namen versehen ist.
  • den aktuellen X-Plane Stand (Flug speichern) in eine ebenfalls mit dem eindeutigen Namen versehene Datei.

Alte Dateien werden dabei jeweils überschrieben.

Desktopanwendung

Die Anwendung ließt die JSONs aus und zeigt mit die Positionen auf einer Karte sowie die Flieger in einer Listenansicht. Da zusätzlich im JSON nochmal der Pfad zum Flieger und die Livery enthalten sind, können sogar meist die Thumbnails angezeigt werden.

Es kann nun also entweder ein Flieger nach Typ/Bemalung aus der Liste, oder nach Position von der Karte gewählt werden.

Möchte ich nun in X-Plane mit dem gewählten Flieger weiterfliegen, kopiert die Anwendung die durch das Skript gespeicherte sit Datei nach default.sit und startet X-Plane.

Zusätzlich lassen sich in der Anwendung noch ein Zielort pro Flieger verwalten um den Überblick nicht zu verlieren.

X-Plane

Der Simulator ist lediglich so eingestellt, das er immer mit der default.sit und ohne Hauptmenü startet.

Soll ein neuer Flieger ins System aufgenommen werden, so wird dieser einfach über das Hauptmenü gewählt und der Flug gestartet.

Garmin Connect Exporter

Ich verwende seit je her diverse Garmin Geräte auf dem Rad, zum Laufen, zum Schwimmen, zum Skifahren, …

All die generierten Daten gehen erst einmal den gewöhnlichen Weg in die Cloud zu Garmin Connect.

Nun möchte ich natürlich aber auch alle Daten bei mir vorrätig haben um diese weiterführend auswerten zu können.

Leider bietet mir Garmin keine offizielle, bezahlbare API um automatisiert an meine Eigenen Daten heranzukommen.

Mit etwas Hilfe vom Tapiriik Projekt, ist es jedoch gelungen eine kleine .net core Anwendung zu entwicklen, welche die Daten über die von der Garmin Connect UI verwendeten APIs abruft.

Somit ist es nun möglich sowohl die offiziellen .fit Dateien als auch bereits nach GPX umgewandelte Routen herunterzuladen und lokal abzuspeichern.

Zusätzlich werden noch weitere Metadaten aus den APIs ermittelt und in einer MySql Datenbank abgelegt.

Die Anwendung läuft auf Linux und wird über cron periodisch angestoßen, so dass ich immer meine aktuellsten Daten auch auf dem heimischen Rechner zur Verfügung habe.

Zusätzlich wird am Ende des Durchlaufs eine Mail mit einer Zusammenfassung gesendet, so das s ich immer den Überblick über die letzten 7 Tage habe.

Für die strukturierte Auswertung bzw. Visualisierung soll es zukünftig noch eine Anwendung geben, welche mir aus der Menge aller Daten z.B. nur die GPX der Radfahrten des letzten Jahres bereitstellt, so dass ich diese in eine GIS Anwendung laden und darstellen kann.

Auch eine Auswertung mittels Golden Ceetah wäre so über alle Daten der verschiedenen Geräte möglich.