1
0
Fork 0
fgdata/Aircraft/Generic/g-forces.xml

842 lines
30 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8"?>
<!--
###################################################################################
## ##
## Improved redout/blackout system for Flightgear ##
## ##
## Author: Nikolai V. Chr. ##
## ##
## Todo: Tie in with Thorstens ALS greyout and tunnel vision filters ##
## ##
## ##
## Version 2.04 License: GPL 2.0 ##
## ##
###################################################################################
-->
<PropertyList>
<params>
<onset-b>sim/rendering/redout/parameters/blackout-onset-g</onset-b>
<fast-b>sim/rendering/redout/parameters/blackout-complete-g</fast-b>
<onset-r>sim/rendering/redout/parameters/redout-onset-g</onset-r>
<fast-r>sim/rendering/redout/parameters/redout-complete-g</fast-r>
<onset-t-b>sim/rendering/redout/parameters/onset-blackout-sec</onset-t-b>
<fast-t-b>sim/rendering/redout/parameters/fast-blackout-sec</fast-t-b>
<onset-t-r>sim/rendering/redout/parameters/onset-redout-sec</onset-t-r>
<fast-t-r>sim/rendering/redout/parameters/fast-redout-sec</fast-t-r>
<rec-f>sim/rendering/redout/parameters/recover-fast-sec</rec-f>
<rec-s>sim/rendering/redout/parameters/recover-slow-sec</rec-s>
<log>
<g-force>sim/rendering/redout/internal/log/g-force</g-force>
<onset-b>sim/rendering/redout/internal/log/onset-b</onset-b>
<fast-b>sim/rendering/redout/internal/log/fast-b</fast-b>
<g-force-r>sim/rendering/redout/internal/log/g-force-r</g-force-r>
<onset-r>sim/rendering/redout/internal/log/onset-r</onset-r>
<fast-r>sim/rendering/redout/internal/log/fast-r</fast-r>
</log>
<g-damp>accelerations/pilot-gdamped</g-damp>
<g-force-inv>sim/rendering/redout/internal/g-force-inv</g-force-inv>
<blackout>sim/rendering/redout/internal/blackout</blackout>
<redout>sim/rendering/redout/internal/redout</redout>
<jsb>sim/rendering/redout/internal/jsb</jsb>
<alpha>sim/rendering/redout/alpha</alpha>
<red>sim/rendering/redout/red</red>
<inside>sim/current-view/internal</inside>
<sum>sim/rendering/redout/internal/sum</sum>
<enable>sim/rendering/redout/enabled</enable>
<g-force>accelerations/pilot-g[0]</g-force>
</params>
<filter><!-- check for NaN -->
<type>gain</type>
<gain>0</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<not>
<less-than>
<property alias="/params/blackout"/>
<value>1000.0</value>
</less-than>
<greater-than>
<property alias="/params/blackout"/>
<value>-1000.0</value>
</greater-than>
</not>
</condition>
</enable>
<input>
<value>0</value>
</input>
<output alias="/params/blackout"/>
</filter>
<filter><!-- check for NaN -->
<type>gain</type>
<gain>0</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<not>
<less-than>
<property alias="/params/redout"/>
<value>1000.0</value>
</less-than>
<greater-than>
<property alias="/params/redout"/>
<value>-1000.0</value>
</greater-than>
</not>
</condition>
</enable>
<input>
<value>0</value>
</input>
<output alias="/params/redout"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<!-- check if blackout onset has sane value. -->
<condition>
<or>
<less-than>
<property alias="/params/onset-b"/>
<value>1.25</value>
</less-than>
</or>
</condition>
</enable>
<input>
<expression>
<max>
<property alias="/params/fast-b"/>
<value>1.25</value>
</max>
</expression>
</input>
<output alias="/params/onset-b"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<!-- check if blackout complete has sane value. -->
<condition>
<or>
<greater-than>
<property alias="/params/onset-b"/>
<property alias="/params/fast-b"/>
</greater-than>
<less-than>
<property alias="/params/fast-b"/>
<value>1.5</value>
</less-than>
</or>
</condition>
</enable>
<input>
<expression>
<max>
<sum>
<property alias="/params/onset-b"/>
<value>0.50</value>
</sum>
<value>1.5</value>
</max>
</expression>
</input>
<output alias="/params/fast-b"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<!-- check if redout onset has sane value. -->
<condition>
<or>
<greater-than>
<property alias="/params/onset-r"/>
<value>-1.00</value>
</greater-than>
</or>
</condition>
</enable>
<input>
<expression>
<min>
<property alias="/params/fast-r"/>
<value>-1.00</value>
</min>
</expression>
</input>
<output alias="/params/onset-r"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<!-- check if redout complete has sane value. -->
<condition>
<or>
<greater-than>
<property alias="/params/fast-r"/>
<property alias="/params/onset-r"/>
</greater-than>
<greater-than>
<property alias="/params/fast-r"/>
<value>-1.25</value>
</greater-than>
</or>
</condition>
</enable>
<input>
<expression>
<min>
<sum>
<property alias="/params/onset-r"/>
<value>-0.50</value>
</sum>
<value>-1.25</value>
</min>
</expression>
</input>
<output alias="/params/fast-r"/>
</filter>
<filter>
<type>gain</type>
<gain>-1</gain>
<enable>
<!-- check if JSBSim is the FDM. -->
<condition>
<equals>
<property alias="/params/jsb"/>
<value>1</value>
</equals>
</condition>
</enable>
<input>
<expression>
<div>
<property>accelerations/pilot/z-accel-fps_sec</property>
<value>32.174</value>
</div>
</expression>
</input>
<output alias="/params/g-force"/>
</filter>
<filter>
<!-- for backwards compatibility for planes that use gdamped property -->
<type>exponential</type>
<filter-time>0.2</filter-time>
<input alias="/params/g-force"/>
<output alias="/params/g-damp"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
</condition>
</enable>
<input>
<expression>
<log10>
<property alias="/params/fast-b"/>
</log10>
</expression>
</input>
<output alias="/params/log/fast-b"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
</condition>
</enable>
<input>
<expression>
<log10>
<property alias="/params/onset-b"/>
</log10>
</expression>
</input>
<output alias="/params/log/onset-b"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<less-than-equals>
<property alias="/params/g-force"/>
<value>1</value>
</less-than-equals>
</condition>
</enable>
<input>
<value>0</value>
</input>
<output alias="/params/log/g-force"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<greater-than>
<property alias="/params/g-force"/>
<value>1</value>
</greater-than>
</condition>
</enable>
<input>
<expression>
<log10>
<property alias="/params/g-force"/>
</log10>
</expression>
</input>
<output alias="/params/log/g-force"/>
</filter>
<filter><!-- reduce blackout -->
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<less-than>
<property alias="/params/g-force"/>
<property alias="/params/onset-b"/>
</less-than>
</condition>
</enable>
<input>
<expression>
<min>
<value>1</value>
<max>
<value>0</value>
<dif>
<property alias="/params/blackout"/>
<product>
<property>sim/time/delta-sec</property>
<div>
<value>1</value>
<max>
<value>0</value>
<sum>
<property alias="/params/rec-f"/>
<product>
<div>
<dif>
<property alias="/params/log/g-force"/>
<log10>
<value>1</value>
</log10>
</dif>
<dif>
<property alias="/params/log/onset-b"/>
<log10>
<value>1</value>
</log10>
</dif>
</div>
<dif>
<property alias="/params/rec-s"/>
<property alias="/params/rec-f"/>
</dif>
</product>
</sum>
</max>
</div>
</product>
</dif>
</max>
</min>
</expression>
</input>
<output alias="/params/blackout"/>
</filter>
<filter><!-- increase blackout -->
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<greater-than-equals>
<property alias="/params/g-force"/>
<property alias="/params/onset-b"/>
</greater-than-equals>
</condition>
</enable>
<input>
<expression>
<min>
<value>1</value>
<max>
<value>0</value>
<sum>
<property alias="/params/blackout"/>
<product>
<property>sim/time/delta-sec</property>
<div>
<value>1</value>
<max>
<value>0</value>
<pow>
<value>10</value>
<sum>
<log10>
<property alias="/params/onset-t-b"/>
</log10>
<product>
<div>
<dif>
<property alias="/params/log/g-force"/>
<property alias="/params/log/onset-b"/>
</dif>
<dif>
<property alias="/params/log/fast-b"/>
<property alias="/params/log/onset-b"/>
</dif>
</div>
<dif>
<log10>
<property alias="/params/fast-t-b"/>
</log10>
<log10>
<property alias="/params/onset-t-b"/>
</log10>
</dif>
</product>
</sum>
</pow>
</max>
</div>
</product>
</sum>
</max>
</min>
</expression>
</input>
<output alias="/params/blackout"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
</condition>
</enable>
<input>
<expression>
<log10>
<product>
<value>-1</value>
<dif>
<property alias="/params/fast-r"/>
<value>2</value>
</dif>
</product>
</log10>
</expression>
</input>
<output alias="/params/log/fast-r"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
</condition>
</enable>
<input>
<expression>
<log10>
<product>
<value>-1</value>
<dif>
<property alias="/params/onset-r"/>
<value>2</value>
</dif>
</product>
</log10>
</expression>
</input>
<output alias="/params/log/onset-r"/>
</filter>
<filter>
<type>gain</type>
<gain>-1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
</condition>
</enable>
<input>
<expression>
<dif>
<property alias="/params/g-force"/>
<value>2</value>
</dif>
</expression>
</input>
<output alias="/params/g-force-inv"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<less-than-equals>
<property alias="/params/g-force-inv"/>
<value>1</value>
</less-than-equals>
</condition>
</enable>
<input>
<value>0</value>
</input>
<output alias="/params/log/g-force-r"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<greater-than>
<property alias="/params/g-force-inv"/>
<value>1</value>
</greater-than>
</condition>
</enable>
<input>
<expression>
<log10>
<property alias="/params/g-force-inv"/>
</log10>
</expression>
</input>
<output alias="/params/log/g-force-r"/>
</filter>
<filter><!-- reduce redout -->
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<greater-than>
<property alias="/params/g-force"/>
<property alias="/params/onset-r"/>
</greater-than>
</condition>
</enable>
<input>
<expression>
<min>
<value>1</value>
<max>
<value>0</value>
<dif>
<property alias="/params/redout"/>
<product>
<property>sim/time/delta-sec</property>
<div>
<value>1</value>
<max>
<value>0</value>
<sum>
<property alias="/params/rec-f"/>
<product>
<div>
<dif>
<property alias="/params/log/g-force-r"/>
<log10>
<value>1</value>
</log10>
</dif>
<dif>
<property alias="/params/log/onset-r"/>
<log10>
<value>1</value>
</log10>
</dif>
</div>
<dif>
<property alias="/params/rec-s"/>
<property alias="/params/rec-f"/>
</dif>
</product>
</sum>
</max>
</div>
</product>
</dif>
</max>
</min>
</expression>
</input>
<output alias="/params/redout"/>
</filter>
<filter><!-- increase redout -->
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<less-than-equals>
<property alias="/params/g-force"/>
<property alias="/params/onset-r"/>
</less-than-equals>
</condition>
</enable>
<input>
<expression>
<min>
<value>1</value>
<max>
<value>0</value>
<sum>
<property alias="/params/redout"/>
<product>
<property>sim/time/delta-sec</property>
<div>
<value>1</value>
<max>
<value>0</value>
<pow>
<value>10</value>
<sum>
<log10>
<property alias="/params/onset-t-r"/>
</log10>
<product>
<div>
<dif>
<property alias="/params/log/g-force-r"/>
<property alias="/params/log/onset-r"/>
</dif>
<dif>
<property alias="/params/log/fast-r"/>
<property alias="/params/log/onset-r"/>
</dif>
</div>
<dif>
<log10>
<property alias="/params/fast-t-r"/>
</log10>
<log10>
<property alias="/params/onset-t-r"/>
</log10>
</dif>
</product>
</sum>
</pow>
</max>
</div>
</product>
</sum>
</max>
</min>
</expression>
</input>
<output alias="/params/redout"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
</condition>
</enable>
<input>
<expression>
<dif>
<property alias="/params/blackout"/>
<property alias="/params/redout"/>
</dif>
</expression>
</input>
<output alias="/params/sum"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<equals>
<property alias="/params/inside"/>
<value>1</value>
</equals>
<less-than>
<property alias="/params/sum"/>
<value>0</value>
</less-than>
</condition>
</enable>
<input>
<value>1</value>
</input>
<output alias="/params/red"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<equals>
<property alias="/params/inside"/>
<value>1</value>
</equals>
<less-than>
<property alias="/params/sum"/>
<value>0</value>
</less-than>
</condition>
</enable>
<input>
<expression>
<product>
<property alias="/params/sum"/>
<value>-1</value>
</product>
</expression>
</input>
<output alias="/params/alpha"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<equals>
<property alias="/params/inside"/>
<value>1</value>
</equals>
<greater-than-equals>
<property alias="/params/sum"/>
<value>0</value>
</greater-than-equals>
</condition>
</enable>
<input>
<value>0</value>
</input>
<output alias="/params/red"/>
</filter>
<filter>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<property alias="/params/enable"/>
<equals>
<property alias="/params/inside"/>
<value>1</value>
</equals>
<greater-than-equals>
<property alias="/params/sum"/>
<value>0</value>
</greater-than-equals>
</condition>
</enable>
<input>
<property alias="/params/sum"/>
</input>
<output alias="/params/alpha"/>
</filter>
<filter>
<type>gain</type>
<gain>0</gain>
<enable>
<condition>
<or>
<not>
<property alias="/params/enable"/>
</not>
<equals>
<property alias="/params/inside"/>
<value>0</value>
</equals>
</or>
</condition>
</enable>
<input>
<value>0</value>
</input>
<output alias="/params/alpha"/>
</filter>
<filter>
<type>gain</type>
<gain>0</gain>
<enable>
<condition>
<not>
<property alias="/params/enable"/>
</not>
</condition>
</enable>
<input>
<value>0</value>
</input>
<output alias="/params/blackout"/>
</filter>
<filter>
<type>gain</type>
<gain>0</gain>
<enable>
<condition>
<not>
<property alias="/params/enable"/>
</not>
</condition>
</enable>
<input>
<value>0</value>
</input>
<output alias="/params/redout"/>
</filter>
</PropertyList>