Jump to content

Schalter in Carenado Fliegern


Othello

Recommended Posts

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

Archived

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

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy & Terms of Use