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

Jump to content

Archived

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

thorsten10

Fly with LUA Captain/FO Master Warning

Recommended Posts

Moin moin,

ich besitze ein Airbus Homecockpit und steige gerade vom P3D auf XPLANE 11 um. Ich habe mich schon etwas mit den Datarefs etc. beschäftigt. Das ist aber für einen alten FSX-Hasen alles Neuland.

Ich möchte, dass die beiden Master-Warning Buttons, die sich auf der Captain-Seite und der FO-Seite befinden, jeweils autonom gesteuert werden. Das soll heißen, dass der Captain oder der FO sie jeweils auf der entsprechenden Cockpitseite betätigen können.

Deshalb habe ich die Buttons wie folgt in der initial_assignments.lua Datei konfiguriert.

create_switch( (12*40) + 6, "sim/custom/xap/indicators/mastwarn" )
create_switch( (12*40) + 1, "sim/custom/xap/indicators/mastwarn" )

 

Aber es tut sich nichts, wenn ich einen der Buttons betätige. Nehme ich einen der beiden Einträge aus der initial_assignments.lua heraus, funktioniert alles. Ich hoffe, Ihr versteht, was ich meine.... Hat jemand einen Tip?

 

Und noch eine Frage....  beteht die Möglichkeit VRI-Hardware über LUA in XPLANE zu nutzen.... Mit der VRI-Software sind die Möglichkeiten ja stark eingeschränkt und Linda ist ja nur für FSX/P3D.

 

VG, Thorsten

Share this post


Link to post
Share on other sites

Hallo Thorsten,

 

die beiden create_switch()  geben widersprüchliche Zuweisungen zu einer Zeit weiter. Ich habe mich selber erst an diesem WE an Fly with Lua heran gewagt, so kann meine Behauptung auch sehr gewagt sein.

Du könntest es mit create_positive_edge_trigger() und/oder create_negative_edge_trigger() probieren. Laut Handbuch geben diese beiden nur im Moment des Drückens, bzw. Loslassens des Buttons einen "Impuls" an das Dataref weiter.

create_switch() ist im Gegensatz zu obigen zwei ein Dauerfeuer für jeweils pushed und released.

So lese ich das zumindest aus der Doku heraus.

 

Ahoj

-Uwe

 

 

 

 

Share this post


Link to post
Share on other sites

Ja, das stimmt so. Ein Switch, also ein Schalter, feuert permanent in jedem Frame gemäß seinem aktuellen Zustand. Mit einem Trigger könnte man das umgehen, aber warum nicht einfach dem Knopf ein Kommando zuordnen?

 

Spoiler

set_button_assignment(12*40+1, "sim/annunciator/clear_master_warning")

set_button_assignment(12*40+6, "sim/annunciator/clear_master_warning")

 

Ein DataRef "indicator" wäre normalerweise auch nur lesend nutzbar, da der Zustand eines Anzeigers nicht direkt geändert werden sollte. Der Flieger könnte die Änderung nicht mitbekommen und fehlerhaft reagieren.

Share this post


Link to post
Share on other sites

Danke Euch beiden, ihr habt mir das verständlich gemacht. Allerdings bin ich noch blutiger Anfänger und muss mich erstmal mit dem Zuweisen von commands näher beschäftigen, bzw. die Trigger-Variante verstehen. Könnte ich ein Beispiel von Euch bekommen? Anhand eines eigenen Beispiels werde ich das sicher besser verstehen und hinbekommen. VG, Thorsten

Share this post


Link to post
Share on other sites

Hallo Thorsten,

 

als trigger wäre es bestimmt dieser Code (ich bin selber noch am einlesen in diese Materie)

 

(die Annahme das mastwarn beschreibbar und ein int/bool ist) 

 

