390 lines
12 KiB
XML
390 lines
12 KiB
XML
<?xml version="1.0"?>
|
|
<!-- Saitek Pro Flight Cessna Yoke
|
|
|
|
Copyright (C) 2012 Stuart Buchanan
|
|
This file is released under the GPL license.
|
|
|
|
Controls:
|
|
Axis 0: Aileron
|
|
Axis 1: Elevator
|
|
Axis 2: Throttle
|
|
Axis 3: Prop
|
|
Axis 4: Mixture
|
|
Axis 5/6 (Coolie Hat): View direction
|
|
Button 0 (left button): PTT
|
|
Button 1 (right button): Reset View
|
|
Button 2/3 (left four-way forwards/back): Angle of view
|
|
Button 4/5 (right vertical two-way): Elevator Trim
|
|
Button 6/7 (right horizontal two-way): Rudder Trim
|
|
Button 11/12 (left four-way left/right): View
|
|
Button 13/14 (left hand quadrant buttons): Flaps Up/Down
|
|
Buttons 15/16 (middle quadrant buttons): Gear Up/Down
|
|
Buttons 17/18 (right quandrant buttons): Spoilers Up/Down
|
|
Buttons 23/24/25 (right hand selector switch): View direction Sensitivity
|
|
|
|
-->
|
|
<PropertyList>
|
|
<name>Saitek Saitek Pro Flight Cessna Yoke</name>
|
|
<name>Saitek Pro Flight Cessna Yoke</name>
|
|
<name>Saitek Pro Flight Cessna Yoke</name>
|
|
<name>Mad Catz Pro Flight Cessna Yoke</name>
|
|
<name>ProFlight Cessna Yoke</name>
|
|
|
|
<axis n="0">
|
|
<desc>Aileron</desc>
|
|
<binding>
|
|
<command>property-scale</command>
|
|
<property>/controls/flight/aileron</property>
|
|
</binding>
|
|
</axis>
|
|
<axis n="1">
|
|
<desc>Elevator</desc>
|
|
<binding>
|
|
<command>property-scale</command>
|
|
<property>/controls/flight/elevator</property>
|
|
<factor type="double">-1.0</factor>
|
|
</binding>
|
|
</axis>
|
|
<!-- Throttle Quadrant -->
|
|
<axis n="2">
|
|
<desc>Throttle</desc>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.throttleAxis()</script>
|
|
</binding>
|
|
</axis>
|
|
<axis>
|
|
<number>
|
|
<unix>3</unix>
|
|
<windows>4</windows>
|
|
</number>
|
|
<desc>Propellor Pitch</desc>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.propellerAxis()</script>
|
|
</binding>
|
|
</axis>
|
|
<axis>
|
|
<number>
|
|
<unix>4</unix>
|
|
<windows>3</windows>
|
|
</number>
|
|
<desc>Mixture</desc>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.mixtureAxis()</script>
|
|
</binding>
|
|
</axis>
|
|
<!-- Coolie Hat -->
|
|
<axis>
|
|
<number>
|
|
<unix>5</unix>
|
|
<windows>6</windows>
|
|
</number>
|
|
<desc>View Heading</desc>
|
|
<low>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>
|
|
var yoke = getprop("/devices/status/yoke/offset");
|
|
var offset = getprop("/sim/current-view/goal-heading-offset-deg");
|
|
setprop("/sim/current-view/goal-heading-offset-deg", offset + yoke);
|
|
</script>
|
|
</binding>
|
|
</low>
|
|
<high>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>
|
|
var yoke = getprop("/devices/status/yoke/offset");
|
|
var offset = getprop("/sim/current-view/goal-heading-offset-deg");
|
|
setprop("/sim/current-view/goal-heading-offset-deg", offset - yoke);
|
|
</script>
|
|
</binding>
|
|
</high>
|
|
</axis>
|
|
<axis>
|
|
<number>
|
|
<unix>6</unix>
|
|
</number>
|
|
<desc>View Elevation</desc>
|
|
<low>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>
|
|
var yoke = getprop("/devices/status/yoke/offset");
|
|
var offset = getprop("/sim/current-view/goal-pitch-offset-deg");
|
|
setprop("/sim/current-view/goal-pitch-offset-deg", offset + yoke);
|
|
</script>
|
|
</binding>
|
|
</low>
|
|
<high>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>
|
|
var yoke = getprop("/devices/status/yoke/offset");
|
|
var offset = getprop("/sim/current-view/goal-pitch-offset-deg");
|
|
setprop("/sim/current-view/goal-pitch-offset-deg", offset - yoke);
|
|
</script>
|
|
</binding>
|
|
</high>
|
|
</axis>
|
|
<axis>
|
|
<number>
|
|
<windows>7</windows>
|
|
</number>
|
|
<desc>View Elevation</desc>
|
|
<low>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>
|
|
var yoke = getprop("/devices/status/yoke/offset");
|
|
var offset = getprop("/sim/current-view/goal-pitch-offset-deg");
|
|
setprop("/sim/current-view/goal-pitch-offset-deg", offset - yoke);
|
|
</script>
|
|
</binding>
|
|
</low>
|
|
<high>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>
|
|
var yoke = getprop("/devices/status/yoke/offset");
|
|
var offset = getprop("/sim/current-view/goal-pitch-offset-deg");
|
|
setprop("/sim/current-view/goal-pitch-offset-deg", offset + yoke);
|
|
</script>
|
|
</binding>
|
|
</high>
|
|
</axis>
|
|
|
|
<!-- Buttons on the Yoke -->
|
|
|
|
<!-- Red Button on left stalk -->
|
|
<button n="0">
|
|
<name>PTT</name>
|
|
<desc>Push To Talk (FGCom)</desc>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.ptt(1)</script>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.ptt(0)</script>
|
|
</binding>
|
|
</mod-up>
|
|
|
|
</button>
|
|
|
|
<!-- Black button on right stalk -->
|
|
<button n="1">
|
|
<desc>Reset view</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>
|
|
setprop("/sim/current-view/view-number", 0);
|
|
setprop("/sim/current-view/goal-pitch-offset-deg", getprop("/sim/view[0]/config/pitch-offset-deg"));
|
|
setprop("/sim/current-view/goal-heading-offset-deg", 0.0);
|
|
#setprop("/sim/current-view/field-of-view", getprop("/sim/view/config/default-field-of-view-deg"));
|
|
</script>
|
|
</binding>
|
|
</button>
|
|
|
|
<!-- Left hand four-way switch -->
|
|
<button n="2">
|
|
<desc>View Decrease</desc>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>view.decrease(0.75)</script>
|
|
</binding>
|
|
</button>
|
|
|
|
<button n="3">
|
|
<desc>View Increase</desc>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>view.increase(0.75)</script>
|
|
</binding>
|
|
</button>
|
|
|
|
<!-- Right hand vertical two-way switch -->
|
|
<button n="4">
|
|
<desc>Elevator trim up</desc>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.elevatorTrim(1)</script>
|
|
</binding>
|
|
</button>
|
|
<button n="5">
|
|
<desc>Elevator trim down</desc>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.elevatorTrim(-1)</script>
|
|
</binding>
|
|
</button>
|
|
|
|
|
|
<!-- Right hand horizontal two-way switch -->
|
|
<button n="6">
|
|
<desc>Rudder trim right</desc>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.rudderTrim(-1)</script>
|
|
</binding>
|
|
</button>
|
|
<button n="7">
|
|
<desc>Rudder trim left</desc>
|
|
<repeatable>true</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.rudderTrim(1)</script>
|
|
</binding>
|
|
</button>
|
|
|
|
<!-- Left four-way switch - horizontal -->
|
|
<button n="11">
|
|
<desc>View Cycle Backwards</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>view.stepView(-1)</script>
|
|
</binding>
|
|
</button>
|
|
|
|
<button n="12">
|
|
<desc>View Cycle Forwards</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>view.stepView(1)</script>
|
|
</binding>
|
|
</button>
|
|
|
|
|
|
|
|
<!-- Buttons on the throttle Quadrant -->
|
|
<button n="13"> <!-- Labled as T1 -->
|
|
<desc>Flaps up</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.flapsDown(-1)</script>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.flapsDown(0)</script>
|
|
</binding>
|
|
</mod-up>
|
|
</button>
|
|
<button n="14"> <!-- Labled as T2 -->
|
|
<desc>Flaps down</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.flapsDown(1)</script>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.flapsDown(0)</script>
|
|
</binding>
|
|
</mod-up>
|
|
</button>
|
|
<button n="15"> <!-- Labled as T3 -->
|
|
<desc>Gear up</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.gearDown(-1)</script>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.gearDown(0)</script>
|
|
</binding>
|
|
</mod-up>
|
|
</button>
|
|
<button n="16"> <!-- Labled as T4 -->
|
|
<desc>Gear down</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.gearDown(1)</script>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.gearDown(0)</script>
|
|
</binding>
|
|
</mod-up>
|
|
</button>
|
|
<button n="17"> <!-- Labled as T5 -->
|
|
<desc>Retract Spoilers</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.stepSpoilers(-1)</script>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.stepSpoilers(0)</script>
|
|
</binding>
|
|
</mod-up>
|
|
</button>
|
|
|
|
<button n="18"> <!-- Labled as T6 -->
|
|
<desc>Deploy Spoilers</desc>
|
|
<repeatable>false</repeatable>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.stepSpoilers(1)</script>
|
|
</binding>
|
|
<mod-up>
|
|
<binding>
|
|
<command>nasal</command>
|
|
<script>controls.stepSpoilers(0)</script>
|
|
</binding>
|
|
</mod-up>
|
|
</button>
|
|
<button n="22">
|
|
<desc>Yoke Mode 0</desc>
|
|
<repeatable type="bool">false</repeatable>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/devices/status/yoke/offset</property>
|
|
<value>1</value>
|
|
</binding>
|
|
</button>
|
|
<button n="23">
|
|
<desc>Yoke Mode 1</desc>
|
|
<repeatable type="bool">false</repeatable>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/devices/status/yoke/offset</property>
|
|
<value>5</value>
|
|
</binding>
|
|
</button>
|
|
<button n="24">
|
|
<desc>Yoke Mode 2</desc>
|
|
<repeatable type="bool">false</repeatable>
|
|
<binding>
|
|
<command>property-assign</command>
|
|
<property>/devices/status/yoke/offset</property>
|
|
<value>10</value>
|
|
</binding>
|
|
</button>
|
|
|
|
</PropertyList>
|