Jump to content

FlywithLua


Pfälzer

Recommended Posts

Als ich das Script entwickelte, habe ich nur den Betriebsstundenzähler (Hobbs time) gesichert.

 

Als dann der Bug erkannt wurde, der in der KingAir 350 ab und zu den Luftdruck falsch abspeicherte, sowie den Bug bedingt durch Rundungsfehler,
habe ich die Druckwerte und Höhenangabe ebenfalls weggeschrieben, aus Faulheit jedoch den Namen der Funktion nicht geändert.
 

In Lua werden aufrufbare Funktion durch das Schlüsselwort function definiert.

 

Es gibt vordefinierte Funktionen, wie z.B. floor(), und man kann Funktionen selbst definieren.

 

function say_something(the_text)   -- beginn der definition durch das Schlüsselwort function

    print(the_text)

end  -- ende Funktionsdefinition

 

Aufgerufen werden Funktionen durch ihren Namen, gefolgt von einem Klammerpaar, welche an die Funktion zu übergebende Parameter enthalten kann.
Gibt es keine Übergabeparameter, ist die leere Klammer trotzdem zu schreiben:

 

Bsp.:

math.floor(value)

say_something("Hello world")

save_hobbstime()

 

Ansonsten empfehle ich dir, das Manual von FlyWithLua zu lesen, und da FlyWithLua auf Lua basiert, auch die Manuals über die Lua Syntax und Bibliotheken.

 

https://usermanual.wiki/Document/FlyWithLuaManualen.2077559390/html

https://www.lua.org/pil/5.html

https://www.lua.org/docs.html

 

EDIT:

Für Erbsenzähler (wie mich):

Beim Programmieren unterscheidet man zwischen Prozeduren und Funktionen.
Funktionen sind Prozeduren, welche ein Ergebnis liefern, wie z.B. floor().

 

x = math.floor(144.3)

 

In Lua gibt es diese Unterscheidung nicht.
Funktionen müssen keinen Wert zurückbringen, sondern können wie Prozeduren behandelt werden,
wie z.B. die oben definierte Funktion say_something().

 

Link to comment
Share on other sites

Hallo FlyAgi,

danke für die Info, das habe ich auch so gemacht, alles von hobbsfile nach file geändert.

 

@Othello,

komme schon gut voran und lese diesbezüglich auch Manuals. Kenne einige Befehle, wie z. B. floor, aus meinem beruflichen Umfeld, das wird schon werden. Und wenn ich nicht mehr weiter weiß, gibt es hier ja nette Menschen, die mir mit Rat und Tat zur Seite stehen.

 

Deshalb noch mal danke, danke, danke.

 

Gruß, Coverdale

 

P.S.: Nur so zur Info: Da ich noch nicht online Fliege, bin ich schon seit längerem dran, mit dem Spracherkennungsprogram VoiceAttack zu fliegen. Das funktioniert sehr gut und ich erweitere immer mehr meine Aussprache mit dem benötigten Flugfunk. Um das in diesem Programm zu verarbeiten, fehlen mir halt immer noch Sprachbefehle, die das Programm erkennt. Ich wunder mich nur, das es scheinbar sehr wenig "Piloten" gibt, die das Programm verwenden.

Link to comment
Share on other sites

  • 2 weeks later...

Hallo Fluggemeinde,

ich habe so einige Sachen, die ich brauche, mit Lua hinbekommen. Nun habe ich noch folgendes Problem:

Ich habe z.B. hPa 1013 aus X-Plane ausgelesen und in das andere Programm eingefügt. Wenn ich nun den Wert ausspreche (für meine Sprachsteuerung), versteht das Programm mich nicht, weil ich nicht Eintausend und dreizehn sage, sondern alle Zahlen ja einzeln spreche (eins, null, eins, drei). Hierfür müßte ich den Wert mit Leerzeichen auslesen, also 1  0  1  3. Gibt es hierfür eine Möglichkeit in Lua?

 

Gruß, Coverdale

Link to comment
Share on other sites

Hallo Piloten,

ich habe mein letztes Problem selbst lösen können. Dabei ist mir folgendes aufgefallen:
 
DataRef ("Altimeter", "sim/weather/barometer_sealevel_inhg")
Transponder    = dataref_table ("sim/cockpit/radios/transponder_code", "writable")
 

Woran liegt es, das man manche DataRef´s als dataref_table auslesen kann und andere nicht?

 

Grüße, Coverdale

Link to comment
Share on other sites

Du kannst eigentlich alle Dataref als array (Table) auslesen.

Gibt es nur einen Wert innerhalb der Dataref, dann ist eben nur der Index 0 erlaubt,

also z.B. Transponder[0].

 

Oder

 

Altimeter = dataref_table("sim/weather/barometer_sealevel_inhg")

if (Altimeter[0] == .....

 

Gab es diesbezüglich einen Fehler?

 

Link to comment
Share on other sites

Hallo Othello,

 

nein, es gab keinen Fehler, ich hatte erst die Daten über dataref_table aufgerufen und hatte dann in einem anderen script festgestellt, das es auch anders geht (so wie in Zeile 1). Daraufhin habe ich versucht, die
Daten (nach Zeile 1) zu ändern und habe dann festgestellt, das es z.B. mit Transponder nicht funktioniert. Nun überlege ich, das ganze wieder rückgängig zu machen, da es meiner Meinung nach übersichtlicher ist, wenn alles gleich gehalten wird.

 

Deshalb war meine Frage, warum das so ist, bin ja schließlich noch am lernen, mit Lua zu programmieren.

Link to comment
Share on other sites

Hallo Othello,

vielen Dank für die Hilfe und den link, hatte ihn auch schon mal gelesen aber auch schon wieder vergessen. Also schreibe ich es wieder um nach dataref_table.

 

Gruß, Coverdale

Link to comment
Share on other sites

  • 2 weeks later...

Hallo Zusammen,

habe mal wieder eine Frage:

Kann man die benötigten Frequenzen für Delivery, Ground, Airport, usw. über Datarefs bzw. FlyWithLua in Dateien schreiben? Kann diesbezüglich keine Datafefs finden, wie wird das in X-Plane gehändelt?

Und geht das auch mit der Position am Airport?

 

Gruß, Coverdale

 

 

Link to comment
Share on other sites

Es gibt im Netz Beschreibungen zu den Datarefs, die solltest du dir einmal vronehmen.

Ich verwende (leider erst seit kurzem) das Dataref Tool anstelle des Dataref Editors.

Damit kann man sich geänderte Dataref anzeigen lassen.

Das ist eine große Hilfe beim Suchen nach unbekannten Datarefs.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy & Terms of Use