C152: Dome light Steuerbefehl auf X-Touch Mini mittels AAO legen

  • Guten Morgen, Flusi-Gemeinde!


    Ich benötige mal wieder eure Hilfe. Ich fliege zur Zeit die Standard c152. Es gibt dort den Lichtschalter Dome Lt und daneben, hinter dem Steuerhorn verborgen, einen Drehregler, mit dem die Helligkeit eingestellt werden kann. Beides kann ich zur Zeit nur mit der Maus einstellen. Ich möchte aber gerne dazu das xtouch mini von Behringer mittels AAO verwenden, finde aber nicht die entsprechenden Befehle. Hat jemand eine Lösung und kann mir ggf. helfen. Das wäre dann auch für mich ein praktischer Einstieg mit xtouch und AAO.


    Viele Grüße

    Hans-Dieter

    Viele Grüße

    Hans-Dieter


    Meine Hardware zum Fliegen:

    Thrustmaster T.16000 Flight Contral System Flight Pack, XTouch Mini, Stream Deck XL

  • Hallo Hans-Dieter,


    da es maßgeblich um die AAO-Befehle geht, hab ich das mal hier her verschoben. Ich steig mal ein und sehe mir das an.

    Herzliche Grüße :)

    Oliver

  • Hallo Hans Dieter,


    hier nochmal, wie ich da herangegangen bin:


    Developer Modus aktiveren, Behaviors Window auswählen, Cessna152_Interior.xml auswählen, Input Events anklicken (hab ich vergessen zu markieren), Quick Reload, danach den Haken bei Minimize data on Load rausnehmen und auf "Reload user container"



    Jetzt unten in den angezeigten "Presets" schnüffeln, ob man was passendes findet. Lighting_Glareshield_1 klingt gut und Lighting_Cabin_1 auch. Auf Start Tracking clicken, mit der Maus den Schalter umlegen bzw. den Helligkeitsregler drehen und die beiden Anzeigen beobachten. Wenn sie sich ändern haben wir getroffen...



    Jetzt auf "Add to Control Panel", dann aufklappen, Code und Set anwählen, Clean Code - und jetzt im angzeigten Code schnüffeln.

    Wer den Code nicht lesen kann findet auf jeden Fall schonmal ein Hinweis auf die verwendeten Variablen...


    Und hier noch die Scripte... :)


    C152_DomeAndGlareshield.zip


    Aufzurufen mit

    1 (>K:C152-LIGHT_Dome_TOGGLE)

    bzw.

    10 (>K:C152-LIGHT_GlareshieldBrightness_CHANGE) und -10 (>K:C152-LIGHT_GlareshieldBrightness_CHANGE)



    Gruß,

    Thomas

  • Ich war grad stolz, das K:2:GLARESHIELD_LIGHTS_SET ebenso gefunden zu haben, da hat Thomas schon das komplette Paket inkl. Dateien und Befehlen fertig. Da kann ich nicht mithalten. Aber Top!

    Herzliche Grüße :)

    Oliver

  • Sorry, hatte Vorsprung - ich hatte schon angefangen mit den Screenshots und nicht gesehen, dass Du geschrieben hattest, dass Du Dich ran machen willst...



    Gruß,

    Thomas

  • Alles gut .... ich hab nicht weiter gemacht, aber deinen Code studiert. So ganz klar ist mir das nicht. was macht denn das d und das r in diesem Fall?

    Herzliche Grüße :)

    Oliver

  • Vielen, vielen Dank für eure großartige Hilfe. Nach dem Mittagsschlaf werd ich mich da mal austoben. Ich melde mich wieder.


    Viele Grüße

    Hans-Dieter

    Viele Grüße

    Hans-Dieter


    Meine Hardware zum Fliegen:

    Thrustmaster T.16000 Flight Contral System Flight Pack, XTouch Mini, Stream Deck XL

  • Wie so bei einigen Dimmern musst Du auch bei diesem hier das Licht explizit einschalten, wenn die Helligkeit größer 0 ist:

    Ausschalten: 1 0 (>K:2:GLARESHIELD_LIGHTS_SET)
    Einschalten: 1 1 (>K:2:GLARESHIELD_LIGHTS_SET)


    Außerdem musst du in 2 Variablen die Helligkeit setzen (ich hab das jetzt nicht getestet, ich hab einfach den Code aus dem Behaviors Window übernommen):

    "Helligkeit" (>L:LIGHTING_GLARESHIELD_1)

    "Helligkeit" 5 (>K:2:LIGHT_POTENTIOMETER_SET)


    Die Helligkeit kommt über die Script-Variable. Ich hätte das also wie folgt schreiben können:



    (L:C152-LIGHT_GlareshieldBrightness_SET) 0 max 100 min 0 > if{ 1 1 (>K:2:GLARESHIELD_LIGHTS_SET) } els{ 1 0 (>K:2:GLARESHIELD_LIGHTS_SET) }

    (L:C152-LIGHT_GlareshieldBrightness_SET) 0 max 100 min (>L:LIGHTING_GLARESHIELD_1)

    (L:C152-LIGHT_GlareshieldBrightness_SET) 0 max 100 min (>K:2:LIGHT_POTENTIOMETER_SET)


    Statt dessen hab ich mich entschlossen diese "Helligkeit" einfach mit "d" zu verdoppeln und damit habe ich den Wert dann auch in der nächsten Zeile


    (L:C152-LIGHT_GlareshieldBrightness_SET) 0 max 100 min

    d 0 > if{ 1 1 (>K:2:GLARESHIELD_LIGHTS_SET) } els{ 1 0 (>K:2:GLARESHIELD_LIGHTS_SET) }

    d (>L:LIGHTING_GLARESHIELD_1)

    5 (>K:2:LIGHT_POTENTIOMETER_SET)


    In der letzten brauch ich den nicht mehr verdoppeln denn danach brauch ich den ja nicht mehr.


    Der If ist so einer der Art "if 1 then 1 else 0" - sowas kürze ich gerne ab. Also statt

    (L:C152-LIGHT_GlareshieldBrightness_SET) 0 > if{ 1 } els{ 0 }

    einfach nur

    (L:C152-LIGHT_GlareshieldBrightness_SET) 0 >


    Falls wahr, wird daraus 1, falls falsch wird daraus 0. Das if/els kann ich mir also sparen. Dummerweise muss allerdings VOR diese 0/1 die Glareshield-Nummer - in dem Fall die 1.

    Vor der 0/1 habe ich aber (über das d) die (L:C152-LIGHT_GlareshieldBrightness_SET) - und brauche die auch noch in der nächsten Zeile.

    Also hab ich die 1 einfach hinter die 0/1 geschrieben ("... 0 > 1" - das heißt nicht 0 größer 1 sondern ... größer 0 und anschließend folgt dann die 1) und dann einfach die 0/1 aus dem Vergleich mit der 1 getauscht. Also die letzten beiden Einträge auf dem Stack getausch. Genau das macht r. Damit steht die 1 vor der 0/1 und ich kann dann das Glareshield-Event aufrufen...



    Gruß,

    Thomas


    PS: Da seh ich grad - das (>L:LIGHTING_GLARESHIELD_1) hätte ich mir auch sparen können... wer kommt drauf warum?


  • Ob ich es setze oder vergrößere/verkleinere dürfte egal sein, oder?

    Herzliche Grüße :)

    Oliver

  • Ich verstehe grad die Frage nicht...

    Du meinst ob du das SET oder CHANGE script aufrufst?


    SET bietet sich an, wenn Du das an eine Achse hängst, die einen absoluten Wert sendet (Du kannst ja auch einen X-Touch Rotary als Achse deklarieren - allerdings nicht im MC Mode) oder wenn Du mehrere Dimmer hast, die Du parallel steuern möchtest (Helligkeit errechnen und dann den selben Wert an alle Dimmer mit SET senden).


    Steuerst Du nur den einen Dimmer und hast dafür einen Taster (nichts anderes ist der Rotary, wenn Du ihn als Button einbindest), dann musst du bei jedem Tasten hoch/oder runter verändern.


    Also CHANGE vergrößert/verkleinert die Helligkeit um den angegeben Wert, SET setzt die Helligkeit genau auf diesen Wert. Kommt halt auf deinen Use-Case an, welcher Dir besser passt...



    Gruß,

    Thomas

  • So hab ich das auch verstanden - ich brauche ja nur eins davon. Das sollte die Antwort auf deine Frage gewesen sein (weshalb man sich das sparen kann).

    Herzliche Grüße :)

    Oliver

  • Mit "sparen kann" meinte ich das Assignment an die Variable (>L:LIGHTING_GLARESHIELD_1) - nur diese Zeile hätte man sich sparen können. Antwort im Spoiler oben...


    Gruß,

    Thomas

  • Ach OK - das mit dem Spoiler hatte ich gar nicht gesehen - ich dachte, du beziehst das auf das Script.

    Herzliche Grüße :)

    Oliver

  • Guten Morgen!

    Danke noch einmal für eure Hilfe und für die Überlassung des Scripts. Ich habe mal die Hinweise von Thomas durchgearbeitet, was ich sehr interessant fand. Aber ich muss gestehen, dass Ganze inhaltlich zu durchdringen, überfordert mich im Augenblick noch sehr. Nichts desto trotz möchte aber nicht aufgeben. ;)


    Also, das Einbinden des Scriptes hat funktioniert. Ebenso das Zuweisen auf den ganz linken Knob des XTouch mini. Leider funktionierrt das Dimmen noch nicht richtig: es erfolgt nicht peu á peu, sondern es ist schlagartig ganz hell oder ganz dunkel. Vielleicht kann man daran noch etwas verändern?


    Auf jeden Fall ist dieses Thema hochinteressant, aber, wie gesagt, nicht ganz einfach.


    Viele Grüße

    Hans-Dieter

    Viele Grüße

    Hans-Dieter


    Meine Hardware zum Fliegen:

    Thrustmaster T.16000 Flight Contral System Flight Pack, XTouch Mini, Stream Deck XL

  • Hallo Hans-Dieter,

    lade doch mal bitte einen Screenshot vom AAO assignment von diesem Drehregler hoch.

    Du machst das ja direkt in AAO, oder benutzt du die X-Touch Gauge von mir?


    Gruß,

    Thomas

  • Ich hoffe, dass ich dich richtig verstanden habe und sende dir drei Bilder.

  • Was mir auffällt ist, dass du die Dimmer als Axis Assignments gemacht hast. Ich mache die Scripte immer als normales Button Assignment und drehe zur Zuweisung den entsprechenden Rotary.

    Grüße von EDKF

    Markus

  • Hallo Hans-Dieter,


    ja, genau das wollte ich sehen - und genau hier liegt auch der Hase im Pfeffer... Aber alles ganz einfach lösbar!


    • Der Dome Light Toggle sieht für mich alles korrekt aus. Oder funktioniert da etwas nicht?
    • Du hast den Drehregler als Achse genutzt. Das kann man tun. Aber: Nicht 2 Scripte (nämlich einmal _CHANGE und einmal _SET) an die selbe Achse binden. Das kann nicht gut sein! 
    • Die Beleuchtung geht von 0 bis 100%. Die Achse liefert Werte von -16384 (das wird im Script zu 0) und +16384 (das wird im Script zu 16384% - und dann auf 100% gedeckelt). D.h. beim Drehen bleibt auf dem halben Weg das Licht dunkel - denn von -16384 bis 0 wird das Script aus dem ganzen immer 0 machen. Die nächste Raste erhöht dann um 32768 / 128 (-16384 .. 16384 sind 32768, der Drehregler hat als Achse 128 Stellungen), also um 256. Du erhöhst also mit 1 Raste von 0 auf über 100% (was vom Script als 100% gewertet wird)! Deshalb schaltet der Regler ab der Mittelstellung sofort von 0 auf 100%!
      Lösung: dem _SET Assignment bei Axis-Min 0 und bei Axis-Max 100 eintragen!
    • _CHANGE ist gedacht als "mach die Beleuchtung x % heller oder dunkler". Dadurch, dass Du das an die selbe Achse gebunden hast, rufst Du das Script also auf mit "Mach das Licht um -16384% heller (also um 16384% dunkler)". Naja - das wird sofort auf 0 gehen (kleiner geht nicht). Genau in der Mitte der "Achse" sendet der Drehregler 0. Und einen Tick weiter sendest Du dann "mach das Licht um 256% heller". Natürlich auch viel zu viel! Das ganze gepaart mit dem _SET Assignment sorgt für einiges an Chaos... Also, das _CHANGE macht an einer Achse überhaupt keinen Sinn!
    • Wenn Du _CHANGE nutzen möchtest, dann als "Assigned Button". Wenn Du auf der Button Seite ein Assignment machst und den Drehregler DREHST, dann erkennt das AAO auch und verhält sich so, als würdest Du bei jedem Tick einmal kurz einen Taster drücken für Heller bzw. Dunkler. Und genau dafür ist das _CHANGE Script gemacht - bei jedem Aufruf etwas heller bzw. dunkler machen. Und wie nutzt man das jetzt? Du machst ein Assignment für rechtsrum drehen ("heller") und ein Assignment für linksrum drehen ("dunkler"). Und die grün markierte Zahl gibt an, um wieviel Prozentpunkte sich die Beleuchtung ändern soll. Negative Werte machen es also dunkler, positive Werte heller. Je größer die Zahl, desto gröber die Sprünge. Du kannst es Dir damit also so einstellen, wie es Dir angenehm ist :)
      Das Licht als "Button" zu dimmen hat den Vorteil, dass Du den Drehregler nicht mehr auf 0 zurückdrehen musst. Das ist wie beim Throttle - wenn Du den nicht auf idle zurückschiebst, dann ist er beim nächsten Flug eben nicht in idle sondern woanders. Beim Throttle sehe ich das noch als vertretbar an. Bei einem Drehregler hätte ich da auch kein Problem mit. Bei vielen Drehreglern aber schon eher. Und wenn der selbe Regler in einem anderen Flugzeug eine ganz andere Funktion hat, dann wird es meiner Meinung nach nervig, da ständig wieder auf 0 drehen zu müssen (die 0 ist bei einer anderen Funktion ja z.B. in der Mitte, nicht am linken Anschlag). Aber...das ist Geschmackssache - im echten Flieger dreht Dir ja auch niemand sonst den Regler zurück auf 0 :)

    Probier' einmal den Button als Achse aus und probier ihn einmal als Button aus - aber immer nur EINES der beiden für das selbe Licht... Und dann behalte das, was Dir angenehmer ist :)


    Gruß,

    Thomas

  • Guten Abend Thomas,

    Super! Ich danke dir, dass du mir das alles so genau erklärt. Ich probier es es Morgen einmal aus und melde mich wieder. Bis dahin eine geruhsame Nacht.

    Viele Grüße

    Hans-Dieter


    Meine Hardware zum Fliegen:

    Thrustmaster T.16000 Flight Contral System Flight Pack, XTouch Mini, Stream Deck XL

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!