- E-2C: Yasim engines fine tunning and precision on WoW switch.
[fg:toms-fgdata.git] / Aircraft / E-2C / Nasal / gear.nas
1 # Nose Wheel Steering
2 # -------------------
3
4 #var NWScutoffSpeed = 80.0; #knots
5
6 #var computeNWS = func {
7 #       var NWS_light = 0;
8 #       var NWS = 0.0;
9 #       if ( wow ) {
10 #               var gs = getprop("velocities/groundspeed-kt");
11 #               if (gs == nil) gs = 0.0;
12 #               var rudderInput = getprop("controls/flight/rudder");
13 #               if ( gs < NWScutoffSpeed ) {
14 #                       NWS = rudderInput * (NWScutoffSpeed - gs) / NWScutoffSpeed;
15 #                       NWS_light = 1;
16 #               }
17 #       }
18 #setprop("controls/flight/NWS", NWS);
19 #setprop("sim/model/E-2C/instrumentation/gears/nose-wheel-steering-warnlight", NWS_light);
20 #}
21
22
23 # GearDown Control
24 # ----------------
25 # Hijacked Gear handling so we have a Weight on Wheel security to prevent
26 # undercarriage retraction when on ground. Air-ground safety switch located on
27 # the left main gear.
28
29 controls.gearDown = func(v) {
30         wow = getprop ("/gear/gear[1]/wow");
31     if (v < 0 and ! wow) {
32     setprop("/controls/gear/gear-down", 0);
33   } elsif (v > 0) {
34     setprop("/controls/gear/gear-down", 1);
35   }
36 }
37
38
39 # Landing gear handle animation 
40 # -----------------------------
41
42 setlistener( "controls/gear/gear-down", func { ldg_hdl_main(); } );
43 var ld_hdl = props.globals.getNode("sim/model/E-2C/controls/gear/ld-gear-handle-anim", 1);
44
45 var ldg_hdl_main = func {
46         # Landing gear handle normalized position, it moves much faster (0,5 sec) than the actual under carriage.
47         # Checks if the move is completed, else compute a new normalized postion. 
48         var pos = ld_hdl.getValue();
49         if ( getprop("controls/gear/gear-down") == 1 ) {
50                 if ( pos > -1 ) {
51                         ldg_hdl_anim(-1, pos);
52                 }
53         } elsif ( pos < 0 ) {
54                 ldg_hdl_anim(1, pos);
55         }
56 }
57
58 var ldg_hdl_anim = func {
59         # Increments the handle normalized position,
60         var incr = arg[0]/10;
61         var pos = arg[1] + incr;
62         if ( ( arg[0] = 1 ) and ( pos >= 0 ) ) {
63                 ld_hdl.setDoubleValue(0);
64         } elsif ( ( arg[0] = -1 ) and ( pos <= -1 ) ) {
65                 ld_hdl.setDoubleValue(-1);
66         } else {
67                 ld_hdl.setDoubleValue(pos);
68                 settimer( ldg_hdl_main, 0.05 );
69         }
70 }
71
72 # Launch bar animation 
73 # -----------------------------
74 #var listen_launchbar = nil;
75 #listen_launchbar = setlistener( "gear/launchbar/state", func { settimer(update_launchbar, 0.05) },0 ,0 );
76
77 #var update_launchbar = func() {
78 #       if ( getprop("gear/launchbar/position-norm") == 1 and ! wow ) {
79 #               removelistener( listen_launchbar );
80 #               setprop("controls/gear/launchbar", "false");
81 #               setprop("controls/gear/launchbar", "true");
82 #               settimer(reset_launchbar_listener, 1);
83 #       }
84 #}
85
86 #var reset_launchbar_listener = func() {
87 #       setprop("controls/gear/launchbar", "false");
88 #       listen_launchbar = setlistener( "gear/launchbar/state", func { settimer(update_launchbar, 0.05) },0 ,0 );
89 #}