1
0
Fork 0
fgdata/Input/Joysticks/ThrustMaster/Thrustmaster-TWCS-Throttle.xml

225 lines
6.7 KiB
XML
Raw Normal View History

<?xml version="1.0"?>
<!--
Copyright (c) 2020 Jonathan Schellhase
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<!--
Bindings for Thrustmaster TWCS Throttle
!Only tested on Ubuntu 18.04 with FlightGear 2910.2.0 (next) from March 7, 2020!
Assignments:
Axis 0: View heading (self-centering)
Axis 1: View pitch
Axis 2: Throttle
Axis 5: Rudder
Axis 7: Propeller pitch
Axis 8: Zoom
Button 0: Pause
Button 1: Left wheel brake
Button 2: Right wheel brake
Button 3: Elevator trim up
Button 4: Elevator trim down
Button 6: Aileron trim right
Button 8: Aileron trim left
Button 10: Rudder trim right
Button 12: Rudder trim left
-->
<PropertyList>
<name type="string">Thrustmaster TWCS Throttle</name>
<axis>
<desc type="string">View Horizontal Axis</desc>
<binding>
<command type="string">property-scale</command>
<property type="string">/sim/current-view/goal-heading-offset-deg</property>
<factor type="double">-180</factor>
<offset type="double">0</offset>
</binding>
</axis>
<axis n="1">
<desc type="string">View (vertical)</desc>
<low>
<binding>
<command type="string">nasal</command>
<script type="string">setprop("/sim/current-view/goal-pitch-offset-deg", getprop("/sim/current-view/goal-pitch-offset-deg") + 1);</script>
</binding>
<repeatable type="bool">true</repeatable>
</low>
<high>
<binding>
<command type="string">nasal</command>
<script type="string">setprop("/sim/current-view/goal-pitch-offset-deg", getprop("/sim/current-view/goal-pitch-offset-deg") - 1);</script>
</binding>
<repeatable type="bool">true</repeatable>
</high>
</axis>
<axis n="2">
<desc type="string">Throttle (all)</desc>
<binding>
<command type="string">nasal</command>
<script type="string">controls.throttleAxis();</script>
</binding>
</axis>
<axis n="5">
<desc type="string">Rudder</desc>
<binding>
<command type="string">property-scale</command>
<property type="string">/controls/flight/rudder</property>
<factor type="double">1</factor>
<offset type="double">0</offset>
</binding>
</axis>
<axis n="7">
<desc type="string">Propeller All Engines</desc>
<binding>
<command type="string">property-scale</command>
<property type="string">/controls/engines/propeller-pitch-all</property>
<factor type="double">-1</factor>
<offset type="double">0</offset>
</binding>
</axis>
<axis n="8">
<desc type="string">Zoom</desc>
<low>
<binding>
<command type="string">nasal</command>
<script type="string">view.increase(0.75);</script>
</binding>
<repeatable type="double">1</repeatable>
</low>
<high>
<binding>
<command type="string">nasal</command>
<script type="string">view.decrease(0.75);</script>
</binding>
<repeatable type="double">1</repeatable>
</high>
</axis>
<button>
<desc type="string">Custom</desc>
<binding>
<command type="string">pause</command>
<offset type="double">1</offset>
</binding>
<mod-up>
<binding type="string">
</binding>
</mod-up>
</button>
<button n="1">
<desc type="string">Custom</desc>
<binding>
<command type="string">nasal</command>
<script type="string">controls.applyBrakes(1, -1)</script>
<module type="string">__js1</module>
<offset type="double">1</offset>
</binding>
<mod-up>
<binding>
<command type="string">nasal</command>
<script type="string">controls.applyBrakes(0, -1)</script>
<module type="string">__js1</module>
<offset type="double">1</offset>
</binding>
</mod-up>
</button>
<button n="2">
<desc type="string">Custom</desc>
<binding>
<command type="string">nasal</command>
<script type="string">controls.applyBrakes(1, 1)</script>
<module type="string">__js1</module>
<offset type="double">1</offset>
</binding>
<mod-up>
<binding>
<command type="string">nasal</command>
<script type="string">controls.applyBrakes(0, 1)</script>
<module type="string">__js1</module>
<offset type="double">1</offset>
</binding>
</mod-up>
</button>
<button n="3">
<desc type="string">Elevator trim up</desc>
<binding>
<command type="string">nasal</command>
<script type="string">controls.elevatorTrim(-1);</script>
<module type="string">__js1</module>
<offset type="double">1</offset>
</binding>
<repeatable type="double">1</repeatable>
<mod-up>
<binding type="string">
</binding>
</mod-up>
</button>
<button n="4">
<desc type="string">Elevator trim down</desc>
<binding>
<command type="string">nasal</command>
<script type="string">controls.elevatorTrim(1);</script>
<module type="string">__js1</module>
<offset type="double">1</offset>
</binding>
<repeatable type="double">1</repeatable>
<mod-up>
<binding type="string">
</binding>
</mod-up>
</button>
<button n="6">
<desc type="string">Aileron Trim Right</desc>
<binding>
<command type="string">nasal</command>
<script type="string">controls.aileronTrim(1);</script>
</binding>
<repeatable type="double">1</repeatable>
</button>
<button n="8">
<desc type="string">Aileron Trim Left</desc>
<binding>
<command type="string">nasal</command>
<script type="string">controls.aileronTrim(-1);</script>
</binding>
<repeatable type="double">1</repeatable>
</button>
<button n="10">
<desc type="string">Rudder Trim Right</desc>
<binding>
<command type="string">nasal</command>
<script type="string">controls.rudderTrim(1);</script>
</binding>
<repeatable type="double">1</repeatable>
</button>
<button n="12">
<desc type="string">Rudder Trim Left</desc>
<binding>
<command type="string">nasal</command>
<script type="string">controls.rudderTrim(-1);</script>
</binding>
<repeatable type="double">1</repeatable>
</button>
</PropertyList>