Othello 549 Posted July 30, 2017 Share Posted July 30, 2017 Ich habe bisher nur mir der B200 von Carenado Erfahrung, ich vermute aber, dass meine Erkenntnisse auch auf andere Flugzeuge des Herstellers zutreffen. Ich möchte nach Möglichkeit die Maus aus dem Cockpit verbannen, deshalb versuche ich möglichst viele Funktionen von Schaltern, Drehknöpfen etc. auf Tasten oder Schalter zu legen. Dabei hatte ich das Problem, dass es nicht immer mit der Verknüpfung von Tasten zu X-Plane Funktionen getan war. (Beispiel: local main_battery_on = dataref_table("sim/cockpit2/electrical/battery_on") Die virtuellen Schalter der B200 sind alle animiert und haben manchmal auch Abhängigkeiten von anderen Schaltelementen. Dies ist z.B. der Fall bei den Schaltern für die Batterie und den beiden Generatoren. Über allen drei Schaltern liegt als Notausschalter eine kleine Klappe, die beim Schalten einer der drei Schalter angehoben wird. Wird bei programmierter Bedienung die Klappe nicht zuerst angehoben, lässt sich so z.B. der Batterieschalter (siehe oben) nicht einschalten. Meine Lösung Die B200 bietet eine Unzahl von Buttons als Dataref an (... com/dkmp/BT3[4] ... com/dkmp/BT3[57] ... com/dkmp/BT5[99] ... ) Jede dieser Variablen kann (in der Regel) Werte zwischen 0.000 und 2.000 annehmen. 0 bedeutet ausgeschaltet, 2 bedeutet eingeschaltet. Ein 3-Stufen Schalter hat die Werte 0, 2 und 4 (z.B. der Schalter für Inverter1, Inverter2, Inverter aus). Die Zwischenwerte sind für das Schalten per Script uninteressant. Wenn eine Variable den Wert 0 oder 2 hat, und man diesen Wert mittels DatarefEditor mit 2 oder 0 überschreibt, lässt sich sehen, wie die Variable vom vorhandenen Wert auf den angeforderten Wert in vielen kleinen Schritten verändert wird. Wenn man diese BT-Variablen für die Schalter verwendet, statt der X-Plane Dataref, funktioniert das schriptgesteuerte Schalten in der B200 bestens, und auch der Klicksound beim Schalten ertönt! Leider muss man mit Hilfe des Dataref Editors die Nummer der BT Werte ermitteln, die für den gewünschten Schalter zuständig sind. Einen Teil der Nummern habe ich schon ermittelt: local myelec = dataref_table("com/dkmp/elec") local ign_set = dataref_table("sim/cockpit/engine/igniters_on") local invert = dataref_table("com/dkmp/BT3[4]") local ign_arm_1 = dataref_table("com/dkmp/BT3[5]") local ign_arm_2 = dataref_table("com/dkmp/BT3[6]") local bat_on = dataref_table("com/dkmp/BT3[7]") local gen_on_1 = dataref_table("com/dkmp/BT3[8]") local gen_on_2 = dataref_table("com/dkmp/BT3[9]") local s1_set = dataref_table("com/dkmp/BT3[16]") -- starter 1 local s2_set = dataref_table("com/dkmp/BT3[17]") -- starter 2 local prop_sync = dataref_table("com/dkmp/BT3[21]") local land_L = dataref_table("com/dkmp/BT3[22]") -- Landescheinwerfer local land_R = dataref_table("com/dkmp/BT3[23]") local taxi_light = dataref_table("com/dkmp/BT3[24]") local ice_light = dataref_table("com/dkmp/BT3[25]") local nav_light = dataref_table("com/dkmp/BT3[26]") local recog_light = dataref_table("com/dkmp/BT3[27]") local beacon = dataref_table("com/dkmp/BT3[37]") local strobe = dataref_table("com/dkmp/BT3[38]") local tail_flood = dataref_table("com/dkmp/BT3[39]") local bleedL = dataref_table("com/dkmp/BT3[72]") -- Bleed Air local bleedR = dataref_table("com/dkmp/BT3[73]") Der Wert "com/dkmp/elec" steuert die oben erwähnte kleine Notaus-Klappe. Beispiel für das Schalten von Klappe, Batterie und Generatoren: ------------------------------------------------------------------------------------------------ function batteries_toggle() if bat_on[0] == 0 then myelec[0] = 1 bat_on[0] = 2 else bat_on[0] = 0 end end function generator_1_on_off(newmode) if (newmode == 1) then -- turn on if (gen_on_1[0] == 0) then myelec[0] = 1 gen_on_1[0] = 2 end else -- turn off if (gen_on_1[0] == 2) then gen_on_1[0] = 0 end end end function generator_2_on_off(newmode) if (newmode == 1) then -- turn on if (gen_on_2[0] == 0) then myelec[0] = 1 gen_on_2[0] = 2 end else -- turn off if (gen_on_2[0] == 2) then gen_on_2[0] = 0 end end end - Batterie create_command( "GKWI/electrical/batteries_toggle", "toggle batteries on/off", "batteries_toggle()", "", "" ) -- Generator create_command( "GKWI/electrical/generator_1_on", "Generator #1 on", "generator_1_on_off(1)", "", "" ) create_command( "GKWI/electrical/generator_1_off", "Generator #1 off", "generator_1_on_off(0)", "", "" ) create_command( "GKWI/electrical/generator_2_on", "Generator #2 on", "generator_2_on_off(1)", "", "" ) create_command( "GKWI/electrical/generator_2_off", "Generator #2 off", "generator_2_on_off(0)", "", "" ) ---------------------------------------------------------------------- Ich hoffe, diese Beispiele sind nicht nur für die B200 hilfreich. Gruß Othello Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.