8d83fe27cf
I got a new joystick, a Speedlink Black Hawk (USB) with force feedback for which I have written a setup xml file (see attachment) since with the default setup, the rudder control didn't work. Perhaps you could include it in the next version of Flightgear, such that other users with the same joystick could immediately use it. The xml file contains a description of the axis/button setup and should be self-explanatory. I am using Windows XP but I guess the configuration should at least work on all Windows platforms, no idea whether it works under Linux. It would be great if one could get the vibration function to work (for touchdown, running over uneven ground, plane stalling and the like) but I frankly don't know how to do it. Has anybody already implemented force feedback? Let me stress that Flightgear is a great sim and that I really enjoy it a lot! You all are doing a great job!
243 lines
6.1 KiB
XML
243 lines
6.1 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!--
|
|
|
|
************************************************************************
|
|
|
|
Bindings for Speedlink Black Hawk Force Vibration joystick. Note that the
|
|
following button numbers correspond to the ones one the joystick
|
|
(not the ones used internally).
|
|
Axis 0: ailerons* Axis 1: elevator* Axis 2: rudder* Axis 3: throttle*
|
|
Axis 6 and 7 (coolie hat): view direction* Button 1: all brakes*
|
|
Button 2: elevator trim up* Button 4: elevator trim down*
|
|
Button 3: center view* Button 5: retract flaps* Button 6: extend flaps*
|
|
Button 7: landing gear up* Button 8: landing gear down*
|
|
Button 9: left brake* Button 10: right brake*
|
|
Button 11: previous view
|
|
* Button 12: next view
|
|
|
|
|
|
Unfortunately, there is no force feedback implementation (yet?)
|
|
Have fun! Marky Marc
|
|
************************************************************************
|
|
|
|
-->
|
|
|
|
<PropertyList>
|
|
|
|
<name>USB Dual Vibration Joystick</name>
|
|
|
|
<axis n="0">
|
|
<desc>Aileron</desc>
|
|
<binding>
|
|
<command>property-scale</command>
|
|
<property>/controls/flight/aileron</property>
|
|
<power type="double">2</power>
|
|
</binding>
|
|
</axis>
|
|
|
|
<axis n="1">
|
|
<desc>Elevator</desc>
|
|
<binding>
|
|
<command>property-scale</command>
|
|
<property>/controls/flight/elevator</property>
|
|
<factor type="double">-1.0</factor>
|
|
<power type="double">2</power>
|
|
</binding>
|
|
</axis>
|
|
|
|
<axis n="2">
|
|
<desc>Throttle</desc>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.throttleAxis()</script>
|
|
</binding>
|
|
</axis>
|
|
|
|
<axis n="3">
|
|
<binding>
|
|
<command>property-scale</command>
|
|
<property>/controls/flight/rudder</property>
|
|
<power type="double">2</power>
|
|
</binding>
|
|
</axis>
|
|
|
|
<axis n="6">
|
|
<desc>View Direction</desc>
|
|
<low>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>property-adjust</command>
|
|
<property>/sim/current-view/goal-heading-offset-deg</property>
|
|
<step type="double">2.0</step>
|
|
</binding>
|
|
</low>
|
|
<high>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>property-adjust</command>
|
|
<property>/sim/current-view/goal-heading-offset-deg</property>
|
|
<step type="double">-2.0</step>
|
|
</binding>
|
|
</high>
|
|
</axis>
|
|
|
|
<axis n="7">
|
|
<desc>View Elevation</desc>
|
|
<low>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>property-adjust</command>
|
|
<property>/sim/current-view/goal-pitch-offset-deg</property>
|
|
<step type="double">-2.0</step>
|
|
</binding>
|
|
</low>
|
|
<high>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>property-adjust</command>
|
|
<property>/sim/current-view/goal-pitch-offset-deg</property>
|
|
<step type="double">2.0</step>
|
|
</binding>
|
|
</high>
|
|
</axis>
|
|
|
|
|
|
<button n="0">
|
|
<desc>Brakes</desc>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/brake-left</property>
|
|
<value type="double">1.0</value>
|
|
</binding>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/brake-right</property>
|
|
<value type="double">1.0</value>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/brake-left</property>
|
|
<value type="double">0.0</value>
|
|
</binding>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/brake-right</property>
|
|
<value type="double">0.0</value>
|
|
</binding>
|
|
</mod-up>
|
|
</button>
|
|
|
|
<button n="1">
|
|
<desc>Elevator trim up</desc>
|
|
<repeatable type="bool">true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.elevatorTrim(1)</script>
|
|
</binding>
|
|
</button>
|
|
|
|
<button n="2">
|
|
<desc>Center View</desc>
|
|
<repeatable type="bool">false</repeatable>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/sim/current-view/goal-heading-offset-deg</property>
|
|
<value type="double">0.0</value>
|
|
</binding>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/sim/current-view/goal-pitch-offset-deg</property>
|
|
<value type="double">0.0</value>
|
|
</binding>
|
|
</button>
|
|
|
|
<button n="3">
|
|
<desc>Elevator trim down</desc>
|
|
<repeatable type="bool">true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.elevatorTrim(-1)</script>
|
|
</binding>
|
|
</button> <button n="4">
|
|
<desc>Flaps down</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>property-adjust</command>
|
|
<property>/controls/flight/flaps</property>
|
|
<step type="double">-0.34</step>
|
|
</binding>
|
|
</button>
|
|
|
|
<button n="5">
|
|
<desc>Flaps up</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>property-adjust</command>
|
|
<property>/controls/flight/flaps</property>
|
|
<step type="double">0.34</step>
|
|
</binding>
|
|
</button>
|
|
|
|
<button n="6"> <desc>Gear Up.</desc>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/gear-down</property>
|
|
<value type="double">0.0</value>
|
|
</binding>
|
|
</button> <button n="7"> <desc>Gear down.</desc>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/gear-down</property>
|
|
<value type="double">1.0</value>
|
|
</binding>
|
|
</button>
|
|
|
|
<button n="8">
|
|
<desc>Left brake</desc>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/brake-left</property>
|
|
<value type="double">1.0</value>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/brake-left</property>
|
|
<value type="double">0.0</value>
|
|
</binding>
|
|
</mod-up>
|
|
</button> <button n="9">
|
|
<desc>Right brake</desc>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/brake-right</property>
|
|
<value type="double">1.0</value>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/controls/gear/brake-right</property>
|
|
<value type="double">0.0</value>
|
|
</binding>
|
|
</mod-up>
|
|
</button>
|
|
|
|
|
|
|
|
<button n="10"> <desc>Scroll in reverse through views.</desc>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>view.stepView(-1)</script>
|
|
</binding> </button>
|
|
|
|
<button n="11"> <desc>Cycle view</desc>
|
|
<desc>Scroll through views.</desc>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>view.stepView(1)</script>
|
|
</binding>
|
|
</button> </PropertyList>
|
|
|
|
<!-- end of joystick.xml -->
|