1
0
Fork 0

Merge branch 'dev' into FMGC

This commit is contained in:
legoboyvdlp R 2020-03-19 17:41:47 +00:00
commit 3f4e818466
97 changed files with 9078 additions and 6869 deletions

View file

@ -160,7 +160,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
</tank> </tank>
</propulsion> </propulsion>
<system file="glass-effect1"/> <system file="glass-effect"/>
<system file="a320-fcs"/> <system file="a320-fcs"/>
<system file="a320-fuel"/> <system file="a320-fuel"/>
<system file="a320-fwc"/> <system file="a320-fwc"/>

View file

@ -159,7 +159,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
</tank> </tank>
</propulsion> </propulsion>
<system file="glass-effect1"/> <system file="glass-effect"/>
<system file="a320-fcs"/> <system file="a320-fcs"/>
<system file="a320-adr"/> <system file="a320-adr"/>
<system file="a320-fuel"/> <system file="a320-fuel"/>

View file

@ -159,7 +159,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
</tank> </tank>
</propulsion> </propulsion>
<system file="glass-effect1"/> <system file="glass-effect"/>
<system file="a320-fcs"/> <system file="a320-fcs"/>
<system file="a320-fuel"/> <system file="a320-fuel"/>
<system file="a320-fwc"/> <system file="a320-fwc"/>

View file

@ -2,7 +2,7 @@
<!-- Copyright (c) 2019 Joshua Davidson (Octal450) --> <!-- Copyright (c) 2019 Joshua Davidson (Octal450) -->
<PropertyList> <PropertyList include="Aircraft/Generic/Human/Include/walker-include.xml">
<sim> <sim>
<author>Joshua Davidson (Octal450), Jonathan Redpath (legoboyvdlp), Thorsten Herrmann (TH-555), Based on IDG-A32X</author> <author>Joshua Davidson (Octal450), Jonathan Redpath (legoboyvdlp), Thorsten Herrmann (TH-555), Based on IDG-A32X</author>
@ -45,13 +45,14 @@
<ice-inches>0.0</ice-inches> <ice-inches>0.0</ice-inches>
<salvage-control>/controls/deice/windowprobeheat</salvage-control> <salvage-control>/controls/deice/windowprobeheat</salvage-control>
<sensitivity type="double">0.5</sensitivity> <sensitivity type="double">0.5</sensitivity>
<!-- not relevant for fdm, ignore output-property --> <output-property>/environment/aircraft-effects/frost-inch</output-property>
</iceable> </iceable>
<iceable> <iceable>
<name>Fuselage</name> <name>Fuselage</name>
<ice-inches>0.0</ice-inches> <ice-inches>0.0</ice-inches>
<!-- no salvage control, no deicing of the fuselage --> <!-- salvage control: de-icing truck -->
<sensitivity type="double">0.3</sensitivity> <sensitivity type="double">0.3</sensitivity>
<salvage-control>services/deicing_truck/deicing/position-norm</salvage-control>
<output-property>/fdm/jsbsim/ice/fuselage</output-property> <output-property>/fdm/jsbsim/ice/fuselage</output-property>
</iceable> </iceable>
<iceable> <iceable>
@ -459,6 +460,12 @@
</fuel> </fuel>
</consumables> </consumables>
<environment>
<aircraft-effects>
<frost-inch type="double">0</frost-inch>
</aircraft-effects>
</environment>
<fdm> <fdm>
<jsbsim> <jsbsim>
<external_reactions> <external_reactions>
@ -1676,6 +1683,33 @@
<script>libraries.resetView();</script> <script>libraries.resetView();</script>
</binding> </binding>
</key> </key>
<key n="105">
<name>i</name>
<desc>Change view to lights</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>nasal</command>
<script>libraries.lightsView();</script>
</binding>
</key>
<key n="111">
<name>o</name>
<desc>Change view to overhead</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>nasal</command>
<script>libraries.overheadView();</script>
</binding>
</key>
<key n="117">
<name>u</name>
<desc>Change view to pedestal</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>nasal</command>
<script>libraries.pedestalView();</script>
</binding>
</key>
<key n="120"> <key n="120">
<name>x</name> <name>x</name>
<desc>Decrease field of view</desc> <desc>Decrease field of view</desc>
@ -1685,6 +1719,15 @@
<script>libraries.fovZoom(-1);</script> <script>libraries.fovZoom(-1);</script>
</binding> </binding>
</key> </key>
<key n="121">
<name>y</name>
<desc>Change view to autopilot</desc>
<repeatable type="bool">true</repeatable>
<binding>
<command>nasal</command>
<script>libraries.autopilotView();</script>
</binding>
</key>
<key n="127"> <key n="127">
<name>DEL</name> <name>DEL</name>
<desc>Simple Engage/Disengage reversers</desc> <desc>Simple Engage/Disengage reversers</desc>
@ -1800,6 +1843,12 @@
<value>0</value> <value>0</value>
<value>1</value> <value>1</value>
</binding> </binding>
<binding>
<command>property-cycle</command>
<property>sim/rendering/als-secondary-lights/use-searchlight</property>
<value>0</value>
<value>1</value>
</binding>
</key> </key>
</keyboard> </keyboard>
</input> </input>
@ -1870,6 +1919,7 @@
<file>Aircraft/A320-family/Nasal/MCDU/MCDU.nas</file> <file>Aircraft/A320-family/Nasal/MCDU/MCDU.nas</file>
<file>Aircraft/A320-family/Nasal/MCDU/INITA.nas</file> <file>Aircraft/A320-family/Nasal/MCDU/INITA.nas</file>
<file>Aircraft/A320-family/Nasal/MCDU/INITB.nas</file> <file>Aircraft/A320-family/Nasal/MCDU/INITB.nas</file>
<file>Aircraft/A320-family/Nasal/MCDU/PERFAPPR.nas</file>
<file>Aircraft/A320-family/Nasal/MCDU/PERFCLB.nas</file> <file>Aircraft/A320-family/Nasal/MCDU/PERFCLB.nas</file>
<file>Aircraft/A320-family/Nasal/MCDU/PERFCRZ.nas</file> <file>Aircraft/A320-family/Nasal/MCDU/PERFCRZ.nas</file>
<file>Aircraft/A320-family/Nasal/MCDU/PERFDES.nas</file> <file>Aircraft/A320-family/Nasal/MCDU/PERFDES.nas</file>
@ -1931,6 +1981,9 @@
<file>Aircraft/A320-family/gui/dialogs/refuel.nas</file> <file>Aircraft/A320-family/gui/dialogs/refuel.nas</file>
<file>Aircraft/A320-family/gui/dialogs/rmp.nas</file> <file>Aircraft/A320-family/gui/dialogs/rmp.nas</file>
</Dialogs> </Dialogs>
<save>
<file>Aircraft/A320-family/Nasal/Systems/save.nas</file>
</save>
</nasal> </nasal>
</PropertyList> </PropertyList>

View file

@ -159,7 +159,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
</tank> </tank>
</propulsion> </propulsion>
<system file="glass-effect1"/> <system file="glass-effect"/>
<system file="a320-fcs"/> <system file="a320-fcs"/>
<system file="a320-fuel"/> <system file="a320-fuel"/>
<system file="a320-fwc"/> <system file="a320-fwc"/>

View file

@ -159,7 +159,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
</tank> </tank>
</propulsion> </propulsion>
<system file="glass-effect1"/> <system file="glass-effect"/>
<system file="a320-fcs"/> <system file="a320-fcs"/>
<system file="a320-fuel"/> <system file="a320-fuel"/>
<system file="a320-fwc"/> <system file="a320-fwc"/>

View file

