Aerosoft official retail partner for Microsoft Flight Simulator !! 
Click here for more information

Jump to content
Pfälzer

FlywithLua

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().

 

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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

Share this post


Link to post
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?

 

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Der Entwickler von FlyWithLua empfiehlt  dataref_table.

 

Warum?  Siehe dazu: 

 

 

 

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

 

 

Share this post


Link to post
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.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...