TakeOff, das X-Plane Starttool für Linux

  • Bisher ist das Programm noch nicht Windows-tauglich, es sollte allerdings kein allzu großes Problem darstellen, das Tool zu portieren.


    Da würde sich auch das Startproblem von allein lösen, da es unter Windows keine Konsole im eigentlichen Sinne gibt. Wenn man da also eine Konsolenanwendung startet, wird automatisch eine Konsole mitgestartet.


    Bei einem Linuxsystem läuft die Konsole grundsätzlich als Grundbestandteil des Betriebssystems im Hintergrund. Wenn ich da eine Konsolenanwendung starte, dann läuft sie auf dieser (unsichtbaren) Konsole, wenn man nicht ausdrücklich sagt, dass sie auf einer "grafischen" Konsole laufen soll.

  • Ein wenig Grundsätzliches zur Funktionsweise.


    Das Ausgangstool war eine sogenannte Batch-Datei, also eine Stapelverarbeitungsdatei, die einfach die Dateien herumkopiert hat. in einer Stapelverarbeitungsdatei sind einfach nacheinander Befehle aufgelistet, die man auch manuell in die Konsole ("cmd") hätte eintippen können. Es gibt auch einfachste Verzeigungs- und Navigationselemente, so richtig ernsthaft ist das aber nicht.
    Es gibt natürlich auch für Linux Batchdateien, nur ist die Konsole, auf der Batchdateien laufen, auf einem Linuxsystem so unglaublich viel mächtiger, dass die Linux-Batch-Sprache eine eigene ausgewachsene Programmiersprache darstellt (die ich nicht beherrsche).


    Es gibt aber für C/C++ einen Befehl, der aus dem Programm heraus dem System einen Befehl übergeben kann, etwa "Kopiere Datei X an Ort Y". Also habe ich ein Programm geschrieben, welches nichts anderes macht, als diese Befehle aufzubauen und ans System weiterzugeben. ;D


    Das Problem daran ist, dass man sich in der Konsole immer an einem bestimmten Ort im Dateisystem befindet, den ein Programm selbst aber nicht kennt. Es kennt aber seinen eigenen Aufruf und damit seine relative Position zu diesem Ort. Damit war es mir möglich, von diesem mir unbekannten Ort aus alle Dateioperationen entsprechend richtig zu steuern, vorrausgesetzt, dass sich das Programm selbst im X-Plane-Verzeichnis befindet.
    Interessanterweise hat aber X-Plane selbst das selbe Problem und muss eigentlich aus seinem eigenen Verzeichnis heraus gestartet werden und nicht "per Fernsteuerung" von einem anderen Ort aus. Da aber mein Programm seine Befehle immer nur von seinem unbekannten Ort aus starten kann, war ein Trick nötig, um diese "Fernsteuerung" zu vermeiden. Das Programm erstellt jetzt bei jedem Start eine kleine Scriptdatei im X-Plane-Verzeichnis, welche dann von dort aus X-Plane starten kann. Leider ist diese Methode für das Programm selbst nicht benutzbar.


    Weitere Probleme ergaben sich bei der Zusammenstellung der Befehle für die Konsole, da ich programmintern keine gute Möglichkeit besitze, zu überprüfen, ob ein Befehl richtig ausgeführt wurde. Daher versuche ich so oft wie möglich, die Resultate zu überprüfen, indem ich einzelne Dateien öffne und wieder schließe, um festzustellen ob sie existieren.


    Ansonsten ist das Programm beeindruckend simpel und kopiert einfach nur Dateien hin und her und startet bei Gelegenheit X-Plane. Dann wartet es, bis X-Plane wieder beendet wurde und macht weiter, wo es aufgehört hatte.


    Wenn ihr irgendwelche weiteren Ideen, Vorschläge oder Kritik habt, schreibt das einfach hier herein.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!