create_postive_edge_trigger(( (12*40) + 6, "sim/custom/xap/indicators/mastwarn" ,  0,  1)
create_negative_edge_trigger(( (12*40) + 6, "sim/custom/xap/indicators/mastwarn" ,  0,  0)
create_postive_edge_trigger(( (12*40) +1, "sim/custom/xap/indicators/mastwarn" ,  0,  1)
create_negative_edge_trigger(( (12*40) + 1, "sim/custom/xap/indicators/mastwarn" ,  0,  0)
 

als command in etwa so

 

local pMasterWarn = XPLMFindDataRef("sim/custom/xap/indicators/mastwarn")
 
create_command( "FlyWithLua/MasterWarn/Clear Captain",
    "Clear Master Warning CPT",
    "XPLMSetDatai(pMasterWarn, 1)",
   "XPLMSetDatai(pMasterWarn, 1)",
   "XPLMSetDatai(pMasterWarn, 0)"
 )
 
create_command( "FlyWithLua/MasterWarn/Clear FO",
   "Clear Master Warning FO",
   "XPLMSetDatai(pMasterWarn, 1)",
  "XPLMSetDatai(pMasterWarn, 1)",
   "XPLMSetDatai(pMasterWarn, 0)"
 )
 
aber die eleganteste Möglichkeit kommt von X-Friese (unter dem Osterei versteckt) :)
und seine Warnung beachten
 
Ahoj
-Uwe
 
 

 

Share this post


Link to post
Share on other sites

Danke, aber wenn ich es so mache, wie X-Friese es geschrieben hate, also

set_button_assignment(12*40+1, "sim/annunciator/clear_master_warning")

set_button_assignment(12*40+6, "sim/annunciator/clear_master_warning")

bekomme ich immer LUA STOPPED....

Share this post


Link to post
Share on other sites

hier muss ich passen. Unter XP 10.51 stürzt mir LUA mit diesen beiden Anweisungen nicht ab.

BTW. ich habe einen kleine copy/paste typo in meinem letzten trigger Beispiel eingebaut.

Es gibt ein Klammer "(" zu viel . Mittlerweise weiß ich, das hier der Button # angegeben wird.

Daher kann man die Klammern für diese  Berechnung auch weg lassen.

 

Ich hoffe X-Friese kann hier einspringen ....

 

Ahoj

-Uwe

 

 

 

Share this post


Link to post
Share on other sites

Für eine Beurteilung benötige ich mindestens die Log.txt und die FlyWithLua_Debug.txt aus dem Hauptverzeichnis von X-Plane. Und das betroffene Script wäre auch sinnvoll. Sonst kann ich nur raten. Meine Glaskugel sagt, im Script ist Syntaxfehler. Aber das sagt sie immer wenn keine Informationen vorliegen. 

Share this post


Link to post
Share on other sites

Ich habe XP11 und fliege den JAR A330. Deshalb habe ich mir die beiden Datarefs für Master Caution und Master Warning mittels DataRefEditor ausgelesen. Ich habe sie so in die initial_assignments.lua geschrieben:

set_button_assignment( (12*40) +1, "sim/custom/xap/indicators/mastcaut" )
set_button_assignment( (12*40) +6, "sim/custom/xap/indicators/mastwarn" )

Mit set_button_assignment bekomme ich LUA STOPPED angezeigt. Mit create_switch.... funktioniert es.

Mache ich es so, wie X-Friese es im Osterei versteckt hat, dann bekomme ich zwar kein LUA STOPPED, aber es funktioniert nicht, weil es ja nicht die Datarefs sind, die der A330 erkennt.

 

Ich würde gerne mit dem DataRefTool arbeiten, weiß aber nicht, wie ich es installiert bekome. Die englischen Anleitungen bringen mich nicht weiter. Habt Ihr da einen Tipp für mich?

 

 

Log.txt

FlyWithLua_Debug.txt

Share this post


Link to post
Share on other sites

Hallo Thorsten,

 

was bin ich froh, hier nicht der einzige Neue zu sein (Ich komme auch aus  der FSX Ecke und beschäftige mich seit ein paar Wochen mehr mit XP) 

 

Für das DataRefTool brauchst Du das "MS Visual Studio 2015 Redistributable"  (Das ist die Laufzeitbibliothek für MS C/C++ Programme)

Du kannst unter Systemsteuerung/Programme nachschauen, ob die bereits auf Deinem Rechner installiert ist.

Microsoft Visual C++ 2015 ... (x64) ...

 

Falls nicht installiert, dann gehe zu

https://www.microsoft.com/de-DE/download/details.aspx?id=48145

 

Du kannst hier beide (32/64bit) installieren. Die 64bit ist allerdings Pflicht.

 

Danach hier vorbeischauen

https://github.com/leecbaker/datareftool/releases

 

die neueste Version "DatarefTool_2016,zip zeihen.

 

Das Teil entpacken

 

Unter X-Plane\Resources\Plugins

Erstelle diese Ordner

DataRefTool mit den Unterordnern 32 und 64

 

In DataRefTool kopiere aus dem zip die mac.xpl

 In das 64 kommen die beiden lin.xpl und win.xpl

Das 32 bleibt leer

 

XP starten und im Menüpunkt Plugin sollte DataRefTool aufgeführt werden.

 

Bitte denke immer daran, Du nutzt X-Plane 11 in einer Beta Version. Diese Plugin mag laufen, oder auch nicht.

Eventuell liegen Deine Probleme mit Fly With Lua zum Teil auch daran

 

Tue Dir einen gefallen und füge  Dein Script zu den Logs.

 

Ahoj

-Uwe

 

 

 

 

               

 

 

Share this post


Link to post
Share on other sites

Hier steckt die Erklärung:

 

FlyWithLua Info: Start loading script file Resources/plugins/FlyWithLua/Scripts/initial_assignments.lua
FlyWithLua Error: The Command "sim/custom/xap/indicators/mastcaut" does not exist.
FlyWithLua Error: The Command "sim/custom/xap/indicators/mastwarn" does not exist.
FlyWithLua Info: Finished loading script file Resources/plugins/FlyWithLua/Scripts/initial_assignments.lua
FlyWithLua Error: The error seems to be inside of script file Resources/plugins/FlyWithLua/Scripts/initial_assignments.lua

 

Mit set_button_assignment() kann man ein Kommando zuweisen, wer stattdessen ein DataRef auf einen Joystick Knopf legen möchte erhält eine Fehlermeldung.

Share this post


Link to post
Share on other sites

×
×
  • Create New...