@ -96,6 +96,7 @@ setprop("systems/acconfig/options/weight-kgs", 0);
setprop("systems/acconfig/options/adirs-skip", 0); setprop("systems/acconfig/options/adirs-skip", 0);
setprop("systems/acconfig/options/welcome-skip", 0); setprop("systems/acconfig/options/welcome-skip", 0);
setprop("systems/acconfig/options/no-rendering-warn", 0); setprop("systems/acconfig/options/no-rendering-warn", 0);
setprop("systems/acconfig/options/save-state", 0);
setprop("systems/acconfig/options/pfd-rate", 1); setprop("systems/acconfig/options/pfd-rate", 1);
setprop("systems/acconfig/options/nd-rate", 1); setprop("systems/acconfig/options/nd-rate", 1);
setprop("systems/acconfig/options/uecam-rate", 1); setprop("systems/acconfig/options/uecam-rate", 1);
@ -187,9 +188,17 @@ setlistener("/sim/signals/fdm-initialized", func {
} }
setprop("systems/acconfig/options/revision", current_revision); setprop("systems/acconfig/options/revision", current_revision);
writeSettings(); writeSettings();
if (getprop("options/system/save-state") == 1)
{
save.restore(save.default, getprop("sim/fg-home") ~ "/Export/" ~ getprop("sim/aircraft") ~ "-save.xml");
}
spinning.stop(); spinning.stop();
}); });
setlistener("/sim/signals/exit", func {
save.save(save.default, getprop("sim/fg-home") ~ "/Export/" ~ getprop("sim/aircraft") ~ "-save.xml");
});
var renderingSettings = { var renderingSettings = {
check: func() { check: func() {
var rembrandt = getprop("sim/rendering/rembrandt/enabled"); var rembrandt = getprop("sim/rendering/rembrandt/enabled");
@ -223,6 +232,7 @@ var readSettings = func {
io.read_properties(getprop("sim/fg-home") ~ "/Export/A320-family-config.xml", "/systems/acconfig/options"); io.read_properties(getprop("sim/fg-home") ~ "/Export/A320-family-config.xml", "/systems/acconfig/options");
setprop("options/system/keyboard-mode", getprop("systems/acconfig/options/keyboard-mode")); setprop("options/system/keyboard-mode", getprop("systems/acconfig/options/keyboard-mode"));
setprop("options/system/weight-kgs", getprop("systems/acconfig/options/weight-kgs")); setprop("options/system/weight-kgs", getprop("systems/acconfig/options/weight-kgs"));
setprop("options/system/save-state", getprop("systems/acconfig/options/save-state"));
setprop("controls/adirs/skip", getprop("systems/acconfig/options/adirs-skip")); setprop("controls/adirs/skip", getprop("systems/acconfig/options/adirs-skip"));
setprop("sim/model/autopush/route/show", getprop("systems/acconfig/options/autopush/show-route")); setprop("sim/model/autopush/route/show", getprop("systems/acconfig/options/autopush/show-route"));
setprop("sim/model/autopush/route/show-wingtip", getprop("systems/acconfig/options/autopush/show-wingtip")); setprop("sim/model/autopush/route/show-wingtip", getprop("systems/acconfig/options/autopush/show-wingtip"));
@ -232,6 +242,7 @@ var readSettings = func {
var writeSettings = func { var writeSettings = func {
setprop("systems/acconfig/options/keyboard-mode", getprop("options/system/keyboard-mode")); setprop("systems/acconfig/options/keyboard-mode", getprop("options/system/keyboard-mode"));
setprop("systems/acconfig/options/weight-kgs", getprop("options/system/weight-kgs")); setprop("systems/acconfig/options/weight-kgs", getprop("options/system/weight-kgs"));
setprop("systems/acconfig/options/save-state", getprop("options/system/save-state"));
setprop("systems/acconfig/options/adirs-skip", getprop("controls/adirs/skip")); setprop("systems/acconfig/options/adirs-skip", getprop("controls/adirs/skip"));
setprop("systems/acconfig/options/autopush/show-route", getprop("sim/model/autopush/route/show")); setprop("systems/acconfig/options/autopush/show-route", getprop("sim/model/autopush/route/show"));
setprop("systems/acconfig/options/autopush/show-wingtip", getprop("sim/model/autopush/route/show-wingtip")); setprop("systems/acconfig/options/autopush/show-wingtip", getprop("sim/model/autopush/route/show-wingtip"));

View file

@ -426,6 +426,27 @@
</binding> </binding>
<live>true</live> <live>true</live>
</checkbox> </checkbox>
<checkbox>
<!-- TODO there might be a better way to formulate this. -->
<label>Save states between sessions</label>
<halign>left</halign>
<property>/systems/acconfig/options/save-state</property>
<binding>
<command>property-toggle</command>
<property>/options/system/save-state</property>
</binding>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>nasal</command>
<script>
acconfig.writeSettings();
</script>
</binding>
<live>true</live>
</checkbox>
<group> <group>
<layout>hbox</layout> <layout>hbox</layout>

View file

@ -386,6 +386,16 @@
</offsets> </offsets>
</model> </model>
<!-- wing condensation effect -->
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-L.xml</path>
<name>wing-condensation</name>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-R.xml</path>
<name>wing-condensation</name>
</model>
<!-- Other non-aircraft models --> <!-- Other non-aircraft models -->
<model> <model>
<name>Pushback</name> <name>Pushback</name>
@ -397,7 +407,7 @@
</offsets> </offsets>
</model> </model>
<!--Firetruck--> <!-- Firetruck -->
<model> <model>
<name>Firetruck1</name> <name>Firetruck1</name>

View file

@ -335,86 +335,96 @@
</offsets> </offsets>
</model> </model>
<!-- Tire smoke and spray effects --> <!-- Tire smoke and spray effects -->
<model> <model>
<path>Aircraft/Generic/Effects/tyre-smoke-nose.xml</path> <path>Aircraft/Generic/Effects/tyre-smoke-nose.xml</path>
<name>tyre-smoke-n</name> <name>tyre-smoke-n</name>
<offsets> <offsets>
<x-m>7.83</x-m> <x-m>7.83</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-3.9669424</z-m> <z-m>-3.9669424</z-m>
</offsets> </offsets>
</model> </model>
<model> <model>
<path>Aircraft/Generic/Effects/tyre-smoke-port.xml</path> <path>Aircraft/Generic/Effects/tyre-smoke-port.xml</path>
<name>tyre-smoke-p</name> <name>tyre-smoke-p</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/tyre-smoke-stbd.xml</path>
<name>tyre-smoke-s</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-nose.xml</path>
<name>rain-splash-n</name>
<offsets>
<x-m>7.83</x-m>
<y-m>0</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-port.xml</path>
<name>rain-splash-p</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-stbd.xml</path>
<name>rain-splash-s</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-left.xml</path>
<name>tire-smoke-l</name>
<offsets> <offsets>
<x-m>20.3180764</x-m> <x-m>20.3180764</x-m>
<y-m>-3.795</y-m> <y-m>-3.795</y-m>
<z-m>-3.9669424</z-m> <z-m>-3.9669424</z-m>
</offsets> </offsets>
</model> </model>
<model> <model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-right.xml</path> <path>Aircraft/Generic/Effects/tyre-smoke-stbd.xml</path>
<name>tire-smoke-r</name> <name>tyre-smoke-s</name>
<offsets> <offsets>
<x-m>20.3180764</x-m> <x-m>20.3180764</x-m>
<y-m>3.795</y-m> <y-m>3.795</y-m>
<z-m>-3.9669424</z-m> <z-m>-3.9669424</z-m>
</offsets> </offsets>
</model> </model>
<model>
<path>Aircraft/Generic/Effects/rain-nose.xml</path>
<name>rain-splash-n</name>
<offsets>
<x-m>7.83</x-m>
<y-m>0</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-port.xml</path>
<name>rain-splash-p</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-stbd.xml</path>
<name>rain-splash-s</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-left.xml</path>
<name>tire-smoke-l</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-right.xml</path>
<name>tire-smoke-r</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<!-- wing condensation effect -->
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-L.xml</path>
<name>wing-condensation</name>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-R.xml</path>
<name>wing-condensation</name>
</model>
<!-- Other non-aircraft models --> <!-- Other non-aircraft models -->
<model> <model>

View file

@ -335,87 +335,97 @@
</offsets> </offsets>
</model> </model>
<!-- Tire smoke and spray effects --> <!-- Tire smoke and spray effects -->
<model> <model>
<path>Aircraft/Generic/Effects/tyre-smoke-nose.xml</path> <path>Aircraft/Generic/Effects/tyre-smoke-nose.xml</path>
<name>tyre-smoke-n</name> <name>tyre-smoke-n</name>
<offsets> <offsets>
<x-m>7.83</x-m> <x-m>7.83</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-3.9669424</z-m> <z-m>-3.9669424</z-m>
</offsets> </offsets>
</model> </model>
<model> <model>
<path>Aircraft/Generic/Effects/tyre-smoke-port.xml</path> <path>Aircraft/Generic/Effects/tyre-smoke-port.xml</path>
<name>tyre-smoke-p</name> <name>tyre-smoke-p</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/tyre-smoke-stbd.xml</path>
<name>tyre-smoke-s</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-nose.xml</path>
<name>rain-splash-n</name>
<offsets>
<x-m>7.83</x-m>
<y-m>0</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-port.xml</path>
<name>rain-splash-p</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-stbd.xml</path>
<name>rain-splash-s</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-left.xml</path>
<name>tire-smoke-l</name>
<offsets> <offsets>
<x-m>20.3180764</x-m> <x-m>20.3180764</x-m>
<y-m>-3.795</y-m> <y-m>-3.795</y-m>
<z-m>-3.9669424</z-m> <z-m>-3.9669424</z-m>
</offsets> </offsets>
</model> </model>
<model> <model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-right.xml</path> <path>Aircraft/Generic/Effects/tyre-smoke-stbd.xml</path>
<name>tire-smoke-r</name> <name>tyre-smoke-s</name>
<offsets> <offsets>
<x-m>20.3180764</x-m> <x-m>20.3180764</x-m>
<y-m>3.795</y-m> <y-m>3.795</y-m>
<z-m>-3.9669424</z-m> <z-m>-3.9669424</z-m>
</offsets> </offsets>
</model> </model>
<model>
<path>Aircraft/Generic/Effects/rain-nose.xml</path>
<name>rain-splash-n</name>
<offsets>
<x-m>7.83</x-m>
<y-m>0</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-port.xml</path>
<name>rain-splash-p</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-stbd.xml</path>
<name>rain-splash-s</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-left.xml</path>
<name>tire-smoke-l</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-right.xml</path>
<name>tire-smoke-r</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<!-- wing condensation effect -->
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-L.xml</path>
<name>wing-condensation</name>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-R.xml</path>
<name>wing-condensation</name>
</model>
<!-- Other non-aircraft models --> <!-- Other non-aircraft models -->
<model> <model>
<name>Pushback</name> <name>Pushback</name>
@ -426,43 +436,43 @@
<z-m>-4.24</z-m> <z-m>-4.24</z-m>
</offsets> </offsets>
</model> </model>
<!-- Firetruck -->
<!--Firetruck--> <model>
<name>Firetruck1</name>
<model> <path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path>
<name>Firetruck1</name> <offsets>
<path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path> <x-m>60.0</x-m>
<offsets> <y-m>10.0</y-m>
<x-m>60.0</x-m> <z-m>-4.4</z-m>
<y-m>10.0</y-m> </offsets>
<z-m>-4.4</z-m> </model>
</offsets>
</model> <model>
<name>Firetruck2</name>
<model> <path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path>
<name>Firetruck2</name> <offsets>
<path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path> <x-m>80.0</x-m>
<offsets> <y-m>-8.0</y-m>
<x-m>80.0</x-m> <z-m>-4.4</z-m>
<y-m>-8.0</y-m> </offsets>
<z-m>-4.4</z-m> </model>
</offsets>
</model> <animation>
<type>select</type>
<animation> <object-name>Firetruck1</object-name>
<type>select</type> <object-name>Firetruck2</object-name>
<object-name>Firetruck1</object-name> <condition>
<object-name>Firetruck2</object-name> <and>
<condition> <property>sim/animation/fire-services</property>
<and> <less-than>
<property>sim/animation/fire-services</property> <property>velocities/groundspeed-kt</property>
<less-than> <value>40</value>
<property>velocities/groundspeed-kt</property> </less-than>
<value>40</value> </and>
</less-than> </condition>
</and> </animation>
</condition>
</animation>
<!-- LIVERY SELECT --> <!-- LIVERY SELECT -->
<!-- Animation --> <!-- Animation -->

View file

@ -395,6 +395,16 @@
</offsets> </offsets>
</model> </model>
<!-- wing condensation effect -->
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-L.xml</path>
<name>wing-condensation</name>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-R.xml</path>
<name>wing-condensation</name>
</model>
<!-- Other non-aircraft models --> <!-- Other non-aircraft models -->
<model> <model>
<name>Pushback</name> <name>Pushback</name>
@ -406,42 +416,42 @@
</offsets> </offsets>
</model> </model>
<!--Firetruck--> <!-- Firetruck -->
<model> <model>
<name>Firetruck1</name> <name>Firetruck1</name>
<path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path> <path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path>
<offsets> <offsets>
<x-m>60.0</x-m> <x-m>60.0</x-m>
<y-m>10.0</y-m> <y-m>10.0</y-m>
<z-m>-4.4</z-m> <z-m>-4.4</z-m>
</offsets> </offsets>
</model> </model>
<model> <model>
<name>Firetruck2</name> <name>Firetruck2</name>
<path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path> <path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path>
<offsets> <offsets>
<x-m>80.0</x-m> <x-m>80.0</x-m>
<y-m>-8.0</y-m> <y-m>-8.0</y-m>
<z-m>-4.4</z-m> <z-m>-4.4</z-m>
</offsets> </offsets>
</model> </model>
<animation> <animation>
<type>select</type> <type>select</type>
<object-name>Firetruck1</object-name> <object-name>Firetruck1</object-name>
<object-name>Firetruck2</object-name> <object-name>Firetruck2</object-name>
<condition> <condition>
<and> <and>
<property>sim/animation/fire-services</property> <property>sim/animation/fire-services</property>
<less-than> <less-than>
<property>velocities/groundspeed-kt</property> <property>velocities/groundspeed-kt</property>
<value>40</value> <value>40</value>
</less-than> </less-than>
</and> </and>
</condition> </condition>
</animation> </animation>
<!-- LIVERY SELECT --> <!-- LIVERY SELECT -->
<!-- Animation --> <!-- Animation -->

View file

@ -314,86 +314,96 @@
</offsets> </offsets>
</model> </model>
<!-- Tire smoke and spray effects --> <!-- Tire smoke and spray effects -->
<model> <model>
<path>Aircraft/Generic/Effects/tyre-smoke-nose.xml</path> <path>Aircraft/Generic/Effects/tyre-smoke-nose.xml</path>
<name>tyre-smoke-n</name> <name>tyre-smoke-n</name>
<offsets> <offsets>
<x-m>7.83</x-m> <x-m>7.83</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-3.9669424</z-m> <z-m>-3.9669424</z-m>
</offsets> </offsets>
</model> </model>
<model> <model>
<path>Aircraft/Generic/Effects/tyre-smoke-port.xml</path> <path>Aircraft/Generic/Effects/tyre-smoke-port.xml</path>
<name>tyre-smoke-p</name> <name>tyre-smoke-p</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/tyre-smoke-stbd.xml</path>
<name>tyre-smoke-s</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-nose.xml</path>
<name>rain-splash-n</name>
<offsets>
<x-m>7.83</x-m>
<y-m>0</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-port.xml</path>
<name>rain-splash-p</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-stbd.xml</path>
<name>rain-splash-s</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-left.xml</path>
<name>tire-smoke-l</name>
<offsets> <offsets>
<x-m>20.3180764</x-m> <x-m>20.3180764</x-m>
<y-m>-3.795</y-m> <y-m>-3.795</y-m>
<z-m>-3.9669424</z-m> <z-m>-3.9669424</z-m>
</offsets> </offsets>
</model> </model>
<model> <model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-right.xml</path> <path>Aircraft/Generic/Effects/tyre-smoke-stbd.xml</path>
<name>tire-smoke-r</name> <name>tyre-smoke-s</name>
<offsets> <offsets>
<x-m>20.3180764</x-m> <x-m>20.3180764</x-m>
<y-m>3.795</y-m> <y-m>3.795</y-m>
<z-m>-3.9669424</z-m> <z-m>-3.9669424</z-m>
</offsets> </offsets>
</model> </model>
<model>
<path>Aircraft/Generic/Effects/rain-nose.xml</path>
<name>rain-splash-n</name>
<offsets>
<x-m>7.83</x-m>
<y-m>0</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-port.xml</path>
<name>rain-splash-p</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/Generic/Effects/rain-stbd.xml</path>
<name>rain-splash-s</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-left.xml</path>
<name>tire-smoke-l</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>-3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/tire-smoke-right.xml</path>
<name>tire-smoke-r</name>
<offsets>
<x-m>20.3180764</x-m>
<y-m>3.795</y-m>
<z-m>-3.9669424</z-m>
</offsets>
</model>
<!-- wing condensation effect -->
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-L.xml</path>
<name>wing-condensation</name>
</model>
<model>
<path>Aircraft/A320-family/Models/Effects/wing-condensation-R.xml</path>
<name>wing-condensation</name>
</model>
<!-- Other non-aircraft models --> <!-- Other non-aircraft models -->
<model> <model>
@ -406,42 +416,42 @@
</offsets> </offsets>
</model> </model>
<!--Firetruck--> <!-- Firetruck -->
<model> <model>
<name>Firetruck1</name> <name>Firetruck1</name>
<path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path> <path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path>
<offsets> <offsets>
<x-m>60.0</x-m> <x-m>60.0</x-m>
<y-m>10.0</y-m> <y-m>10.0</y-m>
<z-m>-4.4</z-m> <z-m>-4.4</z-m>
</offsets> </offsets>
</model> </model>
<model> <model>
<name>Firetruck2</name> <name>Firetruck2</name>
<path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path> <path>Models/Airport/Vehicle/hoskosh-ti-1500.ac</path>
<offsets> <offsets>
<x-m>80.0</x-m> <x-m>80.0</x-m>
<y-m>-8.0</y-m> <y-m>-8.0</y-m>
<z-m>-4.4</z-m> <z-m>-4.4</z-m>
</offsets> </offsets>
</model> </model>
<animation> <animation>
<type>select</type> <type>select</type>
<object-name>Firetruck1</object-name> <object-name>Firetruck1</object-name>
<object-name>Firetruck2</object-name> <object-name>Firetruck2</object-name>
<condition> <condition>
<and> <and>
<property>sim/animation/fire-services</property> <property>sim/animation/fire-services</property>
<less-than> <less-than>
<property>velocities/groundspeed-kt</property> <property>velocities/groundspeed-kt</property>
<value>40</value> <value>40</value>
</less-than> </less-than>
</and> </and>
</condition> </condition>
</animation> </animation>
<!-- LIVERY SELECT --> <!-- LIVERY SELECT -->
<!-- Animation --> <!-- Animation -->

View file

@ -0,0 +1,146 @@
<?xml version="1.0"?>
<PropertyList>
<particlesystem>
<!-- <type>trail</type>-->
<name>moisture</name>
<texture>res/smoke.png</texture>
<emissive>false</emissive>
<lighting>false</lighting>
<offsets>
<x-m>0.3</x-m>
<y-m>0</y-m>
<z-m>-1.3</z-m>
<pitch-deg>0</pitch-deg>
</offsets>
<attach>local</attach>
<placer>
<type>point</type>
</placer>
<shooter>
<theta-min-deg>0</theta-min-deg>
<theta-max-deg>0</theta-max-deg>
<phi-min-deg>0</phi-min-deg>
<phi-max-deg>0</phi-max-deg>
<speed>
<value>0</value>
<spread>0</spread>
</speed>
<rotation-speed>
<x-min-deg-sec>180</x-min-deg-sec>
<y-min-deg-sec>180</y-min-deg-sec>
<z-min-deg-sec>180</z-min-deg-sec>
<x-max-deg-sec>-180</x-max-deg-sec>
<y-max-deg-sec>-180</y-max-deg-sec>
<z-max-deg-sec>-180</z-max-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<value>50</value>
<spread>0</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</red>
<green>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</green>
<blue>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</blue>
<alpha>
<expression>
<product>
<value>0.002</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</alpha>
</color>
<size>
<value>1.3</value>
</size>
</start>
<end>
<color>
<red>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</red>
<green>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</green>
<blue>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</blue>
<alpha>
<expression>
<product>
<value>0.0008</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</alpha>
</color>
<size>
<value>1.6</value>
</size>
</end>
<life-sec><value>0.0001</value></life-sec>
<mass-kg>0.4</mass-kg>
<radius-m>0.1</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity type="bool">false</gravity>
<wind type="bool">false</wind>
</program>
</particlesystem>
</PropertyList>

View file

@ -8,10 +8,10 @@
<emissive>false</emissive> <emissive>false</emissive>
<lighting>false</lighting> <lighting>false</lighting>
<offsets> <offsets>
<x-m>3</x-m> <x-m>0.3</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>0</z-m> <z-m>-1</z-m>
<pitch-deg>-90</pitch-deg> <pitch-deg>0</pitch-deg>
</offsets> </offsets>
<attach>local</attach> <attach>local</attach>
@ -30,18 +30,18 @@
<spread>0</spread> <spread>0</spread>
</speed> </speed>
<rotation-speed> <rotation-speed>
<x-min-deg-sec>0</x-min-deg-sec> <x-min-deg-sec>180</x-min-deg-sec>
<y-min-deg-sec>0</y-min-deg-sec> <y-min-deg-sec>180</y-min-deg-sec>
<z-min-deg-sec>0</z-min-deg-sec> <z-min-deg-sec>180</z-min-deg-sec>
<x-max-deg-sec>0</x-max-deg-sec> <x-max-deg-sec>-180</x-max-deg-sec>
<y-max-deg-sec>0</y-max-deg-sec> <y-max-deg-sec>-180</y-max-deg-sec>
<z-max-deg-sec>0</z-max-deg-sec> <z-max-deg-sec>-180</z-max-deg-sec>
</rotation-speed> </rotation-speed>
</shooter> </shooter>
<counter> <counter>
<particles-per-sec> <particles-per-sec>
<value>150</value> <value>50</value>
<spread>0</spread> <spread>0</spread>
</particles-per-sec> </particles-per-sec>
</counter> </counter>
@ -54,33 +54,38 @@
<red> <red>
<expression> <expression>
<product> <product>
<value>1.0</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</red> </red>
<green> <green>
<expression> <expression>
<product> <product>
<value>1.0</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</green> </green>
<blue> <blue>
<expression> <expression>
<product> <product>
<value>1.0</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</blue> </blue>
<alpha> <alpha>
<value>0.00000001</value> <expression>
<product>
<value>0.003</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</alpha> </alpha>
</color> </color>
<size> <size>
<value>1</value> <value>1.0</value>
</size> </size>
</start> </start>
@ -89,44 +94,49 @@
<red> <red>
<expression> <expression>
<product> <product>
<value>0.7</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</red> </red>
<green> <green>
<expression> <expression>
<product> <product>
<value>0.7</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</green> </green>
<blue> <blue>
<expression> <expression>
<product> <product>
<value>0.7</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</blue> </blue>
<alpha> <alpha>
<value>0.3</value> <expression>
<product>
<value>0.0009</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</alpha> </alpha>
</color> </color>
<size> <size>
<value>2</value> <value>1.4</value>
</size> </size>
</end> </end>
<life-sec><value>0.4</value></life-sec> <life-sec><value>0.0001</value></life-sec>
<mass-kg>0.4</mass-kg> <mass-kg>0.4</mass-kg>
<radius-m>0.1</radius-m> <radius-m>0.1</radius-m>
</particle> </particle>
<program> <program>
<fluid>air</fluid> <fluid>air</fluid>
<gravity type="bool">true</gravity> <gravity type="bool">false</gravity>
<wind type="bool">false</wind> <wind type="bool">false</wind>
</program> </program>

View file

@ -5,133 +5,149 @@
<particlesystem> <particlesystem>
<name>engine-spray-reverse</name> <name>engine-spray-reverse</name>
<texture>res/smoke.png</texture> <texture>res/smoke.png</texture>
<emissive type="bool">false</emissive> <emissive>false</emissive>
<lighting type="bool">false</lighting> <lighting>false</lighting>
<offsets>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
<pitch-deg>180</pitch-deg>
</offsets>
<attach>world</attach> <attach>world</attach>
<placer> <placer>
<type>point</type> <type>segments</type>
</placer> <vertex>
<x-m>1</x-m>
<y-m>3</y-m>
<z-m>-1</z-m>
</vertex>
<vertex>
<x-m>1</x-m>
<y-m>-3</y-m>
<z-m>-1</z-m>
</vertex>
</placer>
<shooter> <shooter>
<theta-min-deg>-1.5</theta-min-deg> <theta-min-deg>0</theta-min-deg>
<theta-max-deg>1.5</theta-max-deg> <theta-max-deg>0</theta-max-deg>
<phi-min-deg>-1.5</phi-min-deg> <phi-min-deg>0</phi-min-deg>
<phi-max-deg>1.5</phi-max-deg> <phi-max-deg>0</phi-max-deg>
<speed-mps> <speed-mps>
<value>0</value> <value>10</value>
<spread>0</spread> <spread>1</spread>
</speed-mps> </speed-mps>
<rotation-speed> <rotation-speed>
<x-min-deg-sec>0</x-min-deg-sec> <x-max-deg-sec>180</x-max-deg-sec>
<y-min-deg-sec>0</y-min-deg-sec> <x-min-deg-sec>-180</x-min-deg-sec>
<z-min-deg-sec>0</z-min-deg-sec> <y-max-deg-sec>180</y-max-deg-sec>
<x-max-deg-sec>0</x-max-deg-sec> <y-min-deg-sec>-180</y-min-deg-sec>
<y-max-deg-sec>0</y-max-deg-sec> <z-max-deg-sec>180</z-max-deg-sec>
<z-max-deg-sec>0</z-max-deg-sec> <z-min-deg-sec>-180</z-min-deg-sec>
</rotation-speed> </rotation-speed>
</shooter> </shooter>
<counter> <counter>
<particles-per-sec> <particles-per-sec>
<value>50</value> <expression>
<spread>0</spread> <product>
<property>environment/surface/wetness</property>
<value>50</value>
</product>
</expression>
<spread>0</spread>
</particles-per-sec> </particles-per-sec>
</counter> </counter>
<align>billboard</align> <align>billboard</align>
<particle> <particle>
<start> <start>
<color> <color>
<red> <red>
<expression> <expression>
<product> <product>
<value>0.7</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</red> </red>
<green> <green>
<expression> <expression>
<product> <product>
<value>0.7</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</green> </green>
<blue> <blue>
<expression> <expression>
<product> <product>
<value>0.7</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</blue> </blue>
<alpha> <alpha>
<value>0.3</value> <expression>
<product>
<value>0.2</value>
<property>environment/surface/wetness</property>
</product>
</expression>
</alpha> </alpha>
</color> </color>
<size> <size>
<value>2</value> <value>5</value>
</size> </size>
</start> </start>
<end>
<end>
<color> <color>
<red> <red>
<expression> <expression>
<product> <product>
<value>1.0</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</red> </red>
<green> <green>
<expression> <expression>
<product> <product>
<value>1.0</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</green> </green>
<blue> <blue>
<expression> <expression>
<product> <product>
<value>1.0</value> <value>0.01</value>
<property>rendering/scene/diffuse/red</property> <property>environment/relative-humidity</property>
</product> </product>
</expression> </expression>
</blue> </blue>
<alpha> <alpha>
<value>0.00000001</value> <expression>
<product>
<value>0.1</value>
<property>environment/surface/wetness</property>
</product>
</expression>
</alpha> </alpha>
</color> </color>
<size> <size>
<value>3</value> <value>10</value>
</size> </size>
</end> </end>
<life-sec>
<life-sec> <value>0.5</value>
<value>0.4</value> </life-sec>
</life-sec> <mass-kg>0.025</mass-kg>
<radius-m>0.175</radius-m>
<mass-kg>0.5</mass-kg>
<radius-m>0.1</radius-m>
</particle> </particle>
<program> <program>
<fluid>air</fluid> <fluid>air</fluid>
<gravity type="bool">true</gravity> <gravity>true</gravity>
<wind typ="bool">true</wind> <wind>true</wind>
</program> </program>
</particlesystem> </particlesystem>
</PropertyList> </PropertyList>

View file

@ -25,29 +25,34 @@
</placer> </placer>
<shooter> <shooter>
<theta-min-deg>15</theta-min-deg> <theta-min-deg>0</theta-min-deg>
<theta-max-deg>60</theta-max-deg> <theta-max-deg>0</theta-max-deg>
<phi-min-deg>-5</phi-min-deg> <phi-min-deg>0</phi-min-deg>
<phi-max-deg>5</phi-max-deg> <phi-max-deg>0</phi-max-deg>
<speed-mps> <speed-mps>
<value>250</value> <value>250</value>
<spread>15</spread> <spread>15</spread>
</speed-mps> </speed-mps>
<rotation-speed> <rotation-speed>
<x-max-deg-sec>15</x-max-deg-sec> <x-max-deg-sec>180</x-max-deg-sec>
<x-min-deg-sec>-15</x-min-deg-sec> <x-min-deg-sec>-180</x-min-deg-sec>
<y-max-deg-sec>15</y-max-deg-sec> <y-max-deg-sec>180</y-max-deg-sec>
<y-min-deg-sec>-15</y-min-deg-sec> <y-min-deg-sec>-180</y-min-deg-sec>
<z-max-deg-sec>15</z-max-deg-sec> <z-max-deg-sec>180</z-max-deg-sec>
<z-min-deg-sec>-15</z-min-deg-sec> <z-min-deg-sec>-180</z-min-deg-sec>
</rotation-speed> </rotation-speed>
</shooter> </shooter>
<counter> <counter>
<particles-per-sec> <particles-per-sec>
<value>100</value> <expression>
<product>
<property>environment/surface/wetness</property>
<value>100</value>
</product>
</expression>
<spread>10</spread> <spread>10</spread>
</particles-per-sec> </particles-per-sec>
</counter> </counter>
<align>billboard</align> <align>billboard</align>
@ -55,26 +60,82 @@
<particle> <particle>
<start> <start>
<color> <color>
<red><value>0.9</value></red> <red>
<green><value>0.9</value></green> <expression>
<blue><value>0.9</value></blue> <product>
<alpha><value>0.04</value></alpha> <value>0.01</value>
</color> <property>environment/relative-humidity</property>
<size> </product>
<value>0.5</value> </expression>
</size> </red>
</start> <green>
<end> <expression>
<color> <product>
<red><value>1</value></red> <value>0.01</value>
<green><value>1</value></green> <property>environment/relative-humidity</property>
<blue><value>1</value></blue> </product>
<alpha><value>0.02</value></alpha> </expression>
</color> </green>
<size> <blue>
<value>10</value> <expression>
</size> <product>
</end> <value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</blue>
<alpha>
<expression>
<product>
<property>environment/surface/wetness</property>
<value>0.05</value>
</product>
</expression>
</alpha>
</color>
<size>
<value>5</value>
</size>
</start>
<end>
<color>
<red>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</red>
<green>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</green>
<blue>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</blue>
<alpha>
<expression>
<product>
<property>environment/surface/wetness</property>
<value>0.02</value>
</product>
</expression>
</alpha>
</color>
<size>
<value>10</value>
</size>
</end>
<life-sec> <life-sec>
<value>1.0</value> <value>1.0</value>
</life-sec> </life-sec>

View file

@ -0,0 +1,261 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<particlesystem>
<name>wing-condensation</name>
<texture>res/smoke.png</texture>
<emissive>false</emissive>
<lighting>false</lighting>
<type>normal</type>
<attach>local</attach>
<condition>
<and>
<or>
<greater-than-equals>
<expression>
<sum>
<product>
<property>environment/relative-humidity</property>
<value>0.1</value>
</product>
<property>systems/navigation/adr/output/aoa-1</property>
</sum>
</expression>
<value>13.5</value>
</greater-than-equals>
<greater-than-equals>
<expression>
<sum>
<product>
<property>environment/relative-humidity</property>
<value>0.1</value>
</product>
<property>systems/navigation/adr/output/aoa-2</property>
</sum>
</expression>
<value>13.5</value>
</greater-than-equals>
<greater-than-equals>
<expression>
<sum>
<product>
<property>environment/relative-humidity</property>
<value>0.1</value>
</product>
<property>systems/navigation/adr/output/aoa-3</property>
</sum>
</expression>
<value>13.5</value>
</greater-than-equals>
</or>
<greater-than>
<property>velocities/groundspeed-kt</property>
<value>100</value>
</greater-than>
<less-than>
<property>velocities/groundspeed-kt</property>
<value>210</value>
</less-than>
<greater-than>
<property>environment/relative-humidity</property>
<value>50</value>
</greater-than>
<less-than-equals>
<property>environment/temperature-degc</property>
<value>28</value>
</less-than-equals>
<greater-than>
<property>position/altitude-agl-ft</property>
<value>0</value>
</greater-than>
<less-than>
<property>position/altitude-agl-ft</property>
<value>8000</value>
</less-than>
<or>
<greater-than>
<property>systems/navigation/adr/output/aoa-1</property>
<value>0</value>
</greater-than>
<greater-than>
<property>systems/navigation/adr/output/aoa-2</property>
<value>0</value>
</greater-than>
<greater-than>
<property>systems/navigation/adr/output/aoa-3</property>
<value>0</value>
</greater-than>
</or>
</and>
</condition>
<placer>
<type>segments</type>
<vertex>
<x-m>15</x-m>
<y-m>-2.3</y-m>
<z-m>0</z-m>
</vertex>
<vertex>
<x-m>22</x-m>
<y-m>-16</y-m>
<z-m>0.7</z-m>
</vertex>
<vertex>
<x-m>19</x-m>
<y-m>-2.3</y-m>
<z-m>-1</z-m>
</vertex>
</placer>
<shooter>
<theta-min-deg>
<!-- <expression>
<sum>
<value>70</value>
<property>systems/navigation/adr/output/aoa-1</property>
</sum>
</expression> -->
<value>90</value>
</theta-min-deg>
<theta-max-deg>
<!-- <expression>
<sum>
<value>110</value>
<property>systems/navigation/adr/output/aoa-1</property>
</sum>
</expression> -->
<value>90</value>
</theta-max-deg>
<phi-min-deg>90</phi-min-deg>
<phi-max-deg>90</phi-max-deg>
<speed-mps>
<!-- <expression>
<product>
<property>velocities/groundspeed-kt</property>
<value>-1</value>
</product>
</expression> -->
<value>0</value>
<spread>0</spread>
</speed-mps>
<rotation-speed>
<x-max-deg-sec>180</x-max-deg-sec>
<x-min-deg-sec>180</x-min-deg-sec>
<y-max-deg-sec>180</y-max-deg-sec>
<y-min-deg-sec>-180</y-min-deg-sec>
<z-max-deg-sec>-180</z-max-deg-sec>
<z-min-deg-sec>-180</z-min-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<expression>
<product>
<value>4</value>
<property>environment/relative-humidity</property>
</product>
</expression>
<spread>10</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</red>
<green>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</green>
<blue>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</blue>
<alpha>
<expression>
<product>
<value>0.0007</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</alpha>
</color>
<size>
<value>1.5</value>
</size>
</start>
<end>
<color>
<red>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</red>
<green>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</green>
<blue>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</blue>
<alpha>
<expression>
<product>
<value>0.00001</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</alpha>
</color>
<size>
<value>2</value>
</size>
</end>
<life-sec>
<value>0.00001</value>
</life-sec>
<mass-kg>0.025</mass-kg>
<radius-m>0.175</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity>true</gravity>
<wind>true</wind>
</program>
</particlesystem>
</PropertyList>

View file

@ -0,0 +1,261 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<particlesystem>
<name>wing-condensation</name>
<texture>res/smoke.png</texture>
<emissive>false</emissive>
<lighting>false</lighting>
<type>normal</type>
<attach>local</attach>
<condition>
<and>
<or>
<greater-than-equals>
<expression>
<sum>
<product>
<property>environment/relative-humidity</property>
<value>0.1</value>
</product>
<property>systems/navigation/adr/output/aoa-1</property>
</sum>
</expression>
<value>13.5</value>
</greater-than-equals>
<greater-than-equals>
<expression>
<sum>
<product>
<property>environment/relative-humidity</property>
<value>0.1</value>
</product>
<property>systems/navigation/adr/output/aoa-2</property>
</sum>
</expression>
<value>13.5</value>
</greater-than-equals>
<greater-than-equals>
<expression>
<sum>
<product>
<property>environment/relative-humidity</property>
<value>0.1</value>
</product>
<property>systems/navigation/adr/output/aoa-3</property>
</sum>
</expression>
<value>13.5</value>
</greater-than-equals>
</or>
<greater-than>
<property>velocities/groundspeed-kt</property>
<value>100</value>
</greater-than>
<less-than>
<property>velocities/groundspeed-kt</property>
<value>210</value>
</less-than>
<greater-than>
<property>environment/relative-humidity</property>
<value>50</value>
</greater-than>
<less-than-equals>
<property>environment/temperature-degc</property>
<value>28</value>
</less-than-equals>
<greater-than>
<property>position/altitude-agl-ft</property>
<value>0</value>
</greater-than>
<less-than>
<property>position/altitude-agl-ft</property>
<value>8000</value>
</less-than>
<or>
<greater-than>
<property>systems/navigation/adr/output/aoa-1</property>
<value>0</value>
</greater-than>
<greater-than>
<property>systems/navigation/adr/output/aoa-2</property>
<value>0</value>
</greater-than>
<greater-than>
<property>systems/navigation/adr/output/aoa-3</property>
<value>0</value>
</greater-than>
</or>
</and>
</condition>
<placer>
<type>segments</type>
<vertex>
<x-m>15</x-m>
<y-m>2.3</y-m>
<z-m>0</z-m>
</vertex>
<vertex>
<x-m>22</x-m>
<y-m>16</y-m>
<z-m>0.7</z-m>
</vertex>
<vertex>
<x-m>19</x-m>
<y-m>2.3</y-m>
<z-m>-1</z-m>
</vertex>
</placer>
<shooter>
<theta-min-deg>
<!-- <expression>
<sum>
<value>70</value>
<property>systems/navigation/adr/output/aoa-1</property>
</sum>
</expression> -->
<value>90</value>
</theta-min-deg>
<theta-max-deg>
<!-- <expression>
<sum>
<value>110</value>
<property>systems/navigation/adr/output/aoa-1</property>
</sum>
</expression> -->
<value>90</value>
</theta-max-deg>
<phi-min-deg>90</phi-min-deg>
<phi-max-deg>90</phi-max-deg>
<speed-mps>
<!-- <expression>
<product>
<property>velocities/groundspeed-kt</property>
<value>-1</value>
</product>
</expression> -->
<value>0</value>
<spread>0</spread>
</speed-mps>
<rotation-speed>
<x-max-deg-sec>180</x-max-deg-sec>
<x-min-deg-sec>180</x-min-deg-sec>
<y-max-deg-sec>180</y-max-deg-sec>
<y-min-deg-sec>-180</y-min-deg-sec>
<z-max-deg-sec>-180</z-max-deg-sec>
<z-min-deg-sec>-180</z-min-deg-sec>
</rotation-speed>
</shooter>
<counter>
<particles-per-sec>
<expression>
<product>
<value>4</value>
<property>environment/relative-humidity</property>
</product>
</expression>
<spread>10</spread>
</particles-per-sec>
</counter>
<align>billboard</align>
<particle>
<start>
<color>
<red>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</red>
<green>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</green>
<blue>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</blue>
<alpha>
<expression>
<product>
<value>0.0007</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</alpha>
</color>
<size>
<value>1.5</value>
</size>
</start>
<end>
<color>
<red>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</red>
<green>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</green>
<blue>
<expression>
<product>
<value>0.01</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</blue>
<alpha>
<expression>
<product>
<value>0.00001</value>
<property>environment/relative-humidity</property>
</product>
</expression>
</alpha>
</color>
<size>
<value>2</value>
</size>
</end>
<life-sec>
<value>0.00001</value>
</life-sec>
<mass-kg>0.025</mass-kg>
<radius-m>0.175</radius-m>
</particle>
<program>
<fluid>air</fluid>
<gravity>true</gravity>
<wind>true</wind>
</program>
</particlesystem>
</PropertyList>

View file

@ -51,24 +51,7 @@
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path> <path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
<name>contrail</name> <name>contrail</name>
<condition> <condition>
<and> <property>environment/contrail</property>
<greater-than>
<property>engines/engine[0]/n2-actual</property>
<value>50</value>
</greater-than>
<greater-than>
<property>position/altitude-ft</property>
<value>19000</value>
</greater-than>
<less-than>
<property>environment/temperature-degc</property>
<value>-30</value>
</less-than>
<equals>
<property>engines/engine[0]/state</property>
<value>3</value>
</equals>
</and>
</condition> </condition>
<overlay> <overlay>
<params> <params>
@ -84,7 +67,7 @@
<!-- Takeoff/Landing Engine Moisture --> <!-- Takeoff/Landing Engine Moisture -->
<model> <model>
<path>Aircraft/A320-family/Models/Effects/Moisture.xml</path> <path>Aircraft/A320-family/Models/Effects/Moisture-neo.xml</path>
<name>moisture</name> <name>moisture</name>
<condition> <condition>
<and> <and>
@ -111,9 +94,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>-0.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>0</z-m> <z-m>0.4</z-m>
<pitch-deg>0</pitch-deg> <pitch-deg>0</pitch-deg>
</offsets> </offsets>
</model> </model>
@ -186,9 +169,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>0.875</x-m> <x-m>-1.0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-2.5</z-m> <z-m>0</z-m>
</offsets> </offsets>
</model> </model>

View file

@ -51,24 +51,7 @@
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path> <path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
<name>contrail</name> <name>contrail</name>
<condition> <condition>
<and> <property>environment/contrail</property>
<greater-than>
<property>engines/engine[1]/n2-actual</property>
<value>50</value>
</greater-than>
<greater-than>
<property>position/altitude-ft</property>
<value>19000</value>
</greater-than>
<less-than>
<property>environment/temperature-degc</property>
<value>-30</value>
</less-than>
<equals>
<property>engines/engine[1]/state</property>
<value>3</value>
</equals>
</and>
</condition> </condition>
<overlay> <overlay>
<params> <params>
@ -84,7 +67,7 @@
<!-- Takeoff/Landing Engine Moisture --> <!-- Takeoff/Landing Engine Moisture -->
<model> <model>
<path>Aircraft/A320-family/Models/Effects/Moisture.xml</path> <path>Aircraft/A320-family/Models/Effects/Moisture-neo.xml</path>
<name>moisture</name> <name>moisture</name>
<condition> <condition>
<and> <and>
@ -114,9 +97,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>-0.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>0</z-m> <z-m>0.4</z-m>
<pitch-deg>0</pitch-deg> <pitch-deg>0</pitch-deg>
</offsets> </offsets>
</model> </model>
@ -189,9 +172,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>0.875</x-m> <x-m>-1.0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-2.5</z-m> <z-m>0</z-m>
</offsets> </offsets>
</model> </model>

View file

@ -38,24 +38,7 @@
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path> <path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
<name>contrail</name> <name>contrail</name>
<condition> <condition>
<and> <property>environment/contrail</property>
<greater-than>
<property>engines/engine[0]/n2-actual</property>
<value>50</value>
</greater-than>
<greater-than>
<property>position/altitude-ft</property>
<value>19000</value>
</greater-than>
<less-than>
<property>environment/temperature-degc</property>
<value>-30</value>
</less-than>
<equals>
<property>engines/engine[0]/state</property>
<value>3</value>
</equals>
</and>
</condition> </condition>
<overlay> <overlay>
<params> <params>
@ -71,7 +54,7 @@
<!-- Takeoff/Landing Engine Moisture --> <!-- Takeoff/Landing Engine Moisture -->
<model> <model>
<path>Aircraft/A320-family/Models/Effects/Moisture.xml</path> <path>Aircraft/A320-family/Models/Effects/Moisture-neo.xml</path>
<name>moisture</name> <name>moisture</name>
<condition> <condition>
<and> <and>
@ -98,7 +81,7 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>-0.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>0</z-m> <z-m>0</z-m>
<pitch-deg>0</pitch-deg> <pitch-deg>0</pitch-deg>
@ -173,9 +156,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>1.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-1</z-m> <z-m>0</z-m>
</offsets> </offsets>
</model> </model>

View file

@ -38,24 +38,7 @@
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path> <path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
<name>contrail</name> <name>contrail</name>
<condition> <condition>
<and> <property>environment/contrail</property>
<greater-than>
<property>engines/engine[1]/n2-actual</property>
<value>50</value>
</greater-than>
<greater-than>
<property>position/altitude-ft</property>
<value>19000</value>
</greater-than>
<less-than>
<property>environment/temperature-degc</property>
<value>-30</value>
</less-than>
<equals>
<property>engines/engine[1]/state</property>
<value>3</value>
</equals>
</and>
</condition> </condition>
<overlay> <overlay>
<params> <params>
@ -71,7 +54,7 @@
<!-- Takeoff/Landing Engine Moisture --> <!-- Takeoff/Landing Engine Moisture -->
<model> <model>
<path>Aircraft/A320-family/Models/Effects/Moisture.xml</path> <path>Aircraft/A320-family/Models/Effects/Moisture-neo.xml</path>
<name>moisture</name> <name>moisture</name>
<condition> <condition>
<and> <and>
@ -98,7 +81,7 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>-0.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>0</z-m> <z-m>0</z-m>
<pitch-deg>0</pitch-deg> <pitch-deg>0</pitch-deg>
@ -173,9 +156,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>1.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-1</z-m> <z-m>0</z-m>
</offsets> </offsets>
</model> </model>

View file

@ -40,24 +40,7 @@
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path> <path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
<name>contrail</name> <name>contrail</name>
<condition> <condition>
<and> <property>environment/contrail</property>
<greater-than>
<property>engines/engine[0]/n2-actual</property>
<value>50</value>
</greater-than>
<greater-than>
<property>position/altitude-ft</property>
<value>19000</value>
</greater-than>
<less-than>
<property>environment/temperature-degc</property>
<value>-30</value>
</less-than>
<equals>
<property>engines/engine[0]/state</property>
<value>3</value>
</equals>
</and>
</condition> </condition>
<overlay> <overlay>
<params> <params>
@ -100,9 +83,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>-0.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>0</z-m> <z-m>0.3</z-m>
<pitch-deg>0</pitch-deg> <pitch-deg>0</pitch-deg>
</offsets> </offsets>
</model> </model>
@ -175,9 +158,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>0.875</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-2.5</z-m> <z-m>0</z-m>
</offsets> </offsets>
</model> </model>

View file

@ -40,24 +40,7 @@
<name>contrail</name> <name>contrail</name>
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path> <path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
<condition> <condition>
<and> <property>environment/contrail</property>
<greater-than>
<property>engines/engine[1]/n2-actual</property>
<value>50</value>
</greater-than>
<greater-than>
<property>position/altitude-ft</property>
<value>19000</value>
</greater-than>
<less-than>
<property>environment/temperature-degc</property>
<value>-30</value>
</less-than>
<equals>
<property>engines/engine[1]/state</property>
<value>3</value>
</equals>
</and>
</condition> </condition>
<overlay> <overlay>
<params> <params>
@ -100,9 +83,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>-0.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>0</z-m> <z-m>0.3</z-m>
<pitch-deg>0</pitch-deg> <pitch-deg>0</pitch-deg>
</offsets> </offsets>
</model> </model>
@ -175,9 +158,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>0.875</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-2.5</z-m> <z-m>0</z-m>
</offsets> </offsets>
</model> </model>

View file

@ -37,24 +37,7 @@
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path> <path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
<name>contrail</name> <name>contrail</name>
<condition> <condition>
<and> <property>environment/contrail</property>
<greater-than>
<property>engines/engine[0]/n2-actual</property>
<value>50</value>
</greater-than>
<greater-than>
<property>position/altitude-ft</property>
<value>19000</value>
</greater-than>
<less-than>
<property>environment/temperature-degc</property>
<value>-30</value>
</less-than>
<equals>
<property>engines/engine[0]/state</property>
<value>3</value>
</equals>
</and>
</condition> </condition>
<overlay> <overlay>
<params> <params>
@ -97,9 +80,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>-0.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>0</z-m> <z-m>0.5</z-m>
<pitch-deg>0</pitch-deg> <pitch-deg>0</pitch-deg>
</offsets> </offsets>
</model> </model>
@ -172,9 +155,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>0.875</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-2.5</z-m> <z-m>0</z-m>
</offsets> </offsets>
</model> </model>

View file

@ -37,24 +37,7 @@
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path> <path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
<name>contrail</name> <name>contrail</name>
<condition> <condition>
<and> <property>environment/contrail</property>
<greater-than>
<property>engines/engine[1]/n2-actual</property>
<value>50</value>
</greater-than>
<greater-than>
<property>position/altitude-ft</property>
<value>19000</value>
</greater-than>
<less-than>
<property>environment/temperature-degc</property>
<value>-30</value>
</less-than>
<equals>
<property>engines/engine[1]/state</property>
<value>3</value>
</equals>
</and>
</condition> </condition>
<overlay> <overlay>
<params> <params>
@ -97,9 +80,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>-0.5</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>0</z-m> <z-m>0.5</z-m>
<pitch-deg>0</pitch-deg> <pitch-deg>0</pitch-deg>
</offsets> </offsets>
</model> </model>
@ -172,9 +155,9 @@
</and> </and>
</condition> </condition>
<offsets> <offsets>
<x-m>0.875</x-m> <x-m>0</x-m>
<y-m>0</y-m> <y-m>0</y-m>
<z-m>-2.5</z-m> <z-m>0</z-m>
</offsets> </offsets>
</model> </model>

View file

@ -5307,6 +5307,10 @@
</condition> </condition>
<command>nasal</command> <command>nasal</command>
<script> <script>
if (getprop("sim/sound/warnings/cchord")) {
setprop("sim/sound/warnings/cchord-inhibit", 1);
}
if (getprop("it-autoflight/output/ap-warning") == 1) { if (getprop("it-autoflight/output/ap-warning") == 1) {
setprop("it-autoflight/output/ap-warning", 0); setprop("it-autoflight/output/ap-warning", 0);
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

View file

@ -14,7 +14,7 @@
<effect> <effect>
<inherits-from>Effects/glass</inherits-from> <inherits-from>Effects/glass</inherits-from>
<object-name>Windshield</object-name> <object-name>Windsheild</object-name>
<object-name>Windows</object-name> <object-name>Windows</object-name>
<object-name>glass</object-name> <object-name>glass</object-name>
<object-name>glass1</object-name> <object-name>glass1</object-name>

View file

@ -14,7 +14,7 @@
<effect> <effect>
<inherits-from>Effects/glass</inherits-from> <inherits-from>Effects/glass</inherits-from>
<object-name>Windshield</object-name> <object-name>Windsheild</object-name>
<object-name>Windows</object-name> <object-name>Windows</object-name>
<object-name>glass</object-name> <object-name>glass</object-name>
<object-name>glass1</object-name> <object-name>glass1</object-name>

View file

@ -14,7 +14,7 @@
<effect> <effect>
<inherits-from>Effects/glass</inherits-from> <inherits-from>Effects/glass</inherits-from>
<object-name>Windshield</object-name> <object-name>Windsheild</object-name>
<object-name>Windows</object-name> <object-name>Windows</object-name>
<object-name>glass</object-name> <object-name>glass</object-name>
<object-name>glass1</object-name> <object-name>glass1</object-name>

View file

@ -168,6 +168,13 @@ var canvas_MCDU_base = {
me["PERFTO_SE"].setColor(0.8078,0.8039,0.8078); me["PERFTO_SE"].setColor(0.8078,0.8039,0.8078);
me["PERFTO_OE"].setColor(0.8078,0.8039,0.8078); me["PERFTO_OE"].setColor(0.8078,0.8039,0.8078);
me["PERFAPPR_FE"].setFont(symbol);
me["PERFAPPR_SE"].setFont(symbol);
me["PERFAPPR_OE"].setFont(symbol);
me["PERFAPPR_FE"].setColor(0.8078,0.8039,0.8078);
me["PERFAPPR_SE"].setColor(0.8078,0.8039,0.8078);
me["PERFAPPR_OE"].setColor(0.8078,0.8039,0.8078);
me.page = canvas_group; me.page = canvas_group;
return me; return me;
@ -180,8 +187,8 @@ var canvas_MCDU_base = {
"Simple_R5_Arrow","Simple_R6_Arrow","Simple_C1","Simple_C2","Simple_C3","Simple_C4","Simple_C5","Simple_C6","Simple_C1S","Simple_C2S","Simple_C3S", "Simple_R5_Arrow","Simple_R6_Arrow","Simple_C1","Simple_C2","Simple_C3","Simple_C4","Simple_C5","Simple_C6","Simple_C1S","Simple_C2S","Simple_C3S",
"Simple_C4S","Simple_C5S","Simple_C6S","INITA","INITA_CoRoute","INITA_FltNbr","INITA_CostIndex","INITA_CruiseFLTemp","INITA_FromTo", "Simple_C4S","Simple_C5S","Simple_C6S","INITA","INITA_CoRoute","INITA_FltNbr","INITA_CostIndex","INITA_CruiseFLTemp","INITA_FromTo",
"INITA_InitRequest","INITA_AlignIRS","INITB","INITB_ZFWCG","INITB_ZFW","INITB_ZFW_S","INITB_Block","PERFTO","PERFTO_V1","PERFTO_VR","PERFTO_V2", "INITA_InitRequest","INITA_AlignIRS","INITB","INITB_ZFWCG","INITB_ZFW","INITB_ZFW_S","INITB_Block","PERFTO","PERFTO_V1","PERFTO_VR","PERFTO_V2",
"PERFTO_FE","PERFTO_SE","PERFTO_OE","FPLN","FPLN_From","FPLN_TMPY_group","FPLN_Callsign","departureTMPY", "arrowsDepArr","arrow1L","arrow2L","arrow3L" "PERFTO_FE","PERFTO_SE","PERFTO_OE","PERFAPPR","PERFAPPR_FE","PERFAPPR_SE","PERFAPPR_OE","FPLN","FPLN_From","FPLN_TMPY_group","FPLN_Callsign",
,"arrow4L","arrow5L","arrow1R","arrow2R","arrow3R","arrow4R","arrow5R"]; "departureTMPY", "arrowsDepArr","arrow1L","arrow2L","arrow3L","arrow4L","arrow5L","arrow1R","arrow2R","arrow3R","arrow4R","arrow5R"];
}, },
update: func() { update: func() {
if (systems.ELEC.Bus.ac1.getValue() >= 110 and mcdu1_lgt.getValue() > 0.01) { if (systems.ELEC.Bus.ac1.getValue() >= 110 and mcdu1_lgt.getValue() > 0.01) {
@ -522,6 +529,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText("MCDU MENU"); me["Simple_Title"].setText("MCDU MENU");
me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide(); me["Simple_PageNum"].hide();
@ -533,6 +541,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].show(); me["Simple_L4"].show();
me["Simple_L5"].hide(); me["Simple_L5"].hide();
me["Simple_L6"].hide(); me["Simple_L6"].hide();
me["Simple_L0S"].hide();
me["Simple_L1S"].hide(); me["Simple_L1S"].hide();
me["Simple_L2S"].hide(); me["Simple_L2S"].hide();
me["Simple_L3S"].hide(); me["Simple_L3S"].hide();
@ -605,6 +614,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText(sprintf("%s", " " ~ acType.getValue())); me["Simple_Title"].setText(sprintf("%s", " " ~ acType.getValue()));
me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide(); me["Simple_PageNum"].hide();
@ -617,6 +627,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].hide(); me["Simple_L4"].hide();
me["Simple_L5"].show(); me["Simple_L5"].show();
me["Simple_L6"].show(); me["Simple_L6"].show();
me["Simple_L0S"].hide();
me["Simple_L1S"].show(); me["Simple_L1S"].show();
me["Simple_L2S"].show(); me["Simple_L2S"].show();
me["Simple_L3S"].show(); me["Simple_L3S"].show();
@ -688,6 +699,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText("DATA INDEX"); me["Simple_Title"].setText("DATA INDEX");
me["Simple_PageNum"].setText("1/2"); me["Simple_PageNum"].setText("1/2");
me["Simple_PageNum"].show(); me["Simple_PageNum"].show();
@ -700,6 +712,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].show(); me["Simple_L4"].show();
me["Simple_L5"].hide(); me["Simple_L5"].hide();
me["Simple_L6"].hide(); me["Simple_L6"].hide();
me["Simple_L0S"].hide();
me["Simple_L1S"].show(); me["Simple_L1S"].show();
me["Simple_L2S"].show(); me["Simple_L2S"].show();
me["Simple_L3S"].show(); me["Simple_L3S"].show();
@ -769,6 +782,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText("DATA INDEX"); me["Simple_Title"].setText("DATA INDEX");
me["Simple_PageNum"].setText("2/2"); me["Simple_PageNum"].setText("2/2");
me["Simple_PageNum"].show(); me["Simple_PageNum"].show();
@ -781,6 +795,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].show(); me["Simple_L4"].show();
me["Simple_L5"].show(); me["Simple_L5"].show();
me["Simple_L6"].show(); me["Simple_L6"].show();
me["Simple_L0S"].hide();
me["Simple_L1S"].hide(); me["Simple_L1S"].hide();
me["Simple_L2S"].hide(); me["Simple_L2S"].hide();
me["Simple_L3S"].hide(); me["Simple_L3S"].hide();
@ -855,6 +870,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText("POSITION MONITOR"); me["Simple_Title"].setText("POSITION MONITOR");
me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide(); me["Simple_PageNum"].hide();
@ -867,6 +883,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].show(); me["Simple_L4"].show();
me["Simple_L5"].show(); me["Simple_L5"].show();
me["Simple_L6"].show(); me["Simple_L6"].show();
me["Simple_L0S"].hide();
me["Simple_L1S"].hide(); me["Simple_L1S"].hide();
me["Simple_L2S"].hide(); me["Simple_L2S"].hide();
me["Simple_L3S"].hide(); me["Simple_L3S"].hide();
@ -953,6 +970,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText("RADIO NAV"); me["Simple_Title"].setText("RADIO NAV");
me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide(); me["Simple_PageNum"].hide();
@ -965,6 +983,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].show(); me["Simple_L4"].show();
me["Simple_L5"].show(); me["Simple_L5"].show();
me["Simple_L6"].hide(); me["Simple_L6"].hide();
me["Simple_L0S"].hide();
me["Simple_L1S"].show(); me["Simple_L1S"].show();
me["Simple_L2S"].show(); me["Simple_L2S"].show();
me["Simple_L3S"].show(); me["Simple_L3S"].show();
@ -1093,6 +1112,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText("INIT"); me["Simple_Title"].setText("INIT");
me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide(); me["Simple_PageNum"].hide();
@ -1100,6 +1120,7 @@ var canvas_MCDU_base = {
me["Simple_L2"].show(); me["Simple_L2"].show();
me["Simple_L4"].show(); me["Simple_L4"].show();
me["Simple_L6"].show(); me["Simple_L6"].show();
me["Simple_L0S"].hide();
me["Simple_L1S"].show(); me["Simple_L1S"].show();
me["Simple_L2S"].show(); me["Simple_L2S"].show();
me["Simple_L3S"].show(); me["Simple_L3S"].show();
@ -1249,6 +1270,7 @@ var canvas_MCDU_base = {
me["INITB"].show(); me["INITB"].show();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText("INIT"); me["Simple_Title"].setText("INIT");
me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide(); me["Simple_PageNum"].hide();
@ -1261,6 +1283,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].show(); me["Simple_L4"].show();
me["Simple_L5"].show(); me["Simple_L5"].show();
me["Simple_L6"].show(); me["Simple_L6"].show();
me["Simple_L0S"].hide();
me["Simple_L1S"].show(); me["Simple_L1S"].show();
me["Simple_L2S"].show(); me["Simple_L2S"].show();
me["Simple_L3S"].show(); me["Simple_L3S"].show();
@ -1380,6 +1403,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText("FUEL PRED"); me["Simple_Title"].setText("FUEL PRED");
me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide(); me["Simple_PageNum"].hide();
@ -1392,6 +1416,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].show(); me["Simple_L4"].show();
me["Simple_L5"].show(); me["Simple_L5"].show();
me["Simple_L6"].show(); me["Simple_L6"].show();
me["Simple_L0S"].hide();
me["Simple_L1S"].show(); me["Simple_L1S"].show();
me["Simple_L2S"].hide(); me["Simple_L2S"].hide();
me["Simple_L3S"].show(); me["Simple_L3S"].show();
@ -1493,6 +1518,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].show(); me["PERFTO"].show();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText("TAKE OFF"); me["Simple_Title"].setText("TAKE OFF");
me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide(); me["Simple_PageNum"].hide();
@ -1505,6 +1531,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].show(); me["Simple_L4"].show();
me["Simple_L5"].show(); me["Simple_L5"].show();
me["Simple_L6"].show(); me["Simple_L6"].show();
me["Simple_L0S"].hide();
me["Simple_L1S"].show(); me["Simple_L1S"].show();
me["Simple_L2S"].show(); me["Simple_L2S"].show();
me["Simple_L3S"].show(); me["Simple_L3S"].show();
@ -1535,9 +1562,9 @@ var canvas_MCDU_base = {
me["Simple_R4_Arrow"].hide(); me["Simple_R4_Arrow"].hide();
me["Simple_R5_Arrow"].hide(); me["Simple_R5_Arrow"].hide();
me["Simple_R6_Arrow"].show(); me["Simple_R6_Arrow"].show();
me["Simple_C1"].hide(); me["Simple_C1"].show();
me["Simple_C2"].hide(); me["Simple_C2"].show();
me["Simple_C3"].hide(); me["Simple_C3"].show();
me["Simple_C4"].hide(); me["Simple_C4"].hide();
me["Simple_C5"].hide(); me["Simple_C5"].hide();
me["Simple_C6"].hide(); me["Simple_C6"].hide();
@ -1640,9 +1667,126 @@ var canvas_MCDU_base = {
me["Simple_R4S"].setText("FLEX TO TEMP"); me["Simple_R4S"].setText("FLEX TO TEMP");
me["Simple_R5S"].setText("ENG OUT ACC"); me["Simple_R5S"].setText("ENG OUT ACC");
me["Simple_R6S"].setText("NEXT "); me["Simple_R6S"].setText("NEXT ");
me["Simple_C1S"].setText("FLP RETR "); me["Simple_C1"].setText(" ---");
me["Simple_C2S"].setText("SLT RETR "); me["Simple_C2"].setText(" ---");
me["Simple_C3S"].setText("CLEAN "); me["Simple_C3"].setText(" ---");
me["Simple_C1S"].setText("FLP RETR");
me["Simple_C2S"].setText("SLT RETR");
me["Simple_C3S"].setText("CLEAN ");
} else if (page == "APPR") {
if (!pageSwitch[i].getBoolValue()) {
me["Simple"].show();
me["Simple_Center"].show();
me["INITA"].hide();
me["INITB"].hide();
me["PERFTO"].hide();
me["PERFAPPR"].show();
me["Simple_Title"].setText("APPR");
me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide();
me["ArrowLeft"].hide();
me["ArrowRight"].hide();
me["Simple_L1"].show();
me["Simple_L2"].show();
me["Simple_L3"].show();
me["Simple_L4"].show();
me["Simple_L5"].show();
me["Simple_L6"].show();
me["Simple_L0S"].show();
me["Simple_L1S"].show();
me["Simple_L2S"].show();
me["Simple_L3S"].show();
me["Simple_L4S"].show();
me["Simple_L5S"].show();
me["Simple_L6S"].show();
me["Simple_L1_Arrow"].hide();
me["Simple_L2_Arrow"].hide();
me["Simple_L3_Arrow"].hide();
me["Simple_L4_Arrow"].hide();
me["Simple_L5_Arrow"].hide();
me["Simple_L6_Arrow"].show();
me["Simple_R1"].show();
me["Simple_R2"].show();
me["Simple_R3"].show();
me["Simple_R4"].show();
me["Simple_R5"].hide();
me["Simple_R6"].show();
me["Simple_R1S"].show();
me["Simple_R2S"].show();
me["Simple_R3S"].show();
me["Simple_R4S"].show();
me["Simple_R5S"].hide();
me["Simple_R6S"].show();
me["Simple_R1_Arrow"].hide();
me["Simple_R2_Arrow"].hide();
me["Simple_R3_Arrow"].hide();
me["Simple_R4_Arrow"].hide();
me["Simple_R5_Arrow"].hide();
me["Simple_R6_Arrow"].show();
me["Simple_C1"].show();
me["Simple_C2"].show();
me["Simple_C3"].show();
me["Simple_C4"].hide();
me["Simple_C5"].show();
me["Simple_C6"].hide();
me["Simple_C1S"].show();
me["Simple_C2S"].show();
me["Simple_C3S"].show();
me["Simple_C4S"].hide();
me["Simple_C5S"].show();
me["Simple_C6S"].hide();
me.fontLeft(symbol, default, default, default, symbol, default);
me.fontLeftS(default, default, default, default, default, default);
me.fontRight(default, symbol, symbol, symbol, default, default);
me.fontRightS(default, default, default, default, default, default);
me.fontSizeLeft(small, small, small, small, small, normal);
me.fontSizeRight(small, small, small, small, 0, normal);
me.fontSizeCenter(small, small, small, 0, small, 0);
me.colorLeft("blu", "blu", "blu", "blu", "blu", "wht");
me.colorLeftS("wht", "wht", "wht", "wht", "wht", "wht");
me.colorLeftArrow("wht", "wht", "wht", "wht", "wht", "wht");
me.colorRight("wht", "blu", "blu", "blu", "blu", "wht");
me.colorRightS("wht", "wht", "wht", "wht", "wht", "wht");
me.colorRightArrow("wht", "wht", "wht", "wht", "wht", "wht");
me.colorCenter("grn", "grn", "grn", "wht", "grn", "wht");
me.colorCenterS("wht", "wht", "wht", "wht", "wht", "wht");
pageSwitch[i].setBoolValue(1);
}
me["Simple_L1"].setText("[ ] ");
me["Simple_L2"].setText("---g ");
me["Simple_L3"].setText("---g/---");
me["Simple_L4"].setText(sprintf("%3.0f", transAlt.getValue()));
me["Simple_L5"].setText("[ ] ");
me["Simple_L6"].setText(" PHASE");
me["Simple_L0S"].setText("DEST");
me["Simple_L1S"].setText("QNH");
me["Simple_L2S"].setText("TEMP");
me["Simple_L3S"].setText("MAG WIND");
me["Simple_L4S"].setText("TRANS ALT");
me["Simple_L5S"].setText(" VAPP");
me["Simple_L6S"].setText(" PREV");
me["Simple_R1"].setText("-----");
me["Simple_R2"].setText(" [ ]");
me["Simple_R3"].setText(" [ ]");
me["Simple_R4"].setText(" [ ]");
me["Simple_R1S"].setText("FINAL");
me["Simple_R2S"].setText("MDA");
me["Simple_R3S"].setText("DH");
me["Simple_R4S"].setText("LDG CONF");
me["Simple_C1"].setText(" ---");
me["Simple_C2"].setText(" ---");
me["Simple_C3"].setText(" ---");
me["Simple_C5"].setText(" ---");
me["Simple_C1S"].setText("FLP RETR");
me["Simple_C2S"].setText("SLT RETR");
me["Simple_C3S"].setText("CLEAN ");
me["Simple_C5S"].setText("VLS ");
} else if (page == "CLB" or page == "CRZ" or page == "DES") { } else if (page == "CLB" or page == "CRZ" or page == "DES") {
if (!pageSwitch[i].getBoolValue()) { if (!pageSwitch[i].getBoolValue()) {
me["Simple"].show(); me["Simple"].show();
@ -1652,6 +1796,7 @@ var canvas_MCDU_base = {
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["arrowsDepArr"].hide(); me["arrowsDepArr"].hide();
me["PERFAPPR"].hide();
me["Simple_Title"].setText(sprintf("%s", page)); me["Simple_Title"].setText(sprintf("%s", page));
me["Simple_PageNum"].setText("X/X"); me["Simple_PageNum"].setText("X/X");
me["Simple_PageNum"].hide(); me["Simple_PageNum"].hide();
@ -1664,6 +1809,7 @@ var canvas_MCDU_base = {
me["Simple_L4"].hide(); me["Simple_L4"].hide();
me["Simple_L5"].hide(); me["Simple_L5"].hide();
me["Simple_L6"].show(); me["Simple_L6"].show();
me["Simple_L0S"].hide();
me["Simple_L1S"].show(); me["Simple_L1S"].show();
me["Simple_L2S"].show(); me["Simple_L2S"].show();
me["Simple_L3S"].show(); me["Simple_L3S"].show();
@ -1696,6 +1842,7 @@ var canvas_MCDU_base = {
me["Simple_C2"].hide(); me["Simple_C2"].hide();
me["Simple_C3"].hide(); me["Simple_C3"].hide();
me["Simple_C4"].hide(); me["Simple_C4"].hide();
me["Simple_C5"].hide();
me["Simple_C6"].hide(); me["Simple_C6"].hide();
me["Simple_C1S"].show(); me["Simple_C1S"].show();
me["Simple_C2S"].hide(); me["Simple_C2S"].hide();
@ -3248,6 +3395,7 @@ var canvas_MCDU_base = {
me["INITA"].hide(); me["INITA"].hide();
me["INITB"].hide(); me["INITB"].hide();
me["PERFTO"].hide(); me["PERFTO"].hide();
me["PERFAPPR"].hide();
me["ArrowLeft"].hide(); me["ArrowLeft"].hide();
me["ArrowRight"].hide(); me["ArrowRight"].hide();

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 113 KiB

View file

@ -1,101 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="50"
height="50"
id="svg3076"
version="1.1"
inkscape:version="0.48.2 r9819"
sodipodi:docname="airbus-vor.svg">
<metadata
id="metadata3092">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3090" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1248"
inkscape:window-height="703"
id="namedview3088"
showgrid="false"
inkscape:zoom="1.6619718"
inkscape:cx="-33.09322"
inkscape:cy="71"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg3076" />
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
<g
id="g3078"
inkscape:groupmode="layer"
transform="matrix(0.34013605,0,0,0.33783784,0.84746249,0.78240397)">
<title
id="title3080">Layer 1</title>
<g
id="svg_7">
<line
id="svg_3"
y2="71"
x2="142"
y1="71"
x1="112"
style="fill:none;stroke:#b00064;stroke-width:5" />
<circle
id="svg_2"
r="39.115215"
cy="71.5"
cx="71"
sodipodi:cx="71"
sodipodi:cy="71.5"
sodipodi:rx="39.115215"
sodipodi:ry="39.115215"
style="fill:none;stroke:#b00064;stroke-width:5"
d="m 110.11522,71.5 c 0,21.602737 -17.512483,39.11522 -39.11522,39.11522 -21.602737,0 -39.115215,-17.512483 -39.115215,-39.11522 0,-21.602737 17.512478,-39.115215 39.115215,-39.115215 21.602737,0 39.11522,17.512478 39.11522,39.115215 z" />
<line
id="svg_4"
y2="71"
x2="30"
y1="71"
x1="0"
style="fill:none;stroke:#b00064;stroke-width:5" />
<line
transform="matrix(0,1,-1,0,198,58)"
id="svg_5"
y2="128"
x2="85"
y1="128"
x1="55"
style="fill:none;stroke:#b00064;stroke-width:5" />
<line
id="svg_6"
transform="matrix(0,1,-1,0,85,-55)"
y2="15"
x2="85"
y1="15"
x1="55"
style="fill:none;stroke:#b00064;stroke-width:5" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 629 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 284 KiB

After

Width:  |  Height:  |  Size: 293 KiB

View file

@ -112,7 +112,7 @@
<object-name>ACTUTATOR</object-name> <object-name>ACTUTATOR</object-name>
<object-name>Main Tires</object-name> <object-name>Main Tires</object-name>
<object-name>Compression lower scissor</object-name> <object-name>Compression lower scissor</object-name>
<property>gear/gear[1]/compression-ft</property> <property>gear/gear[1]/compression-norm</property>
<factor>0.305</factor> <factor>0.305</factor>
<axis> <axis>
<x1-m>0</x1-m> <x1-m>0</x1-m>

View file

@ -112,7 +112,7 @@
<object-name>ACTUTATOR</object-name> <object-name>ACTUTATOR</object-name>
<object-name>Main Tires</object-name> <object-name>Main Tires</object-name>
<object-name>Compression lower scissor</object-name> <object-name>Compression lower scissor</object-name>
<property>gear/gear[2]/compression-ft</property> <property>gear/gear[2]/compression-norm</property>
<factor>0.305</factor> <factor>0.305</factor>
<axis> <axis>
<x1-m>0</x1-m> <x1-m>0</x1-m>

View file

@ -112,7 +112,7 @@
<object-name>AXLE</object-name> <object-name>AXLE</object-name>
<object-name>Nose Tires</object-name> <object-name>Nose Tires</object-name>
<object-name>Compression lower scissor</object-name> <object-name>Compression lower scissor</object-name>
<property>gear/gear[0]/compression-ft</property> <property>gear/gear[0]/compression-norm</property>
<factor>0.305</factor> <factor>0.305</factor>
<axis> <axis>
<x1-m>-0.366</x1-m> <x1-m>-0.366</x1-m>

View file

@ -32,6 +32,10 @@ var gear_agl_cur = nil;
var numberMinutes = nil; var numberMinutes = nil;
var timeNow = nil; var timeNow = nil;
var timer10secIRS = nil; var timer10secIRS = nil;
var altAlertInhibit = nil;
var alt200 = nil;
var alt750 = nil;
var bigThree = nil;
var messages_priority_3 = func { var messages_priority_3 = func {
phaseVar = phaseNode.getValue(); phaseVar = phaseNode.getValue();
@ -744,6 +748,84 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(ap_offw); ECAM_controller.warningReset(ap_offw);
} }
# C-Chord
if ((pts.Modes.Altimeter.std.getValue() and abs(fcu.altSet.getValue() - getprop("systems/navigation/adr/output/baro-alt-1-capt")) < 200) or !pts.Modes.Altimeter.std.getValue() and abs(fcu.altSet.getValue() - getprop("systems/navigation/adr/output/baro-alt-corrected-1-capt")) < 200) {
alt200 = 1;
} else {
alt200 = 0;
}
if ((pts.Modes.Altimeter.std.getValue() and abs(fcu.altSet.getValue() - getprop("systems/navigation/adr/output/baro-alt-1-capt")) < 750) or !pts.Modes.Altimeter.std.getValue() and abs(fcu.altSet.getValue() - getprop("systems/navigation/adr/output/baro-alt-corrected-1-capt")) < 750) {
alt750 = 1;
} else {
alt750 = 0;
}
if (FWC.altChg.getValue() or pts.Gear.position[0].getValue() == 1 or (getprop("controls/gear/gear-down") and pts.JSBSIM.FCS.slatDeg.getValue() > 4) or fmgc.Output.vert.getValue() == 2) {
altAlertInhibit = 1;
} else {
altAlertInhibit = 0;
}
if (alt750 and !alt200 and !altAlertInhibit) {
FWC.Monostable.altAlert2.setValue(1);
} else {
FWC.Monostable.altAlert2.setValue(0);
}
if ((!fcu.ap1.getBoolValue() and !fcu.ap2.getBoolValue()) and FWC.Monostable.altAlert2.getValue()) {
FWC.Monostable.altAlert1.setValue(1);
} else {
FWC.Monostable.altAlert1.setValue(0);
}
if (alt750 and alt200 and !altAlertInhibit) {
setprop("ECAM/flipflop/alt-alert-2-rs-set", 1);
} else {
setprop("ECAM/flipflop/alt-alert-2-rs-set", 0);
}
if (getprop("ECAM/flipflop/alt-alert-rs-reset") or (!alt750 and !alt200 and !altAlertInhibit)) {
setprop("ECAM/flipflop/alt-alert-2-rs-reset", 1);
} else {
setprop("ECAM/flipflop/alt-alert-2-rs-reset", 0);
}
if (alt750 and !alt200 and !altAlertInhibit and getprop("ECAM/flipflop/alt-alert-2-rs-output")) {
setprop("ECAM/flipflop/alt-alert-3-rs-set", 1);
} else {
setprop("ECAM/flipflop/alt-alert-3-rs-set", 0);
}
if ((!alt750 and !alt200 and !altAlertInhibit and getprop("ECAM/flipflop/alt-alert-rs-output")) or (!alt750 and !alt200 and !altAlertInhibit and getprop("ECAM/flipflop/alt-alert-3-rs-output")) or getprop("ECAM/flipflop/alt-alert-3-rs-set")) {
bigThree = 1;
} else {
bigThree = 0;
}
if (!gnd and (FWC.Monostable.altAlert1Output.getValue() or bigThree)) {
if (!getprop("sim/sound/warnings/cchord-inhibit")) {
setprop("sim/sound/warnings/cchord", 1);
} else {
setprop("sim/sound/warnings/cchord", 0);
}
} else {
setprop("sim/sound/warnings/cchord", 0);
setprop("sim/sound/warnings/cchord-inhibit", 0);
}
if (!gnd and getprop("ECAM/flipflop/alt-alert-3-rs-set") != 1 and alt750 and !alt200 and !altAlertInhibit) {
setprop("ECAM/alt-alert-steady", 1);
} else {
setprop("ECAM/alt-alert-steady", 0);
}
if (!gnd and bigThree) {
setprop("ECAM/alt-alert-flash", 1);
} else {
setprop("ECAM/alt-alert-flash", 0);
}
if (!systems.cargoTestBtn.getBoolValue()) { if (!systems.cargoTestBtn.getBoolValue()) {
if (cargoSmokeFwd.clearFlag == 0 and systems.fwdCargoFireWarn.getBoolValue() and (phaseVar <= 3 or phaseVar >= 9 or phaseVar == 6)) { if (cargoSmokeFwd.clearFlag == 0 and systems.fwdCargoFireWarn.getBoolValue() and (phaseVar <= 3 or phaseVar >= 9 or phaseVar == 6)) {
cargoSmokeFwd.active = 1; cargoSmokeFwd.active = 1;

View file

@ -22,51 +22,55 @@ var gear_agl_cur = nil;
var FWC = { var FWC = {
Btn: { Btn: {
clr: props.globals.initNode("/ECAM/buttons/clear-btn", 0, "BOOL"), clr: props.globals.initNode("ECAM/buttons/clear-btn", 0, "BOOL"),
recall: props.globals.initNode("/ECAM/buttons/recall-btn", 0, "BOOL"), recall: props.globals.initNode("ECAM/buttons/recall-btn", 0, "BOOL"),
recallStsNormal: props.globals.initNode("/ECAM/buttons/recall-status-normal", 0, "BOOL"), recallStsNormal: props.globals.initNode("ECAM/buttons/recall-status-normal", 0, "BOOL"),
recallStsNormalOutput: props.globals.initNode("/ECAM/buttons/recall-status-normal-output", 0, "BOOL"), recallStsNormalOutput: props.globals.initNode("ECAM/buttons/recall-status-normal-output", 0, "BOOL"),
}, },
Monostable: { Monostable: {
phase1: props.globals.initNode("/ECAM/phases/monostable/phase-1-300", 0, "BOOL"), phase1: props.globals.initNode("ECAM/phases/monostable/phase-1-300", 0, "BOOL"),
phase5: props.globals.initNode("/ECAM/phases/monostable/phase-5", 0, "BOOL"), phase5: props.globals.initNode("ECAM/phases/monostable/phase-5", 0, "BOOL"),
phase7: props.globals.initNode("/ECAM/phases/monostable/phase-7", 0, "BOOL"), phase7: props.globals.initNode("ECAM/phases/monostable/phase-7", 0, "BOOL"),
phase9: props.globals.initNode("/ECAM/phases/monostable/phase-9", 0, "BOOL"), phase9: props.globals.initNode("ECAM/phases/monostable/phase-9", 0, "BOOL"),
phase1Output: props.globals.initNode("/ECAM/phases/monostable/phase-1-output"), phase1Output: props.globals.initNode("ECAM/phases/monostable/phase-1-output"),
phase5Output: props.globals.initNode("/ECAM/phases/monostable/phase-5-output"), phase5Output: props.globals.initNode("ECAM/phases/monostable/phase-5-output"),
phase7Output: props.globals.initNode("/ECAM/phases/monostable/phase-7-output"), phase7Output: props.globals.initNode("ECAM/phases/monostable/phase-7-output"),
phase9Output: props.globals.initNode("/ECAM/phases/monostable/phase-9-output"), phase9Output: props.globals.initNode("ECAM/phases/monostable/phase-9-output"),
toPowerOutput: props.globals.getNode("ECAM/phases/monostable/to-power-set-output"), toPowerOutput: props.globals.getNode("ECAM/phases/monostable/to-power-set-output"),
m80kt: props.globals.getNode("ECAM/phases/monostable-80kt"), m80kt: props.globals.getNode("ECAM/phases/monostable-80kt"),
altAlert1: props.globals.initNode("ECAM/altitude-alert-monostable-set", 0, "BOOL"),
altAlert1Output: props.globals.initNode("ECAM/altitude-alert-monostable-output"),
altAlert2: props.globals.initNode("ECAM/flipflop/altitude-alert-rs-set", 0, "BOOL"),
}, },
Flipflop: { Flipflop: {
gearSet: props.globals.initNode("/ECAM/phases/flipflop/gear-set", 0, "BOOL"), gearSet: props.globals.initNode("ECAM/phases/flipflop/gear-set", 0, "BOOL"),
gearReset: props.globals.initNode("/ECAM/phases/flipflop/gear-reset", 0, "BOOL"), gearReset: props.globals.initNode("ECAM/phases/flipflop/gear-reset", 0, "BOOL"),
gearOutput: props.globals.initNode("/ECAM/phases/flipflop/gear-output", 0, "BOOL"), gearOutput: props.globals.initNode("ECAM/phases/flipflop/gear-output", 0, "BOOL"),
phase2Set: props.globals.initNode("/ECAM/phases/flipflop/phase-2-set", 0, "BOOL"), phase2Set: props.globals.initNode("ECAM/phases/flipflop/phase-2-set", 0, "BOOL"),
phase2Reset: props.globals.initNode("/ECAM/phases/flipflop/phase-2-reset", 0, "BOOL"), phase2Reset: props.globals.initNode("ECAM/phases/flipflop/phase-2-reset", 0, "BOOL"),
phase2Output: props.globals.initNode("/ECAM/phases/flipflop/phase-2-output", 0, "BOOL"), phase2Output: props.globals.initNode("ECAM/phases/flipflop/phase-2-output", 0, "BOOL"),
phase10Set: props.globals.initNode("/ECAM/phases/flipflop/phase-10-set", 0, "BOOL"), phase10Set: props.globals.initNode("ECAM/phases/flipflop/phase-10-set", 0, "BOOL"),
phase10Reset: props.globals.initNode("/ECAM/phases/flipflop/phase-10-reset", 0, "BOOL"), phase10Reset: props.globals.initNode("ECAM/phases/flipflop/phase-10-reset", 0, "BOOL"),
phase10Output: props.globals.initNode("/ECAM/phases/flipflop/phase-10-output", 0, "BOOL"), phase10Output: props.globals.initNode("ECAM/phases/flipflop/phase-10-output", 0, "BOOL"),
recallSet: props.globals.initNode("/ECAM/flipflop/recall-set", 0, "BOOL"), recallSet: props.globals.initNode("ECAM/flipflop/recall-set", 0, "BOOL"),
recallReset: props.globals.initNode("/ECAM/flipflop/recall-reset", 0, "BOOL"), recallReset: props.globals.initNode("ECAM/flipflop/recall-reset", 0, "BOOL"),
recallOutput: props.globals.initNode("/ECAM/flipflop/recall-output", 0, "BOOL"), recallOutput: props.globals.initNode("ECAM/flipflop/recall-output", 0, "BOOL"),
}, },
Timer: { Timer: {
eng1idle: props.globals.initNode("/ECAM/phases/timer/eng1idle", 0, "INT"), eng1idle: props.globals.initNode("ECAM/phases/timer/eng1idle", 0, "INT"),
eng2idle: props.globals.initNode("/ECAM/phases/timer/eng2idle", 0, "INT"), eng2idle: props.globals.initNode("ECAM/phases/timer/eng2idle", 0, "INT"),
eng1or2: props.globals.initNode("/ECAM/phases/timer/eng1or2", 0, "INT"), eng1or2: props.globals.initNode("ECAM/phases/timer/eng1or2", 0, "INT"),
toInhibit: props.globals.initNode("/ECAM/phases/timer/to-inhibit", 0, "INT"), toInhibit: props.globals.initNode("ECAM/phases/timer/to-inhibit", 0, "INT"),
ldgInhibit: props.globals.initNode("/ECAM/phases/timer/ldg-inhibit", 0, "INT"), ldgInhibit: props.globals.initNode("ECAM/phases/timer/ldg-inhibit", 0, "INT"),
eng1idleOutput: props.globals.getNode("ECAM/phases/timer/eng1idle-output"), eng1idleOutput: props.globals.getNode("ECAM/phases/timer/eng1idle-output"),
eng2idleOutput: props.globals.getNode("ECAM/phases/timer/eng2idle-output"), eng2idleOutput: props.globals.getNode("ECAM/phases/timer/eng2idle-output"),
eng1or2Output: props.globals.initNode("/ECAM/phases/timer/eng1or2-output", 0, "INT"), eng1or2Output: props.globals.initNode("ECAM/phases/timer/eng1or2-output", 0, "INT"),
toInhibitOutput: props.globals.getNode("ECAM/phases/timer/to-inhibit-output"), toInhibitOutput: props.globals.getNode("ECAM/phases/timer/to-inhibit-output"),
ldgInhibitOutput: props.globals.getNode("ECAM/phases/timer/ldg-inhibit-output"), ldgInhibitOutput: props.globals.getNode("ECAM/phases/timer/ldg-inhibit-output"),
}, },
speed80: props.globals.initNode("/ECAM/phases/speed-gt-80", 0, "BOOL"), speed80: props.globals.initNode("ECAM/phases/speed-gt-80", 0, "BOOL"),
toPower: props.globals.initNode("/ECAM/phases/to-power-set", 0, "BOOL"), toPower: props.globals.initNode("ECAM/phases/to-power-set", 0, "BOOL"),
altChg: props.globals.getNode("it-autoflight/input/alt-is-changing", 1),
}; };
var phaseLoop = func() { var phaseLoop = func() {

View file

@ -97,6 +97,8 @@ var lskbutton = func(btn, i) {
} }
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
perfTOInput("L1", i); perfTOInput("L1", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
perfAPPRInput("L1", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
radnavInput("L1", i); radnavInput("L1", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "DATA") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "DATA") {
@ -124,6 +126,8 @@ var lskbutton = func(btn, i) {
PerfInput("L2", i); PerfInput("L2", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
perfTOInput("L2", i); perfTOInput("L2", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
perfAPPRInput("L2", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
radnavInput("L2", i); radnavInput("L2", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "CLB") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "CLB") {
@ -154,6 +158,8 @@ var lskbutton = func(btn, i) {
initInputA("L3", i); initInputA("L3", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
perfTOInput("L3", i); perfTOInput("L3", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
perfAPPRInput("L3", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "STATUS") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "STATUS") {
statusInput("L3", i); statusInput("L3", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
@ -178,6 +184,8 @@ var lskbutton = func(btn, i) {
setprop("MCDU[" ~ i ~ "]/page", "STATUS"); setprop("MCDU[" ~ i ~ "]/page", "STATUS");
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
perfTOInput("L4", i); perfTOInput("L4", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
perfAPPRInput("L4", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
radnavInput("L4", i); radnavInput("L4", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") {
@ -204,6 +212,8 @@ var lskbutton = func(btn, i) {
perfCRZInput("L5", i); perfCRZInput("L5", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "DES") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "DES") {
perfDESInput("L5", i); perfDESInput("L5", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
perfAPPRInput("L5", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
radnavInput("L5", i); radnavInput("L5", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") {
@ -230,6 +240,8 @@ var lskbutton = func(btn, i) {
perfCRZInput("L6", i); perfCRZInput("L6", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "DES") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "DES") {
perfDESInput("L6", i); perfDESInput("L6", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
perfAPPRInput("L6",i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") {
printInput2("L6", i); printInput2("L6", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "F-PLNA" or getprop("MCDU[" ~ i ~ "]/page") == "F-PLNB") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "F-PLNA" or getprop("MCDU[" ~ i ~ "]/page") == "F-PLNB") {
@ -279,6 +291,8 @@ var rskbutton = func(btn, i) {
} else if (btn == "2") { } else if (btn == "2") {
if (getprop("MCDU[" ~ i ~ "]/page") == "INITB") { if (getprop("MCDU[" ~ i ~ "]/page") == "INITB") {
initInputB("R2", i); initInputB("R2", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
perfAPPRInput("R2",i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
radnavInput("R2", i); radnavInput("R2", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") {
@ -299,6 +313,8 @@ var rskbutton = func(btn, i) {
initInputA("R3", i); initInputA("R3", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
perfTOInput("R3", i); perfTOInput("R3", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
perfAPPRInput("R3", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") {
printInput("R3", i); printInput("R3", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") {
@ -321,6 +337,8 @@ var rskbutton = func(btn, i) {
} else if (btn == "4") { } else if (btn == "4") {
if (getprop("MCDU[" ~ i ~ "]/page") == "TO") { if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
perfTOInput("R4", i); perfTOInput("R4", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
perfAPPRInput("R4", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
radnavInput("R4", i); radnavInput("R4", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") {
@ -365,6 +383,8 @@ var rskbutton = func(btn, i) {
perfCLBInput("R6", i); perfCLBInput("R6", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "CRZ") { } else if (getprop("MCDU[" ~ i ~ "]/page") == "CRZ") {
perfCRZInput("R6", i); perfCRZInput("R6", i);
} else if (getprop("MCDU[" ~ i ~ "]/page") == "DES") {
perfDESInput("R6", i);
} else if ((getprop("MCDU[" ~ i ~ "]/page") == "DATA") or (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") or (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2")) { } else if ((getprop("MCDU[" ~ i ~ "]/page") == "DATA") or (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") or (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2")) {
if (getprop("MCDU[" ~ i ~ "]/scratchpad") != "AOC DISABLED") { if (getprop("MCDU[" ~ i ~ "]/scratchpad") != "AOC DISABLED") {
if (getprop("MCDU[" ~ i ~ "]/scratchpad-msg") == 1) { if (getprop("MCDU[" ~ i ~ "]/scratchpad-msg") == 1) {
@ -464,6 +484,8 @@ var pagebutton = func(btn, i) {
setprop("MCDU[" ~ i ~ "]/page", "CRZ"); setprop("MCDU[" ~ i ~ "]/page", "CRZ");
} else if (getprop("FMGC/status/phase") == 4) { } else if (getprop("FMGC/status/phase") == 4) {
setprop("MCDU[" ~ i ~ "]/page", "DES"); setprop("MCDU[" ~ i ~ "]/page", "DES");
} else if (getprop("FMGC/status/phase") == 5) {
setprop("MCDU[" ~ i ~ "]/page", "APPR");
} }
} else if (btn == "init") { } else if (btn == "init") {
setprop("MCDU[" ~ i ~ "]/page", "INITA"); setprop("MCDU[" ~ i ~ "]/page", "INITA");

7
Nasal/MCDU/PERFAPPR.nas Normal file
View file

@ -0,0 +1,7 @@
# Copyright (c) 2020 Matthew Maring (hayden2000)
var perfAPPRInput = func(key, i) {
if (key == "L6") {
setprop("MCDU[" ~ i ~ "]/page", "DES");
}
}

View file

@ -5,5 +5,7 @@
var perfDESInput = func(key, i) { var perfDESInput = func(key, i) {
if (key == "L6") { if (key == "L6") {
setprop("MCDU[" ~ i ~ "]/page", "CRZ"); setprop("MCDU[" ~ i ~ "]/page", "CRZ");
} else if (key == "R6") {
setprop("MCDU[" ~ i ~ "]/page", "APPR");
} }
} }

View file

@ -126,6 +126,14 @@ var perfTOInput = func(key, i) {
} else { } else {
notAllowed(i); notAllowed(i);
} }
} else if (tfs == 1) {
if (scratchpad >= 1 and scratchpad <= 4) {
setprop("FMGC/internal/to-flap", scratchpad);
setprop("FMGC/internal/flap-ths-set", 1);
setprop("MCDU[" ~ i ~ "]/scratchpad", "");
} else {
notAllowed(i);
}
} else { } else {
notAllowed(i); notAllowed(i);
} }

View file

@ -733,9 +733,125 @@ var resetView = func() {
} }
interpolate("sim/current-view/field-of-view", 63, 0.66); interpolate("sim/current-view/field-of-view", 63, 0.66);
interpolate("sim/current-view/heading-offset-deg", hd_t,0.66); interpolate("sim/current-view/heading-offset-deg", hd_t, 0.66);
interpolate("sim/current-view/pitch-offset-deg", -14.6,0.66); interpolate("sim/current-view/pitch-offset-deg", -14.6, 0.66);
interpolate("sim/current-view/roll-offset-deg", 0, 0.66);
interpolate("sim/current-view/x-offset-m", -0.45, 0.66);
interpolate("sim/current-view/y-offset-m", 2.34, 0.66);
interpolate("sim/current-view/z-offset-m", -13.75, 0.66);
if (_shakeFlag) {
setprop("sim/rendering/headshake/enabled", 1);
}
}
}
var autopilotView = func() {
if (getprop("sim/current-view/view-number") == 0) {
if (getprop("sim/rendering/headshake/enabled")) {
var _shakeFlag = 1;
setprop("sim/rendering/headshake/enabled", 0);
} else {
var _shakeFlag = 0;
}
var hd = getprop("sim/current-view/heading-offset-deg");
var hd_t = 341.7;
if (hd < 180) {
hd_t = hd_t - 360;
}
interpolate("sim/current-view/field-of-view", 63, 0.66);
interpolate("sim/current-view/heading-offset-deg", hd_t, 0.66);
interpolate("sim/current-view/pitch-offset-deg", -16.4, 0.66);
interpolate("sim/current-view/roll-offset-deg", 0, 0.66);
interpolate("sim/current-view/x-offset-m", -0.45, 0.66);
interpolate("sim/current-view/y-offset-m", 2.34, 0.66);
interpolate("sim/current-view/z-offset-m", -13.75, 0.66);
if (_shakeFlag) {
setprop("sim/rendering/headshake/enabled", 1);
}
}
}
var overheadView = func() {
if (getprop("sim/current-view/view-number") == 0) {
if (getprop("sim/rendering/headshake/enabled")) {
var _shakeFlag = 1;
setprop("sim/rendering/headshake/enabled", 0);
} else {
var _shakeFlag = 0;
}
var hd = getprop("sim/current-view/heading-offset-deg");
var hd_t = 348;
if (hd < 180) {
hd_t = hd_t - 360;
}
interpolate("sim/current-view/field-of-view", 105.8, 0.66);
interpolate("sim/current-view/heading-offset-deg", hd_t, 0.66);
interpolate("sim/current-view/pitch-offset-deg", 65.25, 0.66);
interpolate("sim/current-view/roll-offset-deg", 0,0.66); interpolate("sim/current-view/roll-offset-deg", 0,0.66);
interpolate("sim/current-view/x-offset-m", -0.12, 0.66);
interpolate("sim/current-view/y-offset-m", 2.34, 0.66);
interpolate("sim/current-view/z-offset-m", -13.75, 0.66);
if (_shakeFlag) {
setprop("sim/rendering/headshake/enabled", 1);
}
}
}
var pedestalView = func() {
if (getprop("sim/current-view/view-number") == 0) {
if (getprop("sim/rendering/headshake/enabled")) {
var _shakeFlag = 1;
setprop("sim/rendering/headshake/enabled", 0);
} else {
var _shakeFlag = 0;
}
var hd = getprop("sim/current-view/heading-offset-deg");
var hd_t = 315;
if (hd < 180) {
hd_t = hd_t - 360;
}
interpolate("sim/current-view/field-of-view", 63, 0.66);
interpolate("sim/current-view/heading-offset-deg", hd_t, 0.66);
interpolate("sim/current-view/pitch-offset-deg", -46.3, 0.66);
interpolate("sim/current-view/roll-offset-deg", 0, 0.66);
interpolate("sim/current-view/x-offset-m", -0.45, 0.66);
interpolate("sim/current-view/y-offset-m", 2.34, 0.66);
interpolate("sim/current-view/z-offset-m", -13.75, 0.66);
if (_shakeFlag) {
setprop("sim/rendering/headshake/enabled", 1);
}
}
}
var lightsView = func() {
if (getprop("sim/current-view/view-number") == 0) {
if (getprop("sim/rendering/headshake/enabled")) {
var _shakeFlag = 1;
setprop("sim/rendering/headshake/enabled", 0);
} else {
var _shakeFlag = 0;
}
var hd = getprop("sim/current-view/heading-offset-deg");
var hd_t = 329;
if (hd < 180) {
hd_t = hd_t - 360;
}
interpolate("sim/current-view/field-of-view", 63, 0.66);
interpolate("sim/current-view/heading-offset-deg", hd_t, 0.66);
interpolate("sim/current-view/pitch-offset-deg", 17.533, 0.66);
interpolate("sim/current-view/roll-offset-deg", 0, 0.66);
interpolate("sim/current-view/x-offset-m", -0.45, 0.66); interpolate("sim/current-view/x-offset-m", -0.45, 0.66);
interpolate("sim/current-view/y-offset-m", 2.34, 0.66); interpolate("sim/current-view/y-offset-m", 2.34, 0.66);
interpolate("sim/current-view/z-offset-m", -13.75, 0.66); interpolate("sim/current-view/z-offset-m", -13.75, 0.66);

View file

@ -102,6 +102,12 @@ var JSBSim = {
}, },
}; };
var Modes = {
Altimeter: {
std: props.globals.getNode("modes/altimeter/std"),
},
};
var Options = { var Options = {
eng: props.globals.getNode("options/eng"), eng: props.globals.getNode("options/eng"),
}; };

View file

@ -12,7 +12,7 @@ var viewName = "XX";
var fovZoom = func(d) { var fovZoom = func(d) {
viewName = getprop("sim/current-view/name"); viewName = getprop("sim/current-view/name");
canChangeZOffset = getprop("sim/current-view/type") == "lookat" and viewName != "Tower View" and viewName != "Tower View AGL" and viewName != "Fly-By View" and viewName != "Chase View" and viewName != "Chase View Without Yaw" and viewName != "Walk View"; canChangeZOffset = getprop("sim/current-view/type") == "lookat" and viewName != "Tower View" and viewName != "Tower View AGL" and viewName != "Fly-By View" and viewName != "Chase View" and viewName != "Chase View Without Yaw" and viewName != "Walk View" and viewName != "Walker Orbit View";
if (getprop("sim/current-view/z-offset-m") <= -20) { if (getprop("sim/current-view/z-offset-m") <= -20) {
decStep = -2; decStep = -2;

View file

@ -70,10 +70,10 @@ var BrakeSystem =
setprop("gear/gear[2]/R-Thrust",0); setprop("gear/gear[2]/R-Thrust",0);
#Introducing a random error on temp sensors (max 5°C) #Introducing a random error on temp sensors (max 5°C)
setprop("gear/gear[1]/L1error-temp-degc", math.round(rand()*(5)) - 2.5); setprop("gear/gear[1]/L1error-temp-degc", math.round(rand()*(5)));
setprop("gear/gear[1]/L2error-temp-degc", math.round(rand()*(5)) - 2.5); setprop("gear/gear[1]/L2error-temp-degc", math.round(rand()*(5)));
setprop("gear/gear[2]/R3error-temp-degc", math.round(rand()*(5)) - 2.5); setprop("gear/gear[2]/R3error-temp-degc", math.round(rand()*(5)));
setprop("gear/gear[2]/R4error-temp-degc", math.round(rand()*(5)) - 2.5); setprop("gear/gear[2]/R4error-temp-degc", math.round(rand()*(5)));
#var atemp = getprop("environment/temperature-degc") or 0; #var atemp = getprop("environment/temperature-degc") or 0;
#var vmach = getprop("velocities/mach") or 0; #var vmach = getprop("velocities/mach") or 0;

View file

@ -3,17 +3,100 @@
# Copyright (c) 2019 Joshua Davidson (Octal450) # Copyright (c) 2019 Joshua Davidson (Octal450)
var dewpoint = 0;
var temperature = 0; ### Ice sensitive components definition.
var speed = 0; var Iceable = {
var visibility = 0; new: func(node) {
var visibLclWx = 0; var m = { parents: [Iceable] };
var severity = 0; m.ice_inches = node.getNode("ice-inches", 1);
var factor = 0; m.sensitivity = node.getNode("sensitivity", 1);
var deice_prop = node.getValue("salvage-control");
m.deice = deice_prop ? props.globals.getNode(deice_prop, 1) : nil;
var output_prop = node.getValue("output-property");
m.output = output_prop ? props.globals.getNode(output_prop, 1): nil;
return m;
},
update: func(factor, melt) {
var icing = me.ice_inches.getValue();
if(me.deice != nil and me.deice.getBoolValue()) {
icing += melt;
} else {
icing += factor * me.sensitivity.getValue();
}
if(icing < 0) icing = 0;
me.ice_inches.setValue(icing);
if(me.output != nil) me.output.setValue(icing);
},
};
### Icing parameters computation.
# Environmental parameters of the icing model.
var environment = {
dewpoint: props.globals.getNode("environment/dewpoint-degc"),
temperature: props.globals.getNode("environment/temperature-degc"),
visibility: props.globals.getNode("environment/effective-visibility-m"),
visibLclWx: props.globals.getNode("environment/visibility-m"),
};
var effects = {
frost_inch: props.globals.getNode("environment/aircraft-effects/frost-inch", 1),
frost_norm: props.globals.getNode("environment/aircraft-effects/frost-level"),
};
# Icing factor computation.
var maxSpread = 0; var maxSpread = 0;
var icingCond = 0;
var severity_factor_table = [
-0.00000166,
0.00000277,
0.00000277,
0.00000554,
0.00001108,
0.00002216,
];
var melt_factor = -0.00005;
var icing_factor = func() {
var temperature = environment.temperature.getValue();
var dewpoint = environment.dewpoint.getValue();
var visibility = environment.visibility.getValue();
var visibLclWx = environment.visibLclWx.getValue();
# Do we create ice?
var spread = temperature - dewpoint;
# freezing fog or low temp and below dp or in advanced wx cloud
var icingCond = ((spread < maxSpread or visibility < 1000 or visibLclWx < 5000)
and temperature < 0);
# todo: turn this into a table or something
var severity = 0;
if (icingCond) {
if (temperature >= -2) {
severity = 1;
} else if (temperature >= -12) {
severity = 3;
} else if (temperature >= -30) {
severity = 5;
} else if (temperature >= -40) {
severity = 3;
} else if (temperature >= -99) {
severity = 1;
}
}
return severity_factor_table[severity];
}
var speed = 0;
var pause = 0; var pause = 0;
var melt = 0;
var windowprobe = 0; var windowprobe = 0;
var wingBtn = 0; var wingBtn = 0;
var wingFault = 0; var wingFault = 0;
@ -31,40 +114,13 @@ var lengAnti = 0;
var rengAnti = 0; var rengAnti = 0;
var WingHasBeenTurnedOff = 0; var WingHasBeenTurnedOff = 0;
var GroundModeFinished = 0; var GroundModeFinished = 0;
var icing1 = 0;
var sensitive1 = 0;
var v = 0;
var a = 0;
var icing2 = 0;
var sensitive2 = 0;
var u = 0;
var b = 0;
var icing3 = 0;
var sensitive3 = 0;
var t = 0;
var c = 0;
var icing4 = 0;
var sensitive4 = 0;
var s = 0;
var d = 0;
var icing5 = 0;
var sensitive5 = 0;
var r = 0;
var icing6 = 0;
var sensitive6 = 0;
var q = 0;
var e = 0;
var spread = 0;
var windowprb = 0; var windowprb = 0;
var stateL = 0; var stateL = 0;
var stateR = 0; var stateR = 0;
var iceables = [];
var icingInit = func { var icingInit = func {
setprop("systems/icing/severity", "0"); # maximum severity: we will make it random
setprop("systems/icing/factor", 0.0); # the factor is how many inches we add per second
setprop("systems/icing/max-spread-degc", 0.0);
setprop("systems/icing/melt-w-heat-factor", -0.00005000);
setprop("systems/icing/icingcond", 0);
setprop("controls/switches/windowprobeheat", 0); setprop("controls/switches/windowprobeheat", 0);
setprop("controls/switches/wing", 0); setprop("controls/switches/wing", 0);
setprop("controls/switches/wingfault", 0); setprop("controls/switches/wingfault", 0);
@ -80,21 +136,18 @@ var icingInit = func {
setprop("systems/pitot/failed", 1); setprop("systems/pitot/failed", 1);
setprop("controls/deice/WingHasBeenTurnedOff", 0); setprop("controls/deice/WingHasBeenTurnedOff", 0);
setprop("controls/deice/GroundModeFinished", 0); setprop("controls/deice/GroundModeFinished", 0);
iceables = props.globals.getNode("sim/model/icing", 1).getChildren("iceable");
forindex(var i; iceables) {
iceables[i] = Iceable.new(iceables[i]);
}
icing_timer.start(); icing_timer.start();
} }
var icingModel = func { var icingModel = func {
dewpoint = getprop("environment/dewpoint-degc");
temperature = getprop("environment/temperature-degc");
speed = getprop("velocities/airspeed-kt"); speed = getprop("velocities/airspeed-kt");
visibility = getprop("environment/effective-visibility-m");
visibLclWx = getprop("environment/visibility-m");
severity = getprop("systems/icing/severity");
factor = getprop("systems/icing/factor");
maxSpread = getprop("systems/icing/max-spread-degc");
icingCond = getprop("systems/icing/icingcond");
pause = getprop("sim/freeze/master"); pause = getprop("sim/freeze/master");
melt = getprop("systems/icing/melt-w-heat-factor");
windowprobe = getprop("controls/deice/windowprobeheat"); windowprobe = getprop("controls/deice/windowprobeheat");
wingBtn = getprop("controls/switches/wing"); wingBtn = getprop("controls/switches/wing");
wingFault = getprop("controls/switches/wingfault"); wingFault = getprop("controls/switches/wingfault");
@ -112,104 +165,19 @@ var icingModel = func {
rengAnti = getprop("controls/deice/rengine"); rengAnti = getprop("controls/deice/rengine");
WingHasBeenTurnedOff = getprop("controls/deice/WingHasBeenTurnedOff"); WingHasBeenTurnedOff = getprop("controls/deice/WingHasBeenTurnedOff");
GroundModeFinished = getprop("controls/deice/GroundModeFinished"); GroundModeFinished = getprop("controls/deice/GroundModeFinished");
if (temperature >= 0 or !icingCond) { var factor = icing_factor();
setprop("systems/icing/severity", "0"); foreach(iceable; iceables) {
} else if (temperature < 0 and temperature >= -2 and icingCond) { iceable.update(factor, melt_factor);
setprop("systems/icing/severity", "1");
} else if (temperature < -2 and temperature >= -12 and icingCond) {
setprop("systems/icing/severity", "3");
} else if (temperature < -12 and temperature >= -30 and icingCond) {
setprop("systems/icing/severity", "5");
} else if (temperature < -30 and temperature >= -40 and icingCond) {
setprop("systems/icing/severity", "3");
} else if (temperature < -40 and temperature >= -99 and icingCond) {
setprop("systems/icing/severity", "1");
}
icing1 = getprop("sim/model/icing/iceable[0]/ice-inches");
sensitive1 = getprop("sim/model/icing/iceable[0]/sensitivity");
v = icing1 + (factor * sensitive1);
a = icing1 + melt;
if (icing1 < 0.0 and !pause) {
setprop("sim/model/icing/iceable[0]/ice-inches", 0.0);
} else if (wingAnti) {
setprop("sim/model/icing/iceable[0]/ice-inches", a);
} else if (!pause and !wingAnti) {
setprop("sim/model/icing/iceable[0]/ice-inches", v);
}
icing2 = getprop("sim/model/icing/iceable[1]/ice-inches");
sensitive2 = getprop("sim/model/icing/iceable[1]/sensitivity");
u = icing2 + (factor * sensitive2);
b = icing2 + melt;
if (icing2 < 0.0 and !pause) {
setprop("sim/model/icing/iceable[1]/ice-inches", 0.0);
} else if (lengAnti) {
setprop("sim/model/icing/iceable[1]/ice-inches", b);
} else if (!pause and !lengAnti) {
setprop("sim/model/icing/iceable[1]/ice-inches", u);
}
icing3 = getprop("sim/model/icing/iceable[2]/ice-inches");
sensitive3 = getprop("sim/model/icing/iceable[2]/sensitivity");
t = icing3 + (factor * sensitive3);
c = icing3 + melt;
if (icing3 < 0.0 and !pause) {
setprop("sim/model/icing/iceable[2]/ice-inches", 0.0);
} else if (rengAnti) {
setprop("sim/model/icing/iceable[2]/ice-inches", c);
} else if (!pause and !rengAnti) {
setprop("sim/model/icing/iceable[2]/ice-inches", t);
}
icing4 = getprop("sim/model/icing/iceable[3]/ice-inches");
sensitive4 = getprop("sim/model/icing/iceable[3]/sensitivity");
s = icing4 + (factor * sensitive4);
d = icing4 + melt;
if (icing4 < 0.0 and !pause) {
setprop("sim/model/icing/iceable[3]/ice-inches", 0.0);
} else if (windowprobe) {
setprop("sim/model/icing/iceable[3]/ice-inches", d);
} else if (!pause and !windowprobe) {
setprop("sim/model/icing/iceable[3]/ice-inches", s);
}
icing5 = getprop("sim/model/icing/iceable[4]/ice-inches");
sensitive5 = getprop("sim/model/icing/iceable[4]/sensitivity");
r = icing5 + (factor * sensitive5);
if (icing5 < 0.0 and !pause) {
setprop("sim/model/icing/iceable[4]/ice-inches", 0.0);
} else if (!pause) {
setprop("sim/model/icing/iceable[4]/ice-inches", r);
}
icing6 = getprop("sim/model/icing/iceable[5]/ice-inches");
sensitive6 = getprop("sim/model/icing/iceable[5]/sensitivity");
q = icing6 + (factor * sensitive6);
e = icing6 + melt;
if (icing6 < 0.0 and !pause) {
setprop("sim/model/icing/iceable[5]/ice-inches", 0.0);
} else if (windowprobe) {
setprop("sim/model/icing/iceable[5]/ice-inches", e);
} else if (!pause and !windowprobe) {
setprop("sim/model/icing/iceable[5]/ice-inches", q);
}
# Do we create ice?
spread = temperature - dewpoint;
# freezing fog or low temp and below dp or in advanced wx cloud
if ((spread < maxSpread and temperature < 0) or (temperature < 0 and visibility < 1000) or (visibLclWx < 5000 and temperature < 0)) {
setprop("systems/icing/icingcond", 1);
} else {
setprop("systems/icing/icingcond", 0);
} }
effects.frost_norm.setDoubleValue(effects.frost_inch.getValue() * 50);
if (WingHasBeenTurnedOff and !wowl and !wowr and GroundModeFinished) { if (WingHasBeenTurnedOff and !wowl and !wowr and GroundModeFinished) {
setprop("controls/deice/wing", 1); setprop("controls/deice/wing", 1);
setprop("controls/switches/WingHasBeenTurnedOff", 0); setprop("controls/switches/WingHasBeenTurnedOff", 0);
} }
# If we have low pressure we have a fault # If we have low pressure we have a fault
if (PSI < 10) { if (PSI < 10) {
setprop("controls/switches/wingfault", 1); setprop("controls/switches/wingfault", 1);
@ -232,7 +200,7 @@ var icingModel = func {
setprop("systems/pitot/failed", 0); setprop("systems/pitot/failed", 0);
} }
} }
# if ((getprop("systems/electrical/bus/dc-1") == 0 or getprop("systems/electrical/bus/dc-2") == 0) and getprop("fdm/jsbsim/position/wow") == 0) { # if ((getprop("systems/electrical/bus/dc-1") == 0 or getprop("systems/electrical/bus/dc-2") == 0) and getprop("fdm/jsbsim/position/wow") == 0) {
# setprop("controls/switches/leng", 1); # setprop("controls/switches/leng", 1);
# setprop("controls/switches/reng", 1); # setprop("controls/switches/reng", 1);
@ -364,3 +332,4 @@ var update_Icing = func {
} }
var icing_timer = maketimer(0.2, update_Icing); var icing_timer = maketimer(0.2, update_Icing);
icing_timer.simulatedTime = 1;

74
Nasal/Systems/save.nas Normal file
View file

@ -0,0 +1,74 @@
# Copyright (C) 2020 Merspieler, merspieler _at_ airmail.cc
#
# 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 3 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Save and restore properties between sessions
# To add more properties to autosave, just add them here.
var default = [
# CONSUMABLES
# Fuel
"/consumables/fuel/tank[0]/level-lbs",
"/consumables/fuel/tank[1]/level-lbs",
"/consumables/fuel/tank[2]/level-lbs",
"/consumables/fuel/tank[3]/level-lbs",
"/consumables/fuel/tank[4]/level-lbs",
# CONTROLS
# rmp
"/controls/radio/rmp[0]/on",
"/controls/radio/rmp[1]/on",
"/controls/radio/rmp[2]/on",
# efis
"/instrumentation/efis[0]/inputs/range-nm",
"/instrumentation/efis[0]/nd/display-mode",
"/instrumentation/efis[0]/input/lh-vor-adf",
"/instrumentation/efis[0]/input/rh-vor-adf",
"/instrumentation/efis[1]/inputs/range-nm",
"/instrumentation/efis[1]/nd/display-mode",
"/instrumentation/efis[1]/input/lh-vor-adf",
"/instrumentation/efis[1]/input/rh-vor-adf",
# parking brake
"/controls/gear/brake-parking"
];
var save = func (saved_props, file) {
print("Saving state...");
for (var i = 0; i < size(saved_props); i += 1)
{
setprop("/save" ~ saved_props[i], getprop(saved_props[i]));
}
var saveNode = props.globals.getNode("/save", 0);
io.write_properties(file, saveNode);
print("State saved");
}
var restore = func (saved_props, file) {
print("Loading saved state...");
var readNode = props.globals.initNode("/save", );
io.read_properties(file, readNode);
for (var i = 0; i < size(saved_props); i += 1)
{
var val = getprop("/save" ~ saved_props[i]);
if (val != nil)
{
setprop(saved_props[i], val);
}
}
print("Saved state loaded");
}

View file

@ -1595,23 +1595,23 @@
</condition> </condition>
<volume> <volume>
<property>/sim/current-view/internal</property> <property>/sim/current-view/internal</property>
<factor>0.2</factor> <factor>0.4</factor>
</volume> </volume>
<reference-dist>10</reference-dist> <reference-dist>10</reference-dist>
<max-dist>100</max-dist> <max-dist>100</max-dist>
</cricket> </cricket>
<cchord> <cchord>
<name>Cricket</name> <name>C-chord</name>
<path>Aircraft/A320-family/Sounds/Cockpit/c-chord.wav</path> <path>Aircraft/A320-family/Sounds/Cockpit/c-chord.wav</path>
<mode>once</mode> <mode>looped</mode>
<type>avionics</type> <type>avionics</type>
<condition> <condition>
<property>/sim/sound/warnings/cchord</property> <property>/sim/sound/warnings/cchord</property>
</condition> </condition>
<volume> <volume>
<property>/sim/current-view/internal</property> <property>/sim/current-view/internal</property>
<factor>0.2</factor> <factor>0.6</factor>
</volume> </volume>
<reference-dist>10</reference-dist> <reference-dist>10</reference-dist>
<max-dist>100</max-dist> <max-dist>100</max-dist>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -83,89 +83,89 @@
<flipflop> <flipflop>
<type>RS</type> <type>RS</type>
<S> <S>
<property>/ECAM/to-config-set</property> <property>ECAM/to-config-set</property>
</S> </S>
<R> <R>
<property>/ECAM/to-config-reset</property> <property>ECAM/to-config-reset</property>
</R> </R>
<output>/ECAM/to-config-flipflop</output> <output>ECAM/to-config-flipflop</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
<type>RS</type> <type>RS</type>
<S> <S>
<property>/ECAM/to-memo-set</property> <property>ECAM/to-memo-set</property>
</S> </S>
<R> <R>
<property>/ECAM/to-memo-reset</property> <property>ECAM/to-memo-reset</property>
</R> </R>
<output>/ECAM/to-memo-flipflop</output> <output>ECAM/to-memo-flipflop</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
<type>SR</type> <type>SR</type>
<S> <S>
<property>/ECAM/ldg-memo-set</property> <property>ECAM/ldg-memo-set</property>
</S> </S>
<R> <R>
<property>/ECAM/ldg-memo-reset</property> <property>ECAM/ldg-memo-reset</property>
</R> </R>
<output>/ECAM/ldg-memo-flipflop</output> <output>ECAM/ldg-memo-flipflop</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
<type>RS</type> <type>RS</type>
<S> <S>
<property>/ECAM/ldg-memo-2200-set</property> <property>ECAM/ldg-memo-2200-set</property>
</S> </S>
<R> <R>
<property>/ECAM/ldg-memo-2200-reset</property> <property>ECAM/ldg-memo-2200-reset</property>
</R> </R>
<output>/ECAM/ldg-memo-2200-flipflop</output> <output>ECAM/ldg-memo-2200-flipflop</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
<type>SR</type> <type>SR</type>
<S> <S>
<property>/ECAM/phases/flipflop/gear-set</property> <property>ECAM/phases/flipflop/gear-set</property>
</S> </S>
<R> <R>
<property>/ECAM/phases/flipflop/gear-reset</property> <property>ECAM/phases/flipflop/gear-reset</property>
</R> </R>
<output>/ECAM/phases/flipflop/gear-output</output> <output>ECAM/phases/flipflop/gear-output</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
<type>SR</type> <type>SR</type>
<S> <S>
<property>/ECAM/phases/flipflop/phase-2-set</property> <property>ECAM/phases/flipflop/phase-2-set</property>
</S> </S>
<R> <R>
<property>/ECAM/phases/flipflop/phase-2-reset</property> <property>ECAM/phases/flipflop/phase-2-reset</property>
</R> </R>
<output>/ECAM/phases/flipflop/phase-2-output</output> <output>ECAM/phases/flipflop/phase-2-output</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
<type>RS</type> <type>RS</type>
<S> <S>
<property>/ECAM/phases/flipflop/phase-10-set</property> <property>ECAM/phases/flipflop/phase-10-set</property>
</S> </S>
<R> <R>
<property>/ECAM/phases/flipflop/phase-10-reset</property> <property>ECAM/phases/flipflop/phase-10-reset</property>
</R> </R>
<output>/ECAM/phases/flipflop/phase-10-output</output> <output>ECAM/phases/flipflop/phase-10-output</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
<type>RS</type> <type>RS</type>
<S> <S>
<property>/ECAM/flipflop/recall-set</property> <property>ECAM/flipflop/recall-set</property>
</S> </S>
<R> <R>
<property>/ECAM/flipflop/recall-reset</property> <property>ECAM/flipflop/recall-reset</property>
</R> </R>
<output>/ECAM/flipflop/recall-output</output> <output>ECAM/flipflop/recall-output</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
@ -175,10 +175,10 @@
</time> </time>
<S> <S>
<not> <not>
<property>/ECAM/phases/speed-gt-80</property> <property>ECAM/phases/speed-gt-80</property>
</not> </not>
</S> </S>
<output>/ECAM/phases/monostable-80kt</output> <output>ECAM/phases/monostable-80kt</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
@ -187,9 +187,9 @@
<value>300.0</value> <value>300.0</value>
</time> </time>
<S> <S>
<property>/ECAM/phases/monostable/phase-1-300</property> <property>ECAM/phases/monostable/phase-1-300</property>
</S> </S>
<output>/ECAM/phases/monostable/phase-1-output</output> <output>ECAM/phases/monostable/phase-1-output</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
@ -198,9 +198,9 @@
<value>120.0</value> <value>120.0</value>
</time> </time>
<S> <S>
<property>/ECAM/phases/monostable/phase-5</property> <property>ECAM/phases/monostable/phase-5</property>
</S> </S>
<output>/ECAM/phases/monostable/phase-5-output</output> <output>ECAM/phases/monostable/phase-5-output</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
@ -209,9 +209,9 @@
<value>180.0</value> <value>180.0</value>
</time> </time>
<S> <S>
<property>/ECAM/phases/monostable/phase-7</property> <property>ECAM/phases/monostable/phase-7</property>
</S> </S>
<output>/ECAM/phases/monostable/phase-7-output</output> <output>ECAM/phases/monostable/phase-7-output</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
@ -220,12 +220,159 @@
<value>5.0</value> <value>5.0</value>
</time> </time>
<S> <S>
<property>/ECAM/buttons/recall-status-normal</property> <property>ECAM/buttons/recall-status-normal</property>
</S> </S>
<R> <R>
<property>/ECAM/buttons/clear-btn</property> <property>ECAM/buttons/clear-btn</property>
</R> </R>
<output>/ECAM/buttons/recall-status-normal-output</output> <output>ECAM/buttons/recall-status-normal-output</output>
</flipflop>
<flipflop>
<type>SR</type>
<S>
<property>ECAM/altitude-alert-monostable-set</property>
</S>
<R>
<property>ECAM/altitude-alert-monostable-intermediate-output</property>
</R>
<output>ECAM/altitude-alert-monostable-flipflop-intermediate</output>
</flipflop>
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>1.5</value>
</time>
<S>
<not><property>ECAM/altitude-alert-monostable-flipflop-intermediate</property></not>
</S>
<output>ECAM/altitude-alert-monostable-intermediate-output</output>
</flipflop>
<filter>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<and>
<property>ECAM/altitude-alert-monostable-flipflop-intermediate</property>
<not><property>ECAM/altitude-alert-monostable-intermediate-output</property></not>
</and>
</condition>
<value>1</value>
</input>
<output>ECAM/altitude-alert-monostable-output</output>
</filter>
<filter>
<type>derivative</type>
<input>it-autoflight/input/alt</input>
<output>it-autoflight/input/alt-is-changing</output>
<filter-time>1.0</filter-time>
</filter>
<flipflop>
<type>monostable</type>
<time>
<value>1</value>
</time>
<S>
<property>it-autoflight/input/alt-is-changing</property>
</S>
<output>ECAM/alt-is-changing</output>
</flipflop>
<filter>
<input>
<condition>
<equals>
<property>gear/gear[0]/position-norm</property>
<value>1</value>
</equals>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not-equals>
<property>gear/gear[0]/position-norm</property>
<value>1</value>
</not-equals>
</condition>
<value>0</value>
</input>
<output>ECAM/gear-downlocked-set</output>
</filter>
<flipflop>
<type>monostable</type>
<time>
<value>1</value>
</time>
<S>
<property>ECAM/gear-downlocked-set</property>
</S>
<output>ECAM/gear-downlocked-output</output>
</flipflop>
<filter>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<or>
<equals><property>ECAM/gear-downlocked-output</property><value>1</value></equals>
<equals><property>ECAM/alt-is-changing</property><value>1</value></equals>
</or>
</condition>
<value>1</value>
</input>
<input>
<condition>
<and>
<equals><property>ECAM/gear-downlocked-output</property><value>0</value></equals>
<equals><property>ECAM/alt-is-changing</property><value>0</value></equals>
</and>
</condition>
<value>0</value>
</input>
<output>ECAM/flipflop/alt-alert-rs-reset</output>
</filter>
<flipflop>
<type>RS</type>
<S>
<property>ECAM/flipflop/altitude-alert-rs-set</property>
</S>
<R>
<property>ECAM/flipflop/alt-alert-rs-reset</property>
</R>
<output>ECAM/flipflop/alt-alert-rs-output</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>ECAM/flipflop/alt-alert-2-rs-set</property>
</S>
<R>
<property>ECAM/flipflop/alt-alert-2-rs-reset</property>
</R>
<output>ECAM/flipflop/alt-alert-2-rs-output</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>
<property>ECAM/flipflop/alt-alert-3-rs-set</property>
</S>
<R>
<property>ECAM/flipflop/alt-alert-rs-reset</property>
</R>
<output>ECAM/flipflop/alt-alert-3-rs-output</output>
</flipflop> </flipflop>
<!-- falling edge detector - take inverse of following --> <!-- falling edge detector - take inverse of following -->
@ -236,9 +383,9 @@
<value>3.0</value> <value>3.0</value>
</time> </time>
<S> <S>
<property>/ECAM/phases/monostable/phase-9</property> <property>ECAM/phases/monostable/phase-9</property>
</S> </S>
<output>/ECAM/phases/monostable/phase-9-output</output> <output>ECAM/phases/monostable/phase-9-output</output>
</flipflop> </flipflop>
<flipflop> <flipflop>
@ -248,9 +395,9 @@
<value>1.0</value> <value>1.0</value>
</time> </time>
<S> <S>
<property>/ECAM/phases/to-power-set</property> <property>ECAM/phases/to-power-set</property>
</S> </S>
<output>/ECAM/phases/monostable/to-power-set-output</output> <output>ECAM/phases/monostable/to-power-set-output</output>
</flipflop> </flipflop>
</PropertyList> </PropertyList>

56
Systems/glass-effect.xml Normal file
View file

@ -0,0 +1,56 @@
<?xml version="1.0"?>
<!-- Copyright (c) 2019 Joshua Davidson (Octal450) -->
<system name="glass-effect">
<channel name="rain">
<fcs_function name="glass-effects/splashx">
<function>
<table>
<independentVar>velocities/u-aero-fps</independentVar>
<tableData>
0 0.01
7 0.01
8 -0.01
25 -0.5
50 -1.2
120 -2
</tableData>
</table>
</function>
<output>/environment/aircraft-effects/splash-vector-x</output>
</fcs_function>
<fcs_function name="glass-effects/splashy">
<function>
<table>
<independentVar>velocities/v-aero-fps</independentVar>
<tableData>
-25 -0.1
-8 0
8 0
25 0.1
</tableData>
</table>
</function>
<output>/environment/aircraft-effects/splash-vector-y</output>
</fcs_function>
<fcs_function name="glass-effects/splashz">
<function>
<table>
<independentVar>velocities/u-aero-fps</independentVar>
<tableData>
0 1.2
7 1.2
8 0.9
25 0.9
50 -0.2
120 -0.5
</tableData>
</table>
</function>
<output>/environment/aircraft-effects/splash-vector-z</output>
</fcs_function>
</channel>
</system>

View file

@ -1,58 +0,0 @@
<?xml version="1.0"?>
<!-- Copyright (c) 2019 Joshua Davidson (Octal450) -->
<system name="glass-effect1">
<channel name="rain">
<fcs_function name="glass-effects/airspeed-clamped-sqrt">
<function>
<sqrt>
<quotient>
<min>
<property>/velocities/airspeed-kt</property>
<value>40</value>
</min>
<value>40</value>
</quotient>
</sqrt>
</function>
</fcs_function>
<fcs_function name="glass-effects/splashx">
<function>
<difference>
<value>-0.1</value>
<product>
<value>2.0</value>
<property>/fdm/jsbsim/glass-effects/airspeed-clamped-sqrt</property>
</product>
</difference>
</function>
<output>/environment/aircraft-effects/splash-vector-x</output>
</fcs_function>
<fcs_function name="glass-effects/splashy">
<function>
<value>0.0</value>
</function>
<output>/environment/aircraft-effects/splash-vector-y</output>
</fcs_function>
<fcs_function name="glass-effects/splashz">
<function>
<difference>
<value>1.0</value>
<product>
<value>1.35</value>
<property>/fdm/jsbsim/glass-effects/airspeed-clamped-sqrt</property>
</product>
</difference>
</function>
<output>/environment/aircraft-effects/splash-vector-z</output>
</fcs_function>
</channel>
</system>

View file

@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2019 Joshua Davidson (Octal450) -->
<PropertyList>
<filter>
<name>splashX</name>
<type>gain</type>
<input>
<property>/fdm/jsbsim/glass-effects/splashx</property>
</input>
<output>
<property>/environment/aircraft-effects/splash-vector-x</property>
</output>
</filter>
<filter>
<name>splashY</name>
<type>gain</type>
<input>
<value>0.0</value>
</input>
<output>
<property>/environment/aircraft-effects/splash-vector-y</property>
</output>
</filter>
<filter>
<name>splashZ</name>
<type>gain</type>
<input>
<property>/fdm/jsbsim/glass-effects/splashz</property>
</input>
<output>
<property>/environment/aircraft-effects/splash-vector-z</property>
</output>
</filter>
</PropertyList>

View file

@ -608,27 +608,6 @@
<output>/systems/pressurization/targetvs</output> <output>/systems/pressurization/targetvs</output>
</filter> </filter>
<filter>
<name>Icing Severity</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/icing/severity</property>
<entry><ind>0</ind><dep>-0.00000166</dep></entry>
<entry><ind>1</ind><dep> 0.00000277</dep></entry>
<entry><ind>2</ind><dep> 0.00000277</dep></entry>
<entry><ind>3</ind><dep> 0.00000554</dep></entry>
<entry><ind>4</ind><dep> 0.00001108</dep></entry>
<entry><ind>5</ind><dep> 0.00002216</dep></entry>
</table>
</expression>
</input>
<output>/systems/icing/factor</output>
</filter>
<filter> <filter>
<name>TAS</name> <name>TAS</name>
<type>gain</type> <type>gain</type>