LUA Script und FSUIPC

  • Hallo Christian,

    danke für die Infos. Ja ich habe schon seit vielen Jahren mein Cockpit in Verwendung. Früher Wilco, später Jeehell.

    Da gab (gibt) es jeweils entsprechende Treiber, die die Ein- und Ausgaben ermöglicht haben.

    Jetzt interessiert mit der AS Airbus. Ja ich kenne (habe) Linda und fsuipc, allerdings ist ja beides "nur" für Eingaben geeignet. Meine größte Hürde sehe ich bei den Ausgaben.

    Da Linda auch bei mir früher Probleme machte, würde ich lieber die LVars jeweils direkt über fsuipc machen!


    Übrigens, Mobiflight ist ist tolle Freeware, unterstützt verschiedene Hardware, deckt Ein- und Ausgaben (leider keine Lvars sondern Offsets) ab und hat obendrein einen Support im Forum, den man sich bei den meisten Paywareseiten wünschen würde. Kann man nur empfehlen!

    Ich suche und probiere jedenfalls weiter:)!

    Gruß

    Günter

  • Das tut mir leid da keine große Hilfe anbieten zu können. Die LVAR Programmierung scheint doch recht komplex zu sein, hatte damals nichts Einschlägiges in den deutschsprachigen Foren gefunden. Fündig wurde ich dann erst im AVSIM Forum. Dort ist ein gewisser ark (Al Klayton) unterwegs, und der kennt sich offenbar sehr gut mit LVAR Programmierung aus. Wir hatten uns zuletzt rege per E-Mail augetauscht. Vielleicht hilft dir der AVSIM Beitrag möglicherweise etwas weiter oder du kannst sogar an den Beitrag anknüpfen und kommst dann so deinem Ziel näher: FSUIPC and LUA Script

    Lieben Gruß

    Christian


    Flugsimulator: MSFS Motherboard: ASRock B560 CPU: i7-11700K GPU: Asus RTX 4080 TUF RAM: 64 GB Kingston Fury DDR4 @3200Mhz SSD: Samsung 980 1TB & Samsung 980 Pro 1TB
    Bahrometrix

    Für eine anspruchsvolle Flugsimulation

    www.bahrometrix.de

  • Servus. Wenn bisher richtig mitgelesen habe, ist Dein Problem, dass Du die Lvar in ein Offset schreiben willst, weil Mobiflight keine Lvars kann, korrekt?


    Du kannst mit der Funktion

    Code
    event.Lvar("lvarname", interval, "function-name")

    die Werte aus einer LVar in ein Offset schreiben.

    Dazu würdest Du "lvarname" durch Deine Lvar ersetzen (z.B. "L:Engine1"), den Poll intervall z.B. 1000 angeben und "function-name" z.B. durch "enginesCheck" ersetzen.


    Dann brauchst Du noch eine function, die den Wert in das Offset schreibt. Die könnte so aussehen:

    Code
    function enginesCheck(varname, value)
        ipc.writeUB(0x1234, value)
    end

    Und schon würde bei jeder Änderung der Lvar der Wert der Lvar in das Offset 1234 geschrieben werden. Nicht schön, aber aus meiner Sicht, die einzige Lösung. ;-)

    Viele Grüße,

    Peter


    : : : aviation.pero-online.de

    Developer of SIMstarter NG & Homecockpit Builder

    Einmal editiert, zuletzt von Capt. PERO ()

  • Hallo nochmals,

    vorerst riesigen Dank an Christian: der Tip eine Makroliste zu schreiben und die darin enthaltenen Makros von fsuipc (oder von Mobiflight wie in meinem Fall) auslesen zu lassen ist genial. Mit den Setzen der richtigen Parameter habe ich jetzt schon zig Tasten, Schalter etc. einfach und rasch konfiguriert. Hatte ich vorher noch nirgends gelesen, tolle Sache!!!


    Bei den "Outputs" bringe ich leider noch nichts zum Laufen:

    Am Beispiel des APU Master Switch. Die Variable heißt "AB_OVH_APU_MASTER". Die LvarListe bezeichnet diese als "read/write" und "1 = on, 0 = off".

    Wenn ich die Taste drücke müsste also der Wert "1" gegeben sein. Allerdings

    gibt es 2 Zustände die mit einer LED angezeigt werden sollen: "FAULT" und "ON".

    Jetzt frage ich mich wie ich einen solchen Zustand in das Offset 66C5 schreiben kann?

    Oder fehlen mir da überhaupt noch irgendwelche Parameter?

    Danke schon einmal und Gruß

    Günter

  • Toll, das freut mich!


    In der Zwischenzeit hatte ich die MACROS um einige Funktionen erweitert, so auch die APU Steuerung. Die entsprechenden Funktionen sind als "TOGGLE" belegt worden:


    Code
    [Macros]
    1=L:AB_PDS_Eng1Master=Set
    2=L:AB_PDS_Eng2Master=Set
    3=L:AB_PDS_ignition=Set
    4=L:AB_AP_AP1=Set
    5=L:AB_AP_ATHR=Toggle
    6=L:AB_VC_OVH_ExtLight_NavLogo_Sw=Set
    7=L:AB_OVH_APU_MASTER=Toggle
    8=L:AB_OVH_APU_Start=Toggle
    9=L:AB_OVH_PNEUBLEEDAPU=Toggle


    Im Button-Menu von FSUIPC sieht das bei mir so aus:


    p3dv4_fsuipc_macro_airbus_1.jpg

    APU Master



    p3dv4_fsuipc_macro_airbus_2.jpg

    APU Start



    Hier die MACROS als Zip-File: 320AAX.zip

    Hoffe es hilft etwas weiter :)

    Lieben Gruß

    Christian


    Flugsimulator: MSFS Motherboard: ASRock B560 CPU: i7-11700K GPU: Asus RTX 4080 TUF RAM: 64 GB Kingston Fury DDR4 @3200Mhz SSD: Samsung 980 1TB & Samsung 980 Pro 1TB
    Bahrometrix

    Für eine anspruchsvolle Flugsimulation

    www.bahrometrix.de

  • In der Zwischenzeit habe ich noch ein bißchen nachgelesen und die beiden Parameter müßten


    AB_OVH_APU_MASTER_LIGHT_FAULT

    AB_OVH_APU_MASTER_LIGHT_ON


    heißen.

    Der Zustand dieser beiden müßte in das Offset geschrieben werden!

    Gruß

    Günter

  • ......Fündig wurde ich dann erst im AVSIM Forum. Dort ist ein gewisser ark (Al Klayton) unterwegs, und der kennt sich offenbar sehr gut mit LVAR Programmierung aus.....

    Stimmt, Al hat mir tatsächlich die Lösung für meine Frage gezeigt, mit der ich nun meine LED's steuern kann. Also nochmals danke für den Link und ein Gutes Neues 2019

    Gruß

    Günter

  • Hier, für alle die auch vor dieser Herausforderung stehen, meine Lösung:

    1. Ich erstelle im FSUIPC6-Hauptordner eine Textdatei und erfasse diese mit der Endung .lua (z.B. A320.lua)
    2. Darin gebe ich, für die Kontrolllampe der FuelPump L1, diese Funktion und diesen Event ein

      function FUELPUMP_L1 (offs, val)
      ipc.writeUB(0x66C0, val)
      end

      event.Lvar("L:AB_OVH_FUELPUMP_L1_LIGHT_OFF",250, "FUELPUMP_L1")
    3. Um diese lua-Datei beim starten des Flugsimulator zu starten gebe ich in der Datei ipcReady.lua (zu finden auch im FSUIPC-Hauptordner) die Zeile:

      ipc.runlua('A320')

      ein.
    4. Im MobiFlight Connector (8.0.1) kann ich jetzt auf dem Startregister unter Output einen neuen Eintrag erfassen und über "Edit" unter FSUIPC - Basis Einstellungen den Offset = 0x66C0, Wert Typ = INT, Grösse in Bytes = 1, Maskiere Wert mit = 0xFF der rest bleibt so, eingeben.
      Unter "Display" wähle ich den richtigen Ausgang des Arduino MEGA an (siehe Tutorial auf https://www.mobiflight.com/en/…ls/led-parking-brake.html )

    Wahrscheinlich lässt sich, durch genug Wissen, die Programmierung optimieren. Für mich funktioniert dieser Weg aber gut:luxhello:

    Herzliche Grüsse aus der Schweiz

    Stephan