1 # Ercoupe nasal program
2 # relased under the GPL
4 # Called from ercoupe-set.xml.
5 # Ercoupes have mechanically coordinated ailerons and rudder. No rudder pedals.
7 #####################################
12 var my_last_time = 0.0;
14 props.globals.getNode("/sim/time/fast_timer",1).setDoubleValue(0.0);
17 var fast_timer= func {
18 var time = props.globals.getNode("/sim/time/fast_timer",1).getValue() + props.globals.getNode("sim/time/delta-sec",1).getValue();
19 props.globals.getNode("/sim/time/fast_timer",1).setDoubleValue(time);
20 settimer( fast_timer, 0);
23 setlistener("/sim/signals/electrical-initialized", func {
25 cockpit_mute = Volume.new(0);
26 fuel_system = Fuel.new(0);
29 settimer(update_ercoupe,1);
30 # gui.menuEnable("fuel-and-payload", "/sim/flight-model" == "jsb");
31 print("Ercoupe Started ... OK");
34 # Cockpit sound volume
37 var m = { parents : [Volume] };
39 m.volumeN = props.globals.getNode("sim/sound/cockpit-volume", 1);
40 m.muteN = props.globals.getNode("sim/sound/cockpit-mute", 1);
41 m.viewN = props.globals.getNode("sim/current-view/internal", 1);
42 m.windowN = props.globals.getNode("surface-positions/speedbrake-pos-norm", 1);
48 if (me.viewN.getBoolValue()) {
49 volume=1 - me.windowN.getValue();
51 me.volumeN.setDoubleValue(1 - volume);
52 me.muteN.setDoubleValue(volume);
59 var m = { parents : [Fuel] };
61 m.headerN = props.globals.initNode("consumables/fuel/tank[0]/level-gal_us", 0, "DOUBLE");
62 m.headerCap = props.globals.initNode("consumables/fuel/tank[0]/capacity-gal_us", 0 "DOUBLE").getValue();
63 m.winglN = props.globals.initNode("consumables/fuel/tank[1]/level-gal_us", 0, "DOUBLE");
64 m.wingrN = props.globals.initNode("consumables/fuel/tank[2]/level-gal_us", 0, "DOUBLE");
65 m.fuelpumpN = props.globals.initNode("systems/electrical/outputs/fuel-pump", 0, "DOUBLE");
66 # needs switch for header - > engine
71 var level = me.headerN.getValue();
72 var delta = me.headerCap - level;
73 var available = me.winglN.getValue();
75 var max_transfer = 0.12*dt; # in gallons per second, roughly 7 gpm
76 if(me.fuelpumpN.getValue() > 11.0){# if power to fuel pump
77 if (available > (delta)) {
82 if (transfer > max_transfer) {
83 transfer=max_transfer;
85 me.headerN.setDoubleValue(level + transfer);
86 me.winglN.setDoubleValue(available - transfer);
88 var left = me.winglN.getValue();
89 var right = me.wingrN.getValue();
90 delta = (right - left)/2;
93 me.winglN.setDoubleValue(left);
94 me.wingrN.setDoubleValue(right);
98 var update_ercoupe = func {
99 var time = getprop("/sim/time/fast_timer");
100 var dt = time - my_last_time;
101 #print ("dT = "~dt~" ,time = "~time~" ,last = "~my_last_time);
104 cockpit_mute.update();
105 fuel_system.update(dt);
107 settimer(update_ercoupe,1);