168 lines
5.3 KiB
XML
168 lines
5.3 KiB
XML
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
|
||
|
<!--
|
||
|
Copyright (c) 2016 onox
|
||
|
|
||
|
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/>.
|
||
|
-->
|
||
|
|
||
|
<PropertyList>
|
||
|
|
||
|
<filter>
|
||
|
<name>Control Lock Aileron</name>
|
||
|
<type>noise-spike</type>
|
||
|
<max-rate-of-change>1.0</max-rate-of-change>
|
||
|
<enable>
|
||
|
<property>/controls/flight/freeze-yoke</property>
|
||
|
</enable>
|
||
|
<input>
|
||
|
<property>/controls/flight/aileron-cmd</property>
|
||
|
</input>
|
||
|
<output>
|
||
|
<property>/controls/flight/aileron</property>
|
||
|
</output>
|
||
|
</filter>
|
||
|
|
||
|
<filter>
|
||
|
<name>Control Lock Elevator</name>
|
||
|
<type>noise-spike</type>
|
||
|
<max-rate-of-change>1.0</max-rate-of-change>
|
||
|
<enable>
|
||
|
<property>/controls/flight/freeze-yoke</property>
|
||
|
</enable>
|
||
|
<input>
|
||
|
<property>/controls/flight/elevator-cmd</property>
|
||
|
</input>
|
||
|
<output>
|
||
|
<property>/controls/flight/elevator</property>
|
||
|
</output>
|
||
|
</filter>
|
||
|
|
||
|
<state-machine>
|
||
|
<branch>/aircraft/fsm/control-lock</branch>
|
||
|
|
||
|
<!-- States -->
|
||
|
<state>
|
||
|
<name>unlocked</name>
|
||
|
|
||
|
<enter>
|
||
|
<command>property-assign</command>
|
||
|
<property>/sim/model/c172p/cockpit/control-lock-visible</property>
|
||
|
<value type="bool">false</value>
|
||
|
</enter>
|
||
|
<enter>
|
||
|
<command>property-assign</command>
|
||
|
<property>/controls/flight/freeze-yoke</property>
|
||
|
<value type="bool">false</value>
|
||
|
</enter>
|
||
|
</state>
|
||
|
|
||
|
<state>
|
||
|
<name>prepare-reset-yoke</name>
|
||
|
|
||
|
<enter>
|
||
|
<command>property-assign</command>
|
||
|
<property>/controls/flight/aileron-cmd</property>
|
||
|
<property>/controls/flight/aileron</property>
|
||
|
</enter>
|
||
|
<enter>
|
||
|
<command>property-assign</command>
|
||
|
<property>/controls/flight/elevator-cmd</property>
|
||
|
<property>/controls/flight/elevator</property>
|
||
|
</enter>
|
||
|
<enter>
|
||
|
<command>property-assign</command>
|
||
|
<property>/controls/flight/freeze-yoke</property>
|
||
|
<value type="bool">true</value>
|
||
|
</enter>
|
||
|
</state>
|
||
|
|
||
|
<state>
|
||
|
<name>reset-yoke</name>
|
||
|
|
||
|
<enter>
|
||
|
<command>property-assign</command>
|
||
|
<property>/controls/flight/aileron-cmd</property>
|
||
|
<value type="double">0.0</value>
|
||
|
</enter>
|
||
|
<enter>
|
||
|
<command>property-assign</command>
|
||
|
<property>/controls/flight/elevator-cmd</property>
|
||
|
<value type="double">0.0</value>
|
||
|
</enter>
|
||
|
</state>
|
||
|
|
||
|
<state>
|
||
|
<name>locked</name>
|
||
|
|
||
|
<enter>
|
||
|
<command>property-assign</command>
|
||
|
<property>/sim/model/c172p/cockpit/control-lock-visible</property>
|
||
|
<value type="bool">true</value>
|
||
|
</enter>
|
||
|
</state>
|
||
|
|
||
|
<!-- Transitions -->
|
||
|
<transition>
|
||
|
<name>init</name>
|
||
|
<source>unlocked</source>
|
||
|
<target>prepare-reset-yoke</target>
|
||
|
<condition>
|
||
|
<property>sim/model/c172p/cockpit/control-lock-placed</property>
|
||
|
</condition>
|
||
|
</transition>
|
||
|
|
||
|
<transition>
|
||
|
<name>prepare-center</name>
|
||
|
<source>prepare-reset-yoke</source>
|
||
|
<target>reset-yoke</target>
|
||
|
<condition>
|
||
|
<true/>
|
||
|
</condition>
|
||
|
</transition>
|
||
|
|
||
|
<transition>
|
||
|
<name>move-yoke-to-center</name>
|
||
|
<source>reset-yoke</source>
|
||
|
<target>locked</target>
|
||
|
<condition>
|
||
|
<and>
|
||
|
<equals>
|
||
|
<property>sim/model/c172p/cockpit/yoke-aileron</property>
|
||
|
<value>0.0</value>
|
||
|
</equals>
|
||
|
<equals>
|
||
|
<property>sim/model/c172p/cockpit/yoke-elevator</property>
|
||
|
<value>0.0</value>
|
||
|
</equals>
|
||
|
</and>
|
||
|
</condition>
|
||
|
</transition>
|
||
|
|
||
|
<transition>
|
||
|
<name>unlock-controls</name>
|
||
|
<source>locked</source>
|
||
|
<source>prepare-reset-yoke</source>
|
||
|
<source>reset-yoke</source>
|
||
|
<target>unlocked</target>
|
||
|
<condition>
|
||
|
<not>
|
||
|
<property>sim/model/c172p/cockpit/control-lock-placed</property>
|
||
|
</not>
|
||
|
</condition>
|
||
|
</transition>
|
||
|
</state-machine>
|
||
|
|
||
|
</PropertyList>
|