Warnung: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' (this will throw an Error in a future version of PHP) in ..../includes/init.php (Zeile 156)

Warnung: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' (this will throw an Error in a future version of PHP) in ..../includes/init.php (Zeile 156)

Warnung: Use of undefined constant MYSQL_BOTH - assumed 'MYSQL_BOTH' (this will throw an Error in a future version of PHP) in ..../includes/init.php (Zeile 156)

Warnung: Use of undefined constant VB_FRAMEWORK - assumed 'VB_FRAMEWORK' (this will throw an Error in a future version of PHP) in ..../includes/functions.php (Zeile 8101)

Warnung: Use of undefined constant archive_postsperpage - assumed 'archive_postsperpage' (this will throw an Error in a future version of PHP) in ..../archive/index.php (Zeile 456)
TakeOff, das X-Plane Starttool für Linux [Archiv] - X-Plane Schweiz

PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TakeOff, das X-Plane Starttool für Linux



sirarokh
02.09.2007, 16:45
So, jetzt habe ich eine Version des Tools fertig gebracht, die mich zufrieden stellt.

englische Version (http://www.meinstudi.de/basti/zeugs/linux/TakeOff)
deutsche Version (http://www.meinstudi.de/basti/zeugs/linux/TakeOff_de)

Das Tool einfach ins X-Plane-Hauptverzeichnis kopieren und von der Konsole aus starten.
Es gibt noch irgendein Problem, weswegen ich es noch nicht ohne Startscript vom Desktop aus starten kann, aber das muss bei euch nicht so sein.

Hermann
02.09.2007, 16:58
Nicht doch :P Wer lesen kann, :'( ist klar im Vorteil

sirarokh
02.09.2007, 17:00
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.

sirarokh
02.09.2007, 17:17
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.