Sim: add support for spoiler joystick binding

This commit is contained in:
Joshua Davidson 2018-07-22 12:14:32 -04:00
parent 21062e9ba2
commit 17a12bad59
4 changed files with 56 additions and 33 deletions

View file

@ -540,7 +540,6 @@
<elevator-input>0</elevator-input>
<elevator-trim-fdm>0.0</elevator-trim-fdm>
<flap-pos type="int">0</flap-pos>
<ground-spoilers-armed type="bool">0</ground-spoilers-armed>
<rudder-trim-fdm>0.0</rudder-trim-fdm>
<speedbrake-arm>0</speedbrake-arm>
<slats>0</slats>
@ -1370,7 +1369,7 @@
</and>
</condition>
<command>property-cycle</command>
<property>controls/flight/speedbrake</property>
<property>/controls/flight/speedbrake</property>
<value>0.0</value>
<value>1.0</value>
</binding>
@ -1392,14 +1391,14 @@
</and>
</condition>
<command>property-cycle</command>
<property>controls/flight/speedbrake</property>
<property>/controls/flight/speedbrake</property>
<value>0.0</value>
<value>0.5</value>
<value>1.0</value>
</binding>
<binding>
<command>property-assign</command>
<property>controls/flight/speedbrake-arm</property>
<property>/controls/flight/speedbrake-arm</property>
<value>0</value>
</binding>
</key>

View file

@ -4935,9 +4935,8 @@
<animation>
<type>rotate</type>
<object-name>SpdBrk</object-name>
<property>controls/flight/speedbrake</property>
<property>fdm/jsbsim/spoilers/speedbrake-nul</property>
<factor>45</factor>
<!--offset-deg>10</offset-deg-->
<axis>
<object-name>SpdBrk.axis</object-name>
</axis>

View file

@ -399,6 +399,31 @@ var flaptimer = maketimer(0.5, func {
}
});
controls.stepSpoilers = func(step) {
setprop("/controls/flight/speedbrake-arm", 0);
if (step == 1) {
deploySpeedbrake();
} else if (step == -1) {
retractSpeedbrake();
}
}
var deploySpeedbrake = func {
if (getprop("/controls/flight/speedbrake") < 0.5) {
setprop("/controls/flight/speedbrake", 0.5);
} else if (getprop("/controls/flight/speedbrake") < 1.0) {
setprop("/controls/flight/speedbrake", 1.0);
}
}
var retractSpeedbrake = func {
if (getprop("/controls/flight/speedbrake") > 0.5) {
setprop("/controls/flight/speedbrake", 0.5);
} else if (getprop("/controls/flight/speedbrake") > 0.0) {
setprop("/controls/flight/speedbrake", 0.0);
}
}
var slewProp = func(prop, delta) {
delta *= getprop("/sim/time/delta-realtime-sec");
setprop(prop, getprop(prop) + delta);

View file

@ -1 +1 @@
4604
4605