Merge branch 'dev' into FMGC
|
@ -160,7 +160,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect1"/>
|
||||
<system file="glass-effect"/>
|
||||
<system file="a320-fcs"/>
|
||||
<system file="a320-fuel"/>
|
||||
<system file="a320-fwc"/>
|
||||
|
|
|
@ -159,7 +159,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect1"/>
|
||||
<system file="glass-effect"/>
|
||||
<system file="a320-fcs"/>
|
||||
<system file="a320-adr"/>
|
||||
<system file="a320-fuel"/>
|
||||
|
|
|
@ -159,7 +159,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect1"/>
|
||||
<system file="glass-effect"/>
|
||||
<system file="a320-fcs"/>
|
||||
<system file="a320-fuel"/>
|
||||
<system file="a320-fwc"/>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<!-- Copyright (c) 2019 Joshua Davidson (Octal450) -->
|
||||
|
||||
<PropertyList>
|
||||
<PropertyList include="Aircraft/Generic/Human/Include/walker-include.xml">
|
||||
<sim>
|
||||
|
||||
<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>
|
||||
<salvage-control>/controls/deice/windowprobeheat</salvage-control>
|
||||
<sensitivity type="double">0.5</sensitivity>
|
||||
<!-- not relevant for fdm, ignore output-property -->
|
||||
<output-property>/environment/aircraft-effects/frost-inch</output-property>
|
||||
</iceable>
|
||||
<iceable>
|
||||
<name>Fuselage</name>
|
||||
<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>
|
||||
<salvage-control>services/deicing_truck/deicing/position-norm</salvage-control>
|
||||
<output-property>/fdm/jsbsim/ice/fuselage</output-property>
|
||||
</iceable>
|
||||
<iceable>
|
||||
|
@ -459,6 +460,12 @@
|
|||
</fuel>
|
||||
</consumables>
|
||||
|
||||
<environment>
|
||||
<aircraft-effects>
|
||||
<frost-inch type="double">0</frost-inch>
|
||||
</aircraft-effects>
|
||||
</environment>
|
||||
|
||||
<fdm>
|
||||
<jsbsim>
|
||||
<external_reactions>
|
||||
|
@ -1676,6 +1683,33 @@
|
|||
<script>libraries.resetView();</script>
|
||||
</binding>
|
||||
</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">
|
||||
<name>x</name>
|
||||
<desc>Decrease field of view</desc>
|
||||
|
@ -1685,6 +1719,15 @@
|
|||
<script>libraries.fovZoom(-1);</script>
|
||||
</binding>
|
||||
</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">
|
||||
<name>DEL</name>
|
||||
<desc>Simple Engage/Disengage reversers</desc>
|
||||
|
@ -1800,6 +1843,12 @@
|
|||
<value>0</value>
|
||||
<value>1</value>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>property-cycle</command>
|
||||
<property>sim/rendering/als-secondary-lights/use-searchlight</property>
|
||||
<value>0</value>
|
||||
<value>1</value>
|
||||
</binding>
|
||||
</key>
|
||||
</keyboard>
|
||||
</input>
|
||||
|
@ -1870,6 +1919,7 @@
|
|||
<file>Aircraft/A320-family/Nasal/MCDU/MCDU.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/PERFAPPR.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/PERFDES.nas</file>
|
||||
|
@ -1931,6 +1981,9 @@
|
|||
<file>Aircraft/A320-family/gui/dialogs/refuel.nas</file>
|
||||
<file>Aircraft/A320-family/gui/dialogs/rmp.nas</file>
|
||||
</Dialogs>
|
||||
<save>
|
||||
<file>Aircraft/A320-family/Nasal/Systems/save.nas</file>
|
||||
</save>
|
||||
</nasal>
|
||||
|
||||
</PropertyList>
|
||||
|
|
|
@ -159,7 +159,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect1"/>
|
||||
<system file="glass-effect"/>
|
||||
<system file="a320-fcs"/>
|
||||
<system file="a320-fuel"/>
|
||||
<system file="a320-fwc"/>
|
||||
|
|
|
@ -159,7 +159,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect1"/>
|
||||
<system file="glass-effect"/>
|
||||
<system file="a320-fcs"/>
|
||||
<system file="a320-fuel"/>
|
||||
<system file="a320-fwc"/>
|
||||
|
|
|
@ -96,6 +96,7 @@ setprop("systems/acconfig/options/weight-kgs", 0);
|
|||
setprop("systems/acconfig/options/adirs-skip", 0);
|
||||
setprop("systems/acconfig/options/welcome-skip", 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/nd-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);
|
||||
writeSettings();
|
||||
if (getprop("options/system/save-state") == 1)
|
||||
{
|
||||
save.restore(save.default, getprop("sim/fg-home") ~ "/Export/" ~ getprop("sim/aircraft") ~ "-save.xml");
|
||||
}
|
||||
spinning.stop();
|
||||
});
|
||||
|
||||
setlistener("/sim/signals/exit", func {
|
||||
save.save(save.default, getprop("sim/fg-home") ~ "/Export/" ~ getprop("sim/aircraft") ~ "-save.xml");
|
||||
});
|
||||
|
||||
var renderingSettings = {
|
||||
check: func() {
|
||||
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");
|
||||
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/save-state", getprop("systems/acconfig/options/save-state"));
|
||||
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-wingtip", getprop("systems/acconfig/options/autopush/show-wingtip"));
|
||||
|
@ -232,6 +242,7 @@ var readSettings = func {
|
|||
var writeSettings = func {
|
||||
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/save-state", getprop("options/system/save-state"));
|
||||
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-wingtip", getprop("sim/model/autopush/route/show-wingtip"));
|
||||
|
|
|
@ -427,6 +427,27 @@
|
|||
<live>true</live>
|
||||
</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>
|
||||
<layout>hbox</layout>
|
||||
|
||||
|
|
|
@ -386,6 +386,16 @@
|
|||
</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 -->
|
||||
<model>
|
||||
<name>Pushback</name>
|
||||
|
|
|
@ -416,6 +416,16 @@
|
|||
</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 -->
|
||||
<model>
|
||||
<name>Pushback</name>
|
||||
|
|
|
@ -416,6 +416,16 @@
|
|||
</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 -->
|
||||
<model>
|
||||
<name>Pushback</name>
|
||||
|
|
|
@ -395,6 +395,16 @@
|
|||
</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 -->
|
||||
<model>
|
||||
<name>Pushback</name>
|
||||
|
|
|
@ -395,6 +395,16 @@
|
|||
</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 -->
|
||||
<model>
|
||||
<name>Pushback</name>
|
||||
|
|
146
Models/Effects/Moisture-neo.xml
Normal 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>
|
||||
|
|
@ -8,10 +8,10 @@
|
|||
<emissive>false</emissive>
|
||||
<lighting>false</lighting>
|
||||
<offsets>
|
||||
<x-m>3</x-m>
|
||||
<x-m>0.3</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<pitch-deg>-90</pitch-deg>
|
||||
<z-m>-1</z-m>
|
||||
<pitch-deg>0</pitch-deg>
|
||||
</offsets>
|
||||
|
||||
<attach>local</attach>
|
||||
|
@ -30,18 +30,18 @@
|
|||
<spread>0</spread>
|
||||
</speed>
|
||||
<rotation-speed>
|
||||
<x-min-deg-sec>0</x-min-deg-sec>
|
||||
<y-min-deg-sec>0</y-min-deg-sec>
|
||||
<z-min-deg-sec>0</z-min-deg-sec>
|
||||
<x-max-deg-sec>0</x-max-deg-sec>
|
||||
<y-max-deg-sec>0</y-max-deg-sec>
|
||||
<z-max-deg-sec>0</z-max-deg-sec>
|
||||
<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>150</value>
|
||||
<value>50</value>
|
||||
<spread>0</spread>
|
||||
</particles-per-sec>
|
||||
</counter>
|
||||
|
@ -54,33 +54,38 @@
|
|||
<red>
|
||||
<expression>
|
||||
<product>
|
||||
<value>1.0</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</red>
|
||||
<green>
|
||||
<expression>
|
||||
<product>
|
||||
<value>1.0</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</green>
|
||||
<blue>
|
||||
<expression>
|
||||
<product>
|
||||
<value>1.0</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</blue>
|
||||
<alpha>
|
||||
<value>0.00000001</value>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.003</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</alpha>
|
||||
</color>
|
||||
<size>
|
||||
<value>1</value>
|
||||
<value>1.0</value>
|
||||
</size>
|
||||
</start>
|
||||
|
||||
|
@ -89,44 +94,49 @@
|
|||
<red>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.7</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</red>
|
||||
<green>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.7</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</green>
|
||||
<blue>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.7</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</blue>
|
||||
<alpha>
|
||||
<value>0.3</value>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.0009</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</alpha>
|
||||
</color>
|
||||
<size>
|
||||
<value>2</value>
|
||||
<value>1.4</value>
|
||||
</size>
|
||||
</end>
|
||||
|
||||
<life-sec><value>0.4</value></life-sec>
|
||||
<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">true</gravity>
|
||||
<gravity type="bool">false</gravity>
|
||||
<wind type="bool">false</wind>
|
||||
</program>
|
||||
|
||||
|
|
|
@ -5,43 +5,52 @@
|
|||
<particlesystem>
|
||||
<name>engine-spray-reverse</name>
|
||||
<texture>res/smoke.png</texture>
|
||||
<emissive type="bool">false</emissive>
|
||||
<lighting type="bool">false</lighting>
|
||||
<offsets>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<pitch-deg>180</pitch-deg>
|
||||
</offsets>
|
||||
<emissive>false</emissive>
|
||||
<lighting>false</lighting>
|
||||
|
||||
<attach>world</attach>
|
||||
|
||||
<placer>
|
||||
<type>point</type>
|
||||
<type>segments</type>
|
||||
<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>
|
||||
<theta-min-deg>-1.5</theta-min-deg>
|
||||
<theta-max-deg>1.5</theta-max-deg>
|
||||
<phi-min-deg>-1.5</phi-min-deg>
|
||||
<phi-max-deg>1.5</phi-max-deg>
|
||||
<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-mps>
|
||||
<value>0</value>
|
||||
<spread>0</spread>
|
||||
<value>10</value>
|
||||
<spread>1</spread>
|
||||
</speed-mps>
|
||||
<rotation-speed>
|
||||
<x-min-deg-sec>0</x-min-deg-sec>
|
||||
<y-min-deg-sec>0</y-min-deg-sec>
|
||||
<z-min-deg-sec>0</z-min-deg-sec>
|
||||
<x-max-deg-sec>0</x-max-deg-sec>
|
||||
<y-max-deg-sec>0</y-max-deg-sec>
|
||||
<z-max-deg-sec>0</z-max-deg-sec>
|
||||
<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>
|
||||
<property>environment/surface/wetness</property>
|
||||
<value>50</value>
|
||||
</product>
|
||||
</expression>
|
||||
<spread>0</spread>
|
||||
</particles-per-sec>
|
||||
</counter>
|
||||
|
@ -54,83 +63,90 @@
|
|||
<red>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.7</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</red>
|
||||
<green>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.7</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</green>
|
||||
<blue>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.7</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</blue>
|
||||
<alpha>
|
||||
<value>0.3</value>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.2</value>
|
||||
<property>environment/surface/wetness</property>
|
||||
</product>
|
||||
</expression>
|
||||
</alpha>
|
||||
</color>
|
||||
<size>
|
||||
<value>2</value>
|
||||
<value>5</value>
|
||||
</size>
|
||||
</start>
|
||||
|
||||
<end>
|
||||
<color>
|
||||
<red>
|
||||
<expression>
|
||||
<product>
|
||||
<value>1.0</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</red>
|
||||
<green>
|
||||
<expression>
|
||||
<product>
|
||||
<value>1.0</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</green>
|
||||
<blue>
|
||||
<expression>
|
||||
<product>
|
||||
<value>1.0</value>
|
||||
<property>rendering/scene/diffuse/red</property>
|
||||
<value>0.01</value>
|
||||
<property>environment/relative-humidity</property>
|
||||
</product>
|
||||
</expression>
|
||||
</blue>
|
||||
<alpha>
|
||||
<value>0.00000001</value>
|
||||
<expression>
|
||||
<product>
|
||||
<value>0.1</value>
|
||||
<property>environment/surface/wetness</property>
|
||||
</product>
|
||||
</expression>
|
||||
</alpha>
|
||||
</color>
|
||||
<size>
|
||||
<value>3</value>
|
||||
<value>10</value>
|
||||
</size>
|
||||
</end>
|
||||
|
||||
<life-sec>
|
||||
<value>0.4</value>
|
||||
<value>0.5</value>
|
||||
</life-sec>
|
||||
|
||||
<mass-kg>0.5</mass-kg>
|
||||
<radius-m>0.1</radius-m>
|
||||
<mass-kg>0.025</mass-kg>
|
||||
<radius-m>0.175</radius-m>
|
||||
</particle>
|
||||
|
||||
<program>
|
||||
<fluid>air</fluid>
|
||||
<gravity type="bool">true</gravity>
|
||||
<wind typ="bool">true</wind>
|
||||
<gravity>true</gravity>
|
||||
<wind>true</wind>
|
||||
</program>
|
||||
</particlesystem>
|
||||
|
||||
|
|
|
@ -25,27 +25,32 @@
|
|||
</placer>
|
||||
|
||||
<shooter>
|
||||
<theta-min-deg>15</theta-min-deg>
|
||||
<theta-max-deg>60</theta-max-deg>
|
||||
<phi-min-deg>-5</phi-min-deg>
|
||||
<phi-max-deg>5</phi-max-deg>
|
||||
<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-mps>
|
||||
<value>250</value>
|
||||
<spread>15</spread>
|
||||
</speed-mps>
|
||||
<rotation-speed>
|
||||
<x-max-deg-sec>15</x-max-deg-sec>
|
||||
<x-min-deg-sec>-15</x-min-deg-sec>
|
||||
<y-max-deg-sec>15</y-max-deg-sec>
|
||||
<y-min-deg-sec>-15</y-min-deg-sec>
|
||||
<z-max-deg-sec>15</z-max-deg-sec>
|
||||
<z-min-deg-sec>-15</z-min-deg-sec>
|
||||
<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>
|
||||
<property>environment/surface/wetness</property>
|
||||
<value>100</value>
|
||||
</product>
|
||||
</expression>
|
||||
<spread>10</spread>
|
||||
</particles-per-sec>
|
||||
</counter>
|
||||
|
@ -55,21 +60,77 @@
|
|||
<particle>
|
||||
<start>
|
||||
<color>
|
||||
<red><value>0.9</value></red>
|
||||
<green><value>0.9</value></green>
|
||||
<blue><value>0.9</value></blue>
|
||||
<alpha><value>0.04</value></alpha>
|
||||
<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.05</value>
|
||||
</product>
|
||||
</expression>
|
||||
</alpha>
|
||||
</color>
|
||||
<size>
|
||||
<value>0.5</value>
|
||||
<value>5</value>
|
||||
</size>
|
||||
</start>
|
||||
<end>
|
||||
<color>
|
||||
<red><value>1</value></red>
|
||||
<green><value>1</value></green>
|
||||
<blue><value>1</value></blue>
|
||||
<alpha><value>0.02</value></alpha>
|
||||
<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>
|
||||
|
|
261
Models/Effects/wing-condensation-L.xml
Normal 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>
|
261
Models/Effects/wing-condensation-R.xml
Normal 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>
|
|
@ -51,24 +51,7 @@
|
|||
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
|
||||
<name>contrail</name>
|
||||
<condition>
|
||||
<and>
|
||||
<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>
|
||||
<property>environment/contrail</property>
|
||||
</condition>
|
||||
<overlay>
|
||||
<params>
|
||||
|
@ -84,7 +67,7 @@
|
|||
|
||||
<!-- Takeoff/Landing Engine Moisture -->
|
||||
<model>
|
||||
<path>Aircraft/A320-family/Models/Effects/Moisture.xml</path>
|
||||
<path>Aircraft/A320-family/Models/Effects/Moisture-neo.xml</path>
|
||||
<name>moisture</name>
|
||||
<condition>
|
||||
<and>
|
||||
|
@ -111,9 +94,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>-0.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<z-m>0.4</z-m>
|
||||
<pitch-deg>0</pitch-deg>
|
||||
</offsets>
|
||||
</model>
|
||||
|
@ -186,9 +169,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>0.875</x-m>
|
||||
<x-m>-1.0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>-2.5</z-m>
|
||||
<z-m>0</z-m>
|
||||
</offsets>
|
||||
</model>
|
||||
|
||||
|
|
|
@ -51,24 +51,7 @@
|
|||
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
|
||||
<name>contrail</name>
|
||||
<condition>
|
||||
<and>
|
||||
<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>
|
||||
<property>environment/contrail</property>
|
||||
</condition>
|
||||
<overlay>
|
||||
<params>
|
||||
|
@ -84,7 +67,7 @@
|
|||
|
||||
<!-- Takeoff/Landing Engine Moisture -->
|
||||
<model>
|
||||
<path>Aircraft/A320-family/Models/Effects/Moisture.xml</path>
|
||||
<path>Aircraft/A320-family/Models/Effects/Moisture-neo.xml</path>
|
||||
<name>moisture</name>
|
||||
<condition>
|
||||
<and>
|
||||
|
@ -114,9 +97,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>-0.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<z-m>0.4</z-m>
|
||||
<pitch-deg>0</pitch-deg>
|
||||
</offsets>
|
||||
</model>
|
||||
|
@ -189,9 +172,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>0.875</x-m>
|
||||
<x-m>-1.0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>-2.5</z-m>
|
||||
<z-m>0</z-m>
|
||||
</offsets>
|
||||
</model>
|
||||
|
||||
|
|
|
@ -38,24 +38,7 @@
|
|||
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
|
||||
<name>contrail</name>
|
||||
<condition>
|
||||
<and>
|
||||
<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>
|
||||
<property>environment/contrail</property>
|
||||
</condition>
|
||||
<overlay>
|
||||
<params>
|
||||
|
@ -71,7 +54,7 @@
|
|||
|
||||
<!-- Takeoff/Landing Engine Moisture -->
|
||||
<model>
|
||||
<path>Aircraft/A320-family/Models/Effects/Moisture.xml</path>
|
||||
<path>Aircraft/A320-family/Models/Effects/Moisture-neo.xml</path>
|
||||
<name>moisture</name>
|
||||
<condition>
|
||||
<and>
|
||||
|
@ -98,7 +81,7 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>-0.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<pitch-deg>0</pitch-deg>
|
||||
|
@ -173,9 +156,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>1.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>-1</z-m>
|
||||
<z-m>0</z-m>
|
||||
</offsets>
|
||||
</model>
|
||||
|
||||
|
|
|
@ -38,24 +38,7 @@
|
|||
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
|
||||
<name>contrail</name>
|
||||
<condition>
|
||||
<and>
|
||||
<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>
|
||||
<property>environment/contrail</property>
|
||||
</condition>
|
||||
<overlay>
|
||||
<params>
|
||||
|
@ -71,7 +54,7 @@
|
|||
|
||||
<!-- Takeoff/Landing Engine Moisture -->
|
||||
<model>
|
||||
<path>Aircraft/A320-family/Models/Effects/Moisture.xml</path>
|
||||
<path>Aircraft/A320-family/Models/Effects/Moisture-neo.xml</path>
|
||||
<name>moisture</name>
|
||||
<condition>
|
||||
<and>
|
||||
|
@ -98,7 +81,7 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>-0.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<pitch-deg>0</pitch-deg>
|
||||
|
@ -173,9 +156,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>1.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>-1</z-m>
|
||||
<z-m>0</z-m>
|
||||
</offsets>
|
||||
</model>
|
||||
|
||||
|
|
|
@ -40,24 +40,7 @@
|
|||
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
|
||||
<name>contrail</name>
|
||||
<condition>
|
||||
<and>
|
||||
<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>
|
||||
<property>environment/contrail</property>
|
||||
</condition>
|
||||
<overlay>
|
||||
<params>
|
||||
|
@ -100,9 +83,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>-0.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<z-m>0.3</z-m>
|
||||
<pitch-deg>0</pitch-deg>
|
||||
</offsets>
|
||||
</model>
|
||||
|
@ -175,9 +158,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>0.875</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>-2.5</z-m>
|
||||
<z-m>0</z-m>
|
||||
</offsets>
|
||||
</model>
|
||||
|
||||
|
|
|
@ -40,24 +40,7 @@
|
|||
<name>contrail</name>
|
||||
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
|
||||
<condition>
|
||||
<and>
|
||||
<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>
|
||||
<property>environment/contrail</property>
|
||||
</condition>
|
||||
<overlay>
|
||||
<params>
|
||||
|
@ -100,9 +83,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>-0.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<z-m>0.3</z-m>
|
||||
<pitch-deg>0</pitch-deg>
|
||||
</offsets>
|
||||
</model>
|
||||
|
@ -175,9 +158,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>0.875</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>-2.5</z-m>
|
||||
<z-m>0</z-m>
|
||||
</offsets>
|
||||
</model>
|
||||
|
||||
|
|
|
@ -37,24 +37,7 @@
|
|||
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
|
||||
<name>contrail</name>
|
||||
<condition>
|
||||
<and>
|
||||
<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>
|
||||
<property>environment/contrail</property>
|
||||
</condition>
|
||||
<overlay>
|
||||
<params>
|
||||
|
@ -97,9 +80,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>-0.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<z-m>0.5</z-m>
|
||||
<pitch-deg>0</pitch-deg>
|
||||
</offsets>
|
||||
</model>
|
||||
|
@ -172,9 +155,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>0.875</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>-2.5</z-m>
|
||||
<z-m>0</z-m>
|
||||
</offsets>
|
||||
</model>
|
||||
|
||||
|
|
|
@ -37,24 +37,7 @@
|
|||
<path>Aircraft/A320-family/Models/Effects/contrail.xml</path>
|
||||
<name>contrail</name>
|
||||
<condition>
|
||||
<and>
|
||||
<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>
|
||||
<property>environment/contrail</property>
|
||||
</condition>
|
||||
<overlay>
|
||||
<params>
|
||||
|
@ -97,9 +80,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>-0.5</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>0</z-m>
|
||||
<z-m>0.5</z-m>
|
||||
<pitch-deg>0</pitch-deg>
|
||||
</offsets>
|
||||
</model>
|
||||
|
@ -172,9 +155,9 @@
|
|||
</and>
|
||||
</condition>
|
||||
<offsets>
|
||||
<x-m>0.875</x-m>
|
||||
<x-m>0</x-m>
|
||||
<y-m>0</y-m>
|
||||
<z-m>-2.5</z-m>
|
||||
<z-m>0</z-m>
|
||||
</offsets>
|
||||
</model>
|
||||
|
||||
|
|
|
@ -5307,6 +5307,10 @@
|
|||
</condition>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
if (getprop("sim/sound/warnings/cchord")) {
|
||||
setprop("sim/sound/warnings/cchord-inhibit", 1);
|
||||
}
|
||||
|
||||
if (getprop("it-autoflight/output/ap-warning") == 1) {
|
||||
setprop("it-autoflight/output/ap-warning", 0);
|
||||
}
|
||||
|
|
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 55 KiB |
|
@ -14,7 +14,7 @@
|
|||
|
||||
<effect>
|
||||
<inherits-from>Effects/glass</inherits-from>
|
||||
<object-name>Windshield</object-name>
|
||||
<object-name>Windsheild</object-name>
|
||||
<object-name>Windows</object-name>
|
||||
<object-name>glass</object-name>
|
||||
<object-name>glass1</object-name>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<effect>
|
||||
<inherits-from>Effects/glass</inherits-from>
|
||||
<object-name>Windshield</object-name>
|
||||
<object-name>Windsheild</object-name>
|
||||
<object-name>Windows</object-name>
|
||||
<object-name>glass</object-name>
|
||||
<object-name>glass1</object-name>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<effect>
|
||||
<inherits-from>Effects/glass</inherits-from>
|
||||
<object-name>Windshield</object-name>
|
||||
<object-name>Windsheild</object-name>
|
||||
<object-name>Windows</object-name>
|
||||
<object-name>glass</object-name>
|
||||
<object-name>glass1</object-name>
|
||||
|
|
|
@ -168,6 +168,13 @@ var canvas_MCDU_base = {
|
|||
me["PERFTO_SE"].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;
|
||||
|
||||
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_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",
|
||||
"PERFTO_FE","PERFTO_SE","PERFTO_OE","FPLN","FPLN_From","FPLN_TMPY_group","FPLN_Callsign","departureTMPY", "arrowsDepArr","arrow1L","arrow2L","arrow3L"
|
||||
,"arrow4L","arrow5L","arrow1R","arrow2R","arrow3R","arrow4R","arrow5R"];
|
||||
"PERFTO_FE","PERFTO_SE","PERFTO_OE","PERFAPPR","PERFAPPR_FE","PERFAPPR_SE","PERFAPPR_OE","FPLN","FPLN_From","FPLN_TMPY_group","FPLN_Callsign",
|
||||
"departureTMPY", "arrowsDepArr","arrow1L","arrow2L","arrow3L","arrow4L","arrow5L","arrow1R","arrow2R","arrow3R","arrow4R","arrow5R"];
|
||||
},
|
||||
update: func() {
|
||||
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["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText("MCDU MENU");
|
||||
me["Simple_PageNum"].setText("X/X");
|
||||
me["Simple_PageNum"].hide();
|
||||
|
@ -533,6 +541,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].show();
|
||||
me["Simple_L5"].hide();
|
||||
me["Simple_L6"].hide();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].hide();
|
||||
me["Simple_L2S"].hide();
|
||||
me["Simple_L3S"].hide();
|
||||
|
@ -605,6 +614,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].hide();
|
||||
me["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText(sprintf("%s", " " ~ acType.getValue()));
|
||||
me["Simple_PageNum"].setText("X/X");
|
||||
me["Simple_PageNum"].hide();
|
||||
|
@ -617,6 +627,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].hide();
|
||||
me["Simple_L5"].show();
|
||||
me["Simple_L6"].show();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].show();
|
||||
me["Simple_L2S"].show();
|
||||
me["Simple_L3S"].show();
|
||||
|
@ -688,6 +699,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].hide();
|
||||
me["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText("DATA INDEX");
|
||||
me["Simple_PageNum"].setText("1/2");
|
||||
me["Simple_PageNum"].show();
|
||||
|
@ -700,6 +712,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].show();
|
||||
me["Simple_L5"].hide();
|
||||
me["Simple_L6"].hide();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].show();
|
||||
me["Simple_L2S"].show();
|
||||
me["Simple_L3S"].show();
|
||||
|
@ -769,6 +782,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].hide();
|
||||
me["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText("DATA INDEX");
|
||||
me["Simple_PageNum"].setText("2/2");
|
||||
me["Simple_PageNum"].show();
|
||||
|
@ -781,6 +795,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].show();
|
||||
me["Simple_L5"].show();
|
||||
me["Simple_L6"].show();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].hide();
|
||||
me["Simple_L2S"].hide();
|
||||
me["Simple_L3S"].hide();
|
||||
|
@ -855,6 +870,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].hide();
|
||||
me["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText("POSITION MONITOR");
|
||||
me["Simple_PageNum"].setText("X/X");
|
||||
me["Simple_PageNum"].hide();
|
||||
|
@ -867,6 +883,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].show();
|
||||
me["Simple_L5"].show();
|
||||
me["Simple_L6"].show();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].hide();
|
||||
me["Simple_L2S"].hide();
|
||||
me["Simple_L3S"].hide();
|
||||
|
@ -953,6 +970,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].hide();
|
||||
me["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText("RADIO NAV");
|
||||
me["Simple_PageNum"].setText("X/X");
|
||||
me["Simple_PageNum"].hide();
|
||||
|
@ -965,6 +983,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].show();
|
||||
me["Simple_L5"].show();
|
||||
me["Simple_L6"].hide();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].show();
|
||||
me["Simple_L2S"].show();
|
||||
me["Simple_L3S"].show();
|
||||
|
@ -1093,6 +1112,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].hide();
|
||||
me["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText("INIT");
|
||||
me["Simple_PageNum"].setText("X/X");
|
||||
me["Simple_PageNum"].hide();
|
||||
|
@ -1100,6 +1120,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L2"].show();
|
||||
me["Simple_L4"].show();
|
||||
me["Simple_L6"].show();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].show();
|
||||
me["Simple_L2S"].show();
|
||||
me["Simple_L3S"].show();
|
||||
|
@ -1249,6 +1270,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].show();
|
||||
me["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText("INIT");
|
||||
me["Simple_PageNum"].setText("X/X");
|
||||
me["Simple_PageNum"].hide();
|
||||
|
@ -1261,6 +1283,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].show();
|
||||
me["Simple_L5"].show();
|
||||
me["Simple_L6"].show();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].show();
|
||||
me["Simple_L2S"].show();
|
||||
me["Simple_L3S"].show();
|
||||
|
@ -1380,6 +1403,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].hide();
|
||||
me["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText("FUEL PRED");
|
||||
me["Simple_PageNum"].setText("X/X");
|
||||
me["Simple_PageNum"].hide();
|
||||
|
@ -1392,6 +1416,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].show();
|
||||
me["Simple_L5"].show();
|
||||
me["Simple_L6"].show();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].show();
|
||||
me["Simple_L2S"].hide();
|
||||
me["Simple_L3S"].show();
|
||||
|
@ -1493,6 +1518,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].hide();
|
||||
me["PERFTO"].show();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText("TAKE OFF");
|
||||
me["Simple_PageNum"].setText("X/X");
|
||||
me["Simple_PageNum"].hide();
|
||||
|
@ -1505,6 +1531,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].show();
|
||||
me["Simple_L5"].show();
|
||||
me["Simple_L6"].show();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].show();
|
||||
me["Simple_L2S"].show();
|
||||
me["Simple_L3S"].show();
|
||||
|
@ -1535,9 +1562,9 @@ var canvas_MCDU_base = {
|
|||
me["Simple_R4_Arrow"].hide();
|
||||
me["Simple_R5_Arrow"].hide();
|
||||
me["Simple_R6_Arrow"].show();
|
||||
me["Simple_C1"].hide();
|
||||
me["Simple_C2"].hide();
|
||||
me["Simple_C3"].hide();
|
||||
me["Simple_C1"].show();
|
||||
me["Simple_C2"].show();
|
||||
me["Simple_C3"].show();
|
||||
me["Simple_C4"].hide();
|
||||
me["Simple_C5"].hide();
|
||||
me["Simple_C6"].hide();
|
||||
|
@ -1640,9 +1667,126 @@ var canvas_MCDU_base = {
|
|||
me["Simple_R4S"].setText("FLEX TO TEMP");
|
||||
me["Simple_R5S"].setText("ENG OUT ACC");
|
||||
me["Simple_R6S"].setText("NEXT ");
|
||||
me["Simple_C1"].setText(" ---");
|
||||
me["Simple_C2"].setText(" ---");
|
||||
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") {
|
||||
if (!pageSwitch[i].getBoolValue()) {
|
||||
me["Simple"].show();
|
||||
|
@ -1652,6 +1796,7 @@ var canvas_MCDU_base = {
|
|||
me["INITB"].hide();
|
||||
me["PERFTO"].hide();
|
||||
me["arrowsDepArr"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["Simple_Title"].setText(sprintf("%s", page));
|
||||
me["Simple_PageNum"].setText("X/X");
|
||||
me["Simple_PageNum"].hide();
|
||||
|
@ -1664,6 +1809,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_L4"].hide();
|
||||
me["Simple_L5"].hide();
|
||||
me["Simple_L6"].show();
|
||||
me["Simple_L0S"].hide();
|
||||
me["Simple_L1S"].show();
|
||||
me["Simple_L2S"].show();
|
||||
me["Simple_L3S"].show();
|
||||
|
@ -1696,6 +1842,7 @@ var canvas_MCDU_base = {
|
|||
me["Simple_C2"].hide();
|
||||
me["Simple_C3"].hide();
|
||||
me["Simple_C4"].hide();
|
||||
me["Simple_C5"].hide();
|
||||
me["Simple_C6"].hide();
|
||||
me["Simple_C1S"].show();
|
||||
me["Simple_C2S"].hide();
|
||||
|
@ -3248,6 +3395,7 @@ var canvas_MCDU_base = {
|
|||
me["INITA"].hide();
|
||||
me["INITB"].hide();
|
||||
me["PERFTO"].hide();
|
||||
me["PERFAPPR"].hide();
|
||||
me["ArrowLeft"].hide();
|
||||
me["ArrowRight"].hide();
|
||||
|
||||
|
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 113 KiB |
|
@ -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 |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 5.5 MiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 629 B |
Before Width: | Height: | Size: 44 KiB |
|
@ -66,10 +66,13 @@ var alt_std_mode = props.globals.getNode("modes/altimeter/std", 1);
|
|||
var alt_inhg_mode = props.globals.getNode("modes/altimeter/inhg", 1);
|
||||
var alt_hpa = props.globals.getNode("instrumentation/altimeter/setting-hpa", 1);
|
||||
var alt_inhg = props.globals.getNode("instrumentation/altimeter/setting-inhg", 1);
|
||||
var target_altitude = props.globals.getNode("autopilot/settings/target-altitude-ft", 1);
|
||||
var altitude = props.globals.getNode("instrumentation/altimeter/indicated-altitude-ft", 1);
|
||||
var altitude_pfd = props.globals.getNode("instrumentation/altimeter/indicated-altitude-ft-pfd", 1);
|
||||
var trans_alt = props.globals.getNode("FMGC/internal/trans-alt", 1);
|
||||
var alt_diff = props.globals.getNode("instrumentation/pfd/alt-diff", 1);
|
||||
var ap_alt = props.globals.getNode("it-autoflight/internal/alt", 1);
|
||||
var alt_agl = props.globals.getNode("position/altitude-agl-ft", 1);
|
||||
var vs_needle = props.globals.getNode("instrumentation/pfd/vs-needle", 1);
|
||||
var vs_digit = props.globals.getNode("instrumentation/pfd/vs-digit-trans", 1);
|
||||
var ap_vs_pfd = props.globals.getNode("it-autoflight/internal/vert-speed-fpm-pfd", 1);
|
||||
|
@ -85,6 +88,7 @@ var fd_pitch = props.globals.getNode("it-autoflight/fd/pitch-bar", 1);
|
|||
var decision = props.globals.getNode("instrumentation/mk-viii/inputs/arinc429/decision-height", 1);
|
||||
var slip_skid = props.globals.getNode("instrumentation/pfd/slip-skid", 1);
|
||||
var FMGCphase = props.globals.getNode("FMGC/status/phase", 1);
|
||||
var tostate = props.globals.getNode("FMGC/status/to-state", 1);
|
||||
var loc = props.globals.getNode("instrumentation/nav[0]/heading-needle-deflection-norm", 1);
|
||||
var gs = props.globals.getNode("instrumentation/nav[0]/gs-needle-deflection-norm", 1);
|
||||
var show_hdg = props.globals.getNode("it-autoflight/custom/show-hdg", 1);
|
||||
|
@ -112,6 +116,7 @@ var att_switch = props.globals.getNode("controls/switching/ATTHDG", 1);
|
|||
var air_switch = props.globals.getNode("controls/switching/AIRDATA", 1);
|
||||
var appr_enabled = props.globals.getNode("it-autoflight/output/appr-armed/", 1);
|
||||
var loc_enabled = props.globals.getNode("it-autoflight/output/loc-armed/", 1);
|
||||
var vert_gs = props.globals.getNode("it-autoflight/output/vert/", 1);
|
||||
var vert_state = props.globals.getNode("it-autoflight/output/vert/", 1);
|
||||
var ils_data1 = props.globals.getNode("FMGC/internal/ils1-mcdu/", 1);
|
||||
# Independent MCDU ILS not implemented yet, use MCDU1 in the meantime
|
||||
|
@ -124,6 +129,15 @@ var arrival_airport = props.globals.getNode("FMGC/internal/arr-arpt", 1);
|
|||
var outer_marker = props.globals.getNode("instrumentation/marker-beacon/outer", 1);
|
||||
var middle_marker = props.globals.getNode("instrumentation/marker-beacon/middle", 1);
|
||||
var inner_marker = props.globals.getNode("instrumentation/marker-beacon/inner", 1);
|
||||
var v1 = props.globals.getNode("FMGC/internal/v1", 1);
|
||||
var v1_set = props.globals.getNode("FMGC/internal/v1-set", 1);
|
||||
var vr = props.globals.getNode("FMGC/internal/vr", 1);
|
||||
var vr_set = props.globals.getNode("FMGC/internal/vr-set", 1);
|
||||
var v2 = props.globals.getNode("FMGC/internal/v2", 1);
|
||||
var v2_set = props.globals.getNode("FMGC/internal/v2-set", 1);
|
||||
var flap_config = props.globals.getNode("controls/flight/flap-lever", 1);
|
||||
var min_speed = props.globals.getNode("FMGC/internal/minspeed", 1);
|
||||
var weight_lbs = props.globals.getNode("fdm/jsbsim/inertia/weight-lbs", 1);
|
||||
|
||||
# Create Nodes:
|
||||
var vs_needle = props.globals.initNode("/instrumentation/pfd/vs-needle", 0.0, "DOUBLE");
|
||||
|
@ -150,6 +164,13 @@ var du6_test = props.globals.initNode("/instrumentation/du/du6-test", 0, "BOOL")
|
|||
var du6_test_time = props.globals.initNode("/instrumentation/du/du6-test-time", 0.0, "DOUBLE");
|
||||
var du6_test_amount = props.globals.initNode("/instrumentation/du/du6-test-amount", 0.0, "DOUBLE");
|
||||
var du6_offtime = props.globals.initNode("/instrumentation/du/du6-off-time", 0.0, "DOUBLE");
|
||||
var ilsFlash1 = props.globals.initNode("/instrumentation/pfd/flash-indicators/ils-flash-1", 0, "BOOL");
|
||||
var ilsFlash2 = props.globals.initNode("/instrumentation/pfd/flash-indicators/ils-flash-2", 0, "BOOL");
|
||||
var qnhFlash = props.globals.initNode("/instrumentation/pfd/flash-indicators/qnh-flash", 0, "BOOL");
|
||||
var altFlash1 = props.globals.initNode("/instrumentation/pfd/flash-indicators/alt-flash-1", 0, "BOOL");
|
||||
var altFlash2 = props.globals.initNode("/instrumentation/pfd/flash-indicators/alt-flash-2", 0, "BOOL");
|
||||
var amberFlash1 = props.globals.initNode("/instrumentation/pfd/flash-indicators/amber-flash-1", 0, "BOOL");
|
||||
var amberFlash2 = props.globals.initNode("/instrumentation/pfd/flash-indicators/amber-flash-2", 0, "BOOL");
|
||||
|
||||
var canvas_PFD_base = {
|
||||
init: func(canvas_group, file) {
|
||||
|
@ -198,10 +219,10 @@ var canvas_PFD_base = {
|
|||
return ["FMA_man","FMA_manmode","FMA_flxtemp","FMA_thrust","FMA_lvrclb","FMA_pitch","FMA_pitcharm","FMA_pitcharm2","FMA_roll","FMA_rollarm","FMA_combined","FMA_ctr_msg","FMA_catmode","FMA_cattype","FMA_nodh","FMA_dh","FMA_dhn","FMA_ap","FMA_fd","FMA_athr",
|
||||
"FMA_man_box","FMA_flx_box","FMA_thrust_box","FMA_pitch_box","FMA_pitcharm_box","FMA_roll_box","FMA_rollarm_box","FMA_combined_box","FMA_catmode_box","FMA_cattype_box","FMA_cat_box","FMA_dh_box","FMA_ap_box","FMA_fd_box","FMA_athr_box","FMA_Middle1",
|
||||
"FMA_Middle2","ASI_max","ASI_scale","ASI_target","ASI_mach","ASI_mach_decimal","ASI_trend_up","ASI_trend_down","ASI_digit_UP","ASI_digit_DN","ASI_decimal_UP","ASI_decimal_DN","ASI_index","ASI_error","ASI_group","ASI_frame","AI_center","AI_bank",
|
||||
"AI_bank_lim","AI_bank_lim_X","AI_pitch_lim","AI_pitch_lim_X","AI_slipskid","AI_horizon","AI_horizon_ground","AI_horizon_sky","AI_stick","AI_stick_pos","AI_heading","AI_agl_g","AI_agl","AI_error","AI_group","FD_roll","FD_pitch","ALT_scale","ALT_target",
|
||||
"ALT_target_digit","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","ALT_digit_UP","ALT_digit_DN","ALT_error","ALT_group","ALT_group2","ALT_frame","VS_pointer","VS_box","VS_digit","VS_error","VS_group","QNH","QNH_setting",
|
||||
"AI_bank_lim","AI_bank_lim_X","AI_pitch_lim","AI_pitch_lim_X","AI_slipskid","AI_horizon","AI_horizon_ground","AI_horizon_sky","AI_stick","AI_stick_pos","AI_heading","AI_agl_g","AI_agl","AI_error","AI_group","FD_roll","FD_pitch","ALT_box_flash","ALT_box","ALT_box_amber",
|
||||
"ALT_scale","ALT_target","ALT_target_digit","ALT_one","ALT_two","ALT_three","ALT_four","ALT_five","ALT_digits","ALT_tens","ALT_digit_UP","ALT_digit_DN","ALT_error","ALT_group","ALT_group2","ALT_frame","VS_pointer","VS_box","VS_digit","VS_error","VS_group","QNH","QNH_setting",
|
||||
"QNH_std","QNH_box","LOC_pointer","LOC_scale","GS_scale","GS_pointer","CRS_pointer","HDG_target","HDG_scale","HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","HDG_error","HDG_group","HDG_frame",
|
||||
"TRK_pointer","machError","ilsError","ils_code","ils_freq","dme_dist","dme_dist_legend", "ILS_HDG_R", "ILS_HDG_L", "ILS_right", "ILS_left", "outerMarker", "middleMarker", "innerMarker"];
|
||||
"TRK_pointer","machError","ilsError","ils_code","ils_freq","dme_dist","dme_dist_legend","ILS_HDG_R","ILS_HDG_L","ILS_right","ILS_left","outerMarker","middleMarker","innerMarker","v1_group","v1_text","vr_speed","F_target","S_target","flap_max","clean_speed"];
|
||||
},
|
||||
updateDu1: func() {
|
||||
var elapsedtime_act = elapsedtime.getValue();
|
||||
|
@ -605,23 +626,87 @@ var canvas_PFD_base = {
|
|||
|
||||
# QNH
|
||||
if (alt_std_mode.getValue() == 1) {
|
||||
|
||||
me["QNH"].hide();
|
||||
me["QNH_setting"].hide();
|
||||
|
||||
if (altitude.getValue() < trans_alt.getValue() and FMGCphase.getValue() == '4') {
|
||||
if (qnh_going == 0) {
|
||||
qnh_going = 1;
|
||||
}
|
||||
if (qnh_going == 1) {
|
||||
qnhTimer.start();
|
||||
if (qnhFlash.getValue() == 1) {
|
||||
me["QNH_std"].show();
|
||||
me["QNH_box"].show();
|
||||
} else if (alt_inhg_mode.getValue() == 0) {
|
||||
me["QNH_setting"].setText(sprintf("%4.0f", alt_hpa.getValue()));
|
||||
me["QNH"].show();
|
||||
me["QNH_setting"].show();
|
||||
me["QNH_std"].hide();
|
||||
me["QNH_box"].hide();
|
||||
} else if (alt_inhg_mode.getValue() == 1) {
|
||||
me["QNH_setting"].setText(sprintf("%2.2f", alt_inhg.getValue()));
|
||||
me["QNH"].show();
|
||||
me["QNH_setting"].show();
|
||||
} else {
|
||||
me["QNH_std"].hide();
|
||||
me["QNH_box"].hide();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
qnhTimer.stop();
|
||||
qnh_going = 0;
|
||||
me["QNH_std"].show();
|
||||
me["QNH_box"].show();
|
||||
}
|
||||
} else if (alt_inhg_mode.getValue() == 0) {
|
||||
|
||||
me["QNH_std"].hide();
|
||||
me["QNH_box"].hide();
|
||||
|
||||
if (altitude.getValue() >= trans_alt.getValue() and FMGCphase.getValue() == '2') {
|
||||
if (qnh_going == 0) {
|
||||
qnh_going = 1;
|
||||
}
|
||||
if (qnh_going == 1) {
|
||||
qnhTimer.start();
|
||||
if (qnhFlash.getValue() == 1) {
|
||||
me["QNH_setting"].setText(sprintf("%4.0f", alt_hpa.getValue()));
|
||||
me["QNH"].show();
|
||||
me["QNH_setting"].show();
|
||||
} else {
|
||||
me["QNH"].hide();
|
||||
me["QNH_setting"].hide();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
qnhTimer.stop();
|
||||
qnh_going = 0;
|
||||
me["QNH_setting"].setText(sprintf("%4.0f", alt_hpa.getValue()));
|
||||
me["QNH"].show();
|
||||
me["QNH_setting"].show();
|
||||
}
|
||||
|
||||
} else if (alt_inhg_mode.getValue() == 1) {
|
||||
|
||||
if (altitude.getValue() >= trans_alt.getValue() and FMGCphase.getValue() == '2') {
|
||||
if (qnh_going == 0) {
|
||||
qnh_going = 1;
|
||||
}
|
||||
if (qnh_going == 1) {
|
||||
qnhTimer.start();
|
||||
if (qnhFlash.getValue() == 1) {
|
||||
me["QNH_setting"].setText(sprintf("%2.2f", alt_inhg.getValue()));
|
||||
me["QNH"].show();
|
||||
me["QNH_setting"].show();
|
||||
} else {
|
||||
me["QNH"].hide();
|
||||
me["QNH_setting"].hide();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
qnhTimer.stop();
|
||||
qnh_going = 0;
|
||||
me["QNH_setting"].setText(sprintf("%2.2f", alt_inhg.getValue()));
|
||||
me["QNH"].show();
|
||||
me["QNH_setting"].show();
|
||||
}
|
||||
|
||||
me["QNH_std"].hide();
|
||||
me["QNH_box"].hide();
|
||||
}
|
||||
|
||||
},
|
||||
updateCommonFast: func() {
|
||||
# Attitude Indicator
|
||||
|
@ -837,6 +922,20 @@ var canvas_PFD_1 = {
|
|||
ASItrend: 0,
|
||||
ASItrgt: 0,
|
||||
ASItrgtdiff: 0,
|
||||
V1trgt: 0,
|
||||
VRtrgt: 0,
|
||||
V2trgt: 0,
|
||||
Strgt: 0,
|
||||
Ftrgt: 0,
|
||||
flaptrgt: 0,
|
||||
cleantrgt: 0,
|
||||
SPDv1trgtdiff: 0,
|
||||
SPDvrtrgtdiff: 0,
|
||||
SPDv2trgtdiff: 0,
|
||||
SPDstrgtdiff: 0,
|
||||
SPDftrgtdiff: 0,
|
||||
SPDflaptrgtdiff: 0,
|
||||
SPDcleantrgtdiff: 0,
|
||||
FMGC_max: 0,
|
||||
new: func(canvas_group, file) {
|
||||
var m = {parents: [canvas_PFD_1, canvas_PFD_base]};
|
||||
|
@ -930,11 +1029,11 @@ var canvas_PFD_1 = {
|
|||
me["outerMarker"].show();
|
||||
me["middleMarker"].hide();
|
||||
me["innerMarker"].hide();
|
||||
} else if (middle_marker.getValue() == 1) {
|
||||
} else if (middle_marker.getValue()) {
|
||||
me["middleMarker"].show();
|
||||
me["outerMarker"].hide();
|
||||
me["innerMarker"].hide();
|
||||
} else if (inner_marker.getValue() == 1) {
|
||||
} else if (inner_marker.getValue()) {
|
||||
me["innerMarker"].show();
|
||||
me["outerMarker"].hide();
|
||||
me["middleMarker"].hide();
|
||||
|
@ -955,11 +1054,23 @@ var canvas_PFD_1 = {
|
|||
me["GS_pointer"].hide();
|
||||
}
|
||||
|
||||
if (ap_ils_mode.getValue() == 0 and (appr_enabled.getValue() == 1 or loc_enabled.getValue() == 1)) {
|
||||
if (ap_ils_mode.getValue() == 0 and (appr_enabled.getValue() == 1 or loc_enabled.getValue() == 1 or vert_gs.getValue() == 2)) {
|
||||
if (ils_going1 == 0) {
|
||||
ils_going1 = 1;
|
||||
}
|
||||
if (ils_going1 == 1) {
|
||||
ilsTimer1.start();
|
||||
if (ilsFlash1.getValue() == 1) {
|
||||
me["ilsError"].show();
|
||||
} else {
|
||||
me["ilsError"].hide();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ilsTimer1.stop();
|
||||
ils_going1 = 0;
|
||||
me["ilsError"].hide();
|
||||
}
|
||||
|
||||
me.updateCommon();
|
||||
},
|
||||
|
@ -1054,6 +1165,225 @@ var canvas_PFD_1 = {
|
|||
me["ASI_target"].hide();
|
||||
}
|
||||
|
||||
if (v1_set.getValue() == '1') {
|
||||
tgt_v1 = v1.getValue();
|
||||
if (tgt_v1 <= 30) {
|
||||
me.V1trgt = 0 - me.ASI;
|
||||
} else if (tgt_v1 >= 420) {
|
||||
me.V1trgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.V1trgt = tgt_v1 - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDv1trgtdiff = tgt_v1 - ind_spd;
|
||||
|
||||
if (tostate.getValue() == '1' and me.SPDv1trgtdiff >= -42 and me.SPDv1trgtdiff <= 42) {
|
||||
me["v1_group"].show();
|
||||
me["v1_text"].hide();
|
||||
me["v1_group"].setTranslation(0, me.V1trgt * -6.6);
|
||||
} else if (tostate.getValue() == '1') {
|
||||
me["v1_group"].hide();
|
||||
me["v1_text"].show();
|
||||
me["v1_text"].setText(sprintf("%3.0f", v1.getValue()));
|
||||
} else {
|
||||
me["v1_group"].hide();
|
||||
me["v1_text"].hide();
|
||||
}
|
||||
} else {
|
||||
me["v1_group"].hide();
|
||||
me["v1_text"].hide();
|
||||
}
|
||||
|
||||
if (vr_set.getValue() == '1') {
|
||||
tgt_vr = vr.getValue();
|
||||
if (tgt_vr <= 30) {
|
||||
me.VRtrgt = 0 - me.ASI;
|
||||
} else if (tgt_vr >= 420) {
|
||||
me.VRtrgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.VRtrgt = tgt_vr - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDvrtrgtdiff = tgt_vr - ind_spd;
|
||||
|
||||
if (tostate.getValue() == '1' and me.SPDvrtrgtdiff >= -42 and me.SPDvrtrgtdiff <= 42) {
|
||||
me["vr_speed"].show();
|
||||
me["vr_speed"].setTranslation(0, me.VRtrgt * -6.6);
|
||||
} else {
|
||||
me["vr_speed"].hide();
|
||||
}
|
||||
} else {
|
||||
me["vr_speed"].hide();
|
||||
}
|
||||
|
||||
if (v2_set.getValue() == '1') {
|
||||
tgt_v2 = v2.getValue();
|
||||
if (tgt_v2 <= 30) {
|
||||
me.V2trgt = 0 - me.ASI;
|
||||
} else if (tgt_v2 >= 420) {
|
||||
me.V2trgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.V2trgt = tgt_v2 - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDv2trgtdiff = tgt_v2 - ind_spd;
|
||||
|
||||
if (tostate.getValue() == '1' and me.SPDv2trgtdiff >= -42 and me.SPDv2trgtdiff <= 42) {
|
||||
me["ASI_target"].show();
|
||||
me["ASI_target"].setTranslation(0, me.V2trgt * -6.6);
|
||||
me["ASI_digit_UP"].setText(sprintf("%3.0f", v2.getValue()));
|
||||
} else if (tostate.getValue() == '1') {
|
||||
me["ASI_target"].hide();
|
||||
me["ASI_digit_UP"].setText(sprintf("%3.0f", v2.getValue()));
|
||||
}
|
||||
}
|
||||
|
||||
if (flap_config.getValue() == '1') {
|
||||
me["F_target"].hide();
|
||||
me["clean_speed"].hide();
|
||||
|
||||
lbs1000 = weight_lbs.getValue() / 1000;
|
||||
tgt_S = ((0.0024 * lbs1000 * lbs1000) + (0.124 * lbs1000) + 88.942) * 1.23;
|
||||
|
||||
if (tgt_S <= 30) {
|
||||
me.Strgt = 0 - me.ASI;
|
||||
} else if (tgt_S >= 420) {
|
||||
me.Strgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.Strgt = tgt_S - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDstrgtdiff = tgt_S - ind_spd;
|
||||
|
||||
if (me.SPDstrgtdiff >= -42 and me.SPDstrgtdiff <= 42) {
|
||||
me["S_target"].show();
|
||||
me["S_target"].setTranslation(0, me.Strgt * -6.6);
|
||||
} else {
|
||||
me["S_target"].hide();
|
||||
}
|
||||
|
||||
tgt_flap = 200;
|
||||
me.flaptrgt = tgt_flap - 30 - me.ASI;
|
||||
|
||||
me.SPDflaptrgtdiff = tgt_flap - ind_spd;
|
||||
|
||||
if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) {
|
||||
me["flap_max"].show();
|
||||
me["flap_max"].setTranslation(0, me.flaptrgt * -6.6);
|
||||
} else {
|
||||
me["flap_max"].hide();
|
||||
}
|
||||
} else if (flap_config.getValue() == '2') {
|
||||
me["S_target"].hide();
|
||||
me["clean_speed"].hide();
|
||||
|
||||
lbs1000 = weight_lbs.getValue() / 1000;
|
||||
tgt_F = ((0.4352 * lbs1000) + 51.006) * 1.47;
|
||||
if (tgt_F <= 30) {
|
||||
me.Ftrgt = 0 - me.ASI;
|
||||
} else if (tgt_F >= 420) {
|
||||
me.Ftrgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.Ftrgt = tgt_F - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDftrgtdiff = tgt_F - ind_spd;
|
||||
|
||||
if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42) {
|
||||
me["F_target"].show();
|
||||
me["F_target"].setTranslation(0, me.Ftrgt * -6.6);
|
||||
} else {
|
||||
me["F_target"].hide();
|
||||
}
|
||||
|
||||
tgt_flap = 185;
|
||||
me.flaptrgt = tgt_flap - 30 - me.ASI;
|
||||
|
||||
me.SPDflaptrgtdiff = tgt_flap - ind_spd;
|
||||
|
||||
if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) {
|
||||
me["flap_max"].show();
|
||||
me["flap_max"].setTranslation(0, me.flaptrgt * -6.6);
|
||||
} else {
|
||||
me["flap_max"].hide();
|
||||
}
|
||||
} else if (flap_config.getValue() == '3') {
|
||||
me["S_target"].hide();
|
||||
me["clean_speed"].hide();
|
||||
|
||||
lbs1000 = weight_lbs.getValue() / 1000;
|
||||
tgt_F = ((0.4352 * lbs1000) + 50.006) * 1.36;
|
||||
|
||||
if (tgt_F <= 30) {
|
||||
me.Ftrgt = 0 - me.ASI;
|
||||
} else if (tgt_F >= 420) {
|
||||
me.Ftrgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.Ftrgt = tgt_F - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDftrgtdiff = tgt_F - ind_spd;
|
||||
|
||||
if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42) {
|
||||
me["F_target"].show();
|
||||
me["F_target"].setTranslation(0, me.Ftrgt * -6.6);
|
||||
} else {
|
||||
me["F_target"].hide();
|
||||
}
|
||||
|
||||
tgt_flap = 177;
|
||||
me.flaptrgt = tgt_flap - 30 - me.ASI;
|
||||
|
||||
me.SPDflaptrgtdiff = tgt_flap - ind_spd;
|
||||
|
||||
if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) {
|
||||
me["flap_max"].show();
|
||||
me["flap_max"].setTranslation(0, me.flaptrgt * -6.6);
|
||||
} else {
|
||||
me["flap_max"].hide();
|
||||
}
|
||||
} else if (flap_config.getValue() == '4') {
|
||||
me["S_target"].hide();
|
||||
me["F_target"].hide();
|
||||
me["clean_speed"].hide();
|
||||
me["flap_max"].hide();
|
||||
} else {
|
||||
me["S_target"].hide();
|
||||
me["F_target"].hide();
|
||||
|
||||
tgt_clean = 2 * weight_lbs.getValue() * 0.00045359237 + 85;
|
||||
if (altitude.getValue() > 20000) {
|
||||
tgt_clean += (altitude.getValue() - 20000) / 1000;
|
||||
}
|
||||
|
||||
me.cleantrgt = tgt_clean - 30 - me.ASI;
|
||||
me.SPDcleantrgtdiff = tgt_clean - ind_spd;
|
||||
|
||||
if (me.SPDcleantrgtdiff >= -42 and me.SPDcleantrgtdiff <= 42) {
|
||||
me["clean_speed"].show();
|
||||
me["clean_speed"].setTranslation(0, me.cleantrgt * -6.6);
|
||||
} else {
|
||||
me["clean_speed"].hide();
|
||||
}
|
||||
|
||||
tgt_flap = 230;
|
||||
me.flaptrgt = tgt_flap - 30 - me.ASI;
|
||||
|
||||
me.SPDflaptrgtdiff = tgt_flap - ind_spd;
|
||||
|
||||
if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) {
|
||||
me["flap_max"].show();
|
||||
me["flap_max"].setTranslation(0, me.flaptrgt * -6.6);
|
||||
} else {
|
||||
me["flap_max"].hide();
|
||||
}
|
||||
}
|
||||
|
||||
if (alt_agl.getValue() < 400) {
|
||||
me["S_target"].hide();
|
||||
me["F_target"].hide();
|
||||
}
|
||||
|
||||
me.ASItrend = dmc.DMController.DMCs[0].outputs[6].getValue() - me.ASI;
|
||||
me["ASI_trend_up"].setTranslation(0, math.clamp(me.ASItrend, 0, 50) * -6.6);
|
||||
me["ASI_trend_down"].setTranslation(0, math.clamp(me.ASItrend, -50, 0) * -6.6);
|
||||
|
@ -1072,6 +1402,13 @@ var canvas_PFD_1 = {
|
|||
me["ASI_group"].hide();
|
||||
me["ASI_error"].show();
|
||||
me["ASI_frame"].setColor(1,0,0);
|
||||
me["clean_speed"].hide();
|
||||
me["S_target"].hide();
|
||||
me["F_target"].hide();
|
||||
me["flap_max"].hide();
|
||||
me["v1_group"].hide();
|
||||
me["v1_text"].hide();
|
||||
me["vr_speed"].hide();
|
||||
}
|
||||
|
||||
if (dmc.DMController.DMCs[0].outputs[2] != nil) {
|
||||
|
@ -1099,6 +1436,7 @@ var canvas_PFD_1 = {
|
|||
me["ALT_error"].hide();
|
||||
me["ALT_frame"].setColor(1,1,1);
|
||||
me["ALT_group"].show();
|
||||
me["ALT_box"].show();
|
||||
me["ALT_group2"].show();
|
||||
me["ALT_scale"].show();
|
||||
|
||||
|
@ -1164,12 +1502,60 @@ var canvas_PFD_1 = {
|
|||
me["ALT_digit_DN"].hide();
|
||||
me["ALT_target"].hide();
|
||||
}
|
||||
|
||||
if (!getprop("ECAM/alt-alert-flash") and !getprop("ECAM/alt-alert-steady")) {
|
||||
alt_going1 = 0;
|
||||
amber_going1 = 0;
|
||||
me["ALT_box_flash"].hide();
|
||||
me["ALT_box_amber"].hide();
|
||||
} else {
|
||||
if (getprop("ECAM/alt-alert-flash")) {
|
||||
if (alt_going1 == 1) {
|
||||
me["ALT_box_flash"].hide();
|
||||
altTimer1.stop();
|
||||
}
|
||||
if (amber_going1 == 0) {
|
||||
amber_going1 = 1;
|
||||
}
|
||||
if (amber_going1 == 1) {
|
||||
me["ALT_box_amber"].show();
|
||||
me["ALT_box"].hide();
|
||||
amberTimer1.start();
|
||||
}
|
||||
if (amberFlash1.getValue() == 1) {
|
||||
me["ALT_box_amber"].hide();
|
||||
} else {
|
||||
me["ALT_box_amber"].show();
|
||||
}
|
||||
} elsif (getprop("ECAM/alt-alert-steady")) {
|
||||
if (amber_going1 == 1) {
|
||||
me["ALT_box"].show();
|
||||
me["ALT_box_amber"].hide();
|
||||
amberTimer1.stop();
|
||||
}
|
||||
if (alt_going1 == 0) {
|
||||
alt_going1 = 1;
|
||||
}
|
||||
if (alt_going1 == 1) {
|
||||
me["ALT_box_flash"].show();
|
||||
altTimer1.start();
|
||||
}
|
||||
if (altFlash1.getValue() == 1) {
|
||||
me["ALT_box_flash"].show();
|
||||
} else {
|
||||
me["ALT_box_flash"].hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
me["ALT_error"].show();
|
||||
me["ALT_frame"].setColor(1,0,0);
|
||||
me["ALT_group"].hide();
|
||||
me["ALT_group2"].hide();
|
||||
me["ALT_scale"].hide();
|
||||
me["ALT_box_flash"].hide();
|
||||
me["ALT_box_amber"].hide();
|
||||
me["ALT_box"].hide();
|
||||
}
|
||||
|
||||
me.updateCommonFast();
|
||||
|
@ -1182,6 +1568,20 @@ var canvas_PFD_2 = {
|
|||
ASItrend: 0,
|
||||
ASItrgt: 0,
|
||||
ASItrgtdiff: 0,
|
||||
V1trgt: 0,
|
||||
VRtrgt: 0,
|
||||
V2trgt: 0,
|
||||
Strgt: 0,
|
||||
Ftrgt: 0,
|
||||
flaptrgt: 0,
|
||||
cleantrgt: 0,
|
||||
SPDv1trgtdiff: 0,
|
||||
SPDvrtrgtdiff: 0,
|
||||
SPDv2trgtdiff: 0,
|
||||
SPDstrgtdiff: 0,
|
||||
SPDftrgtdiff: 0,
|
||||
SPDflaptrgtdiff: 0,
|
||||
SPDcleantrgtdiff: 0,
|
||||
FMGC_max: 0,
|
||||
new: func(canvas_group, file) {
|
||||
var m = {parents: [canvas_PFD_2, canvas_PFD_base]};
|
||||
|
@ -1271,16 +1671,15 @@ var canvas_PFD_2 = {
|
|||
me["innerMarker"].hide();
|
||||
}
|
||||
|
||||
if (ap_ils_mode2.getValue() == 1 and (appr_enabled.getValue() == 1 or loc_enabled.getValue() == 1 or vert_state.getValue() == 2)) {
|
||||
if (outer_marker.getValue() == 1) {
|
||||
me["outerMarker"].show();
|
||||
me["middleMarker"].hide();
|
||||
me["innerMarker"].hide();
|
||||
} else if (middle_marker.getValue() == 1) {
|
||||
} else if (middle_marker.getValue()) {
|
||||
me["middleMarker"].show();
|
||||
me["outerMarker"].hide();
|
||||
me["innerMarker"].hide();
|
||||
} else if (inner_marker.getValue() == 1) {
|
||||
} else if (inner_marker.getValue()) {
|
||||
me["innerMarker"].show();
|
||||
me["outerMarker"].hide();
|
||||
me["middleMarker"].hide();
|
||||
|
@ -1289,11 +1688,6 @@ var canvas_PFD_2 = {
|
|||
me["middleMarker"].hide();
|
||||
me["innerMarker"].hide();
|
||||
}
|
||||
} else {
|
||||
me["outerMarker"].hide();
|
||||
me["middleMarker"].hide();
|
||||
me["innerMarker"].hide();
|
||||
}
|
||||
|
||||
if (ap_ils_mode2.getValue() == 1 and loc_in_range.getValue() == 1 and hasloc.getValue() == 1 and nav0_signalq.getValue() > 0.99) {
|
||||
me["LOC_pointer"].show();
|
||||
|
@ -1306,11 +1700,23 @@ var canvas_PFD_2 = {
|
|||
me["GS_pointer"].hide();
|
||||
}
|
||||
|
||||
if (ap_ils_mode2.getValue() == 0 and (appr_enabled.getValue() == 1 or loc_enabled.getValue() == 1)) {
|
||||
if (ap_ils_mode2.getValue() == 0 and (appr_enabled.getValue() == 1 or loc_enabled.getValue() == 1 or vert_gs.getValue() == 2)) {
|
||||
if (ils_going2 == 0) {
|
||||
ils_going2 = 1;
|
||||
}
|
||||
if (ils_going2 == 1) {
|
||||
ilsTimer2.start();
|
||||
if (ilsFlash2.getValue() == 1) {
|
||||
me["ilsError"].show();
|
||||
} else {
|
||||
me["ilsError"].hide();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ilsTimer2.stop();
|
||||
ils_going2 = 0;
|
||||
me["ilsError"].hide();
|
||||
}
|
||||
|
||||
me.updateCommon();
|
||||
},
|
||||
|
@ -1405,6 +1811,225 @@ var canvas_PFD_2 = {
|
|||
me["ASI_target"].hide();
|
||||
}
|
||||
|
||||
if (v1_set.getValue() == '1') {
|
||||
tgt_v1 = v1.getValue();
|
||||
if (tgt_v1 <= 30) {
|
||||
me.V1trgt = 0 - me.ASI;
|
||||
} else if (tgt_v1 >= 420) {
|
||||
me.V1trgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.V1trgt = tgt_v1 - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDv1trgtdiff = tgt_v1 - ind_spd;
|
||||
|
||||
if (tostate.getValue() == '1' and me.SPDv1trgtdiff >= -42 and me.SPDv1trgtdiff <= 42) {
|
||||
me["v1_group"].show();
|
||||
me["v1_text"].hide();
|
||||
me["v1_group"].setTranslation(0, me.V1trgt * -6.6);
|
||||
} else if (tostate.getValue() == '1') {
|
||||
me["v1_group"].hide();
|
||||
me["v1_text"].show();
|
||||
me["v1_text"].setText(sprintf("%3.0f", v1.getValue()));
|
||||
} else {
|
||||
me["v1_group"].hide();
|
||||
me["v1_text"].hide();
|
||||
}
|
||||
} else {
|
||||
me["v1_group"].hide();
|
||||
me["v1_text"].hide();
|
||||
}
|
||||
|
||||
if (vr_set.getValue() == '1') {
|
||||
tgt_vr = vr.getValue();
|
||||
if (tgt_vr <= 30) {
|
||||
me.VRtrgt = 0 - me.ASI;
|
||||
} else if (tgt_vr >= 420) {
|
||||
me.VRtrgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.VRtrgt = tgt_vr - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDvrtrgtdiff = tgt_vr - ind_spd;
|
||||
|
||||
if (tostate.getValue() == '1' and me.SPDvrtrgtdiff >= -42 and me.SPDvrtrgtdiff <= 42) {
|
||||
me["vr_speed"].show();
|
||||
me["vr_speed"].setTranslation(0, me.VRtrgt * -6.6);
|
||||
} else {
|
||||
me["vr_speed"].hide();
|
||||
}
|
||||
} else {
|
||||
me["vr_speed"].hide();
|
||||
}
|
||||
|
||||
if (v2_set.getValue() == '1') {
|
||||
tgt_v2 = v2.getValue();
|
||||
if (tgt_v2 <= 30) {
|
||||
me.V2trgt = 0 - me.ASI;
|
||||
} else if (tgt_v2 >= 420) {
|
||||
me.V2trgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.V2trgt = tgt_v2 - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDv2trgtdiff = tgt_v2 - ind_spd;
|
||||
|
||||
if (tostate.getValue() == '1' and me.SPDv2trgtdiff >= -42 and me.SPDv2trgtdiff <= 42) {
|
||||
me["ASI_target"].show();
|
||||
me["ASI_target"].setTranslation(0, me.V2trgt * -6.6);
|
||||
me["ASI_digit_UP"].setText(sprintf("%3.0f", v2.getValue()));
|
||||
} else if (tostate.getValue() == '1') {
|
||||
me["ASI_target"].hide();
|
||||
me["ASI_digit_UP"].setText(sprintf("%3.0f", v2.getValue()));
|
||||
}
|
||||
}
|
||||
|
||||
if (flap_config.getValue() == '1') {
|
||||
me["F_target"].hide();
|
||||
me["clean_speed"].hide();
|
||||
|
||||
lbs1000 = weight_lbs.getValue() / 1000;
|
||||
tgt_S = ((0.0024 * lbs1000 * lbs1000) + (0.124 * lbs1000) + 88.942) * 1.23;
|
||||
|
||||
if (tgt_S <= 30) {
|
||||
me.Strgt = 0 - me.ASI;
|
||||
} else if (tgt_S >= 420) {
|
||||
me.Strgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.Strgt = tgt_S - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDstrgtdiff = tgt_S - ind_spd;
|
||||
|
||||
if (me.SPDstrgtdiff >= -42 and me.SPDstrgtdiff <= 42) {
|
||||
me["S_target"].show();
|
||||
me["S_target"].setTranslation(0, me.Strgt * -6.6);
|
||||
} else {
|
||||
me["S_target"].hide();
|
||||
}
|
||||
|
||||
tgt_flap = 200;
|
||||
me.flaptrgt = tgt_flap - 30 - me.ASI;
|
||||
|
||||
me.SPDflaptrgtdiff = tgt_flap - ind_spd;
|
||||
|
||||
if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) {
|
||||
me["flap_max"].show();
|
||||
me["flap_max"].setTranslation(0, me.flaptrgt * -6.6);
|
||||
} else {
|
||||
me["flap_max"].hide();
|
||||
}
|
||||
} else if (flap_config.getValue() == '2') {
|
||||
me["S_target"].hide();
|
||||
me["clean_speed"].hide();
|
||||
|
||||
lbs1000 = weight_lbs.getValue() / 1000;
|
||||
tgt_F = ((0.4352 * lbs1000) + 51.006) * 1.47;
|
||||
if (tgt_F <= 30) {
|
||||
me.Ftrgt = 0 - me.ASI;
|
||||
} else if (tgt_F >= 420) {
|
||||
me.Ftrgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.Ftrgt = tgt_F - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDftrgtdiff = tgt_F - ind_spd;
|
||||
|
||||
if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42) {
|
||||
me["F_target"].show();
|
||||
me["F_target"].setTranslation(0, me.Ftrgt * -6.6);
|
||||
} else {
|
||||
me["F_target"].hide();
|
||||
}
|
||||
|
||||
tgt_flap = 185;
|
||||
me.flaptrgt = tgt_flap - 30 - me.ASI;
|
||||
|
||||
me.SPDflaptrgtdiff = tgt_flap - ind_spd;
|
||||
|
||||
if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) {
|
||||
me["flap_max"].show();
|
||||
me["flap_max"].setTranslation(0, me.flaptrgt * -6.6);
|
||||
} else {
|
||||
me["flap_max"].hide();
|
||||
}
|
||||
} else if (flap_config.getValue() == '3') {
|
||||
me["S_target"].hide();
|
||||
me["clean_speed"].hide();
|
||||
|
||||
lbs1000 = weight_lbs.getValue() / 1000;
|
||||
tgt_F = ((0.4352 * lbs1000) + 50.006) * 1.36;
|
||||
|
||||
if (tgt_F <= 30) {
|
||||
me.Ftrgt = 0 - me.ASI;
|
||||
} else if (tgt_F >= 420) {
|
||||
me.Ftrgt = 390 - me.ASI;
|
||||
} else {
|
||||
me.Ftrgt = tgt_F - 30 - me.ASI;
|
||||
}
|
||||
|
||||
me.SPDftrgtdiff = tgt_F - ind_spd;
|
||||
|
||||
if (me.SPDftrgtdiff >= -42 and me.SPDftrgtdiff <= 42) {
|
||||
me["F_target"].show();
|
||||
me["F_target"].setTranslation(0, me.Ftrgt * -6.6);
|
||||
} else {
|
||||
me["F_target"].hide();
|
||||
}
|
||||
|
||||
tgt_flap = 177;
|
||||
me.flaptrgt = tgt_flap - 30 - me.ASI;
|
||||
|
||||
me.SPDflaptrgtdiff = tgt_flap - ind_spd;
|
||||
|
||||
if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) {
|
||||
me["flap_max"].show();
|
||||
me["flap_max"].setTranslation(0, me.flaptrgt * -6.6);
|
||||
} else {
|
||||
me["flap_max"].hide();
|
||||
}
|
||||
} else if (flap_config.getValue() == '4') {
|
||||
me["S_target"].hide();
|
||||
me["F_target"].hide();
|
||||
me["clean_speed"].hide();
|
||||
me["flap_max"].hide();
|
||||
} else {
|
||||
me["S_target"].hide();
|
||||
me["F_target"].hide();
|
||||
|
||||
tgt_clean = 2 * weight_lbs.getValue() * 0.00045359237 + 85;
|
||||
if (altitude.getValue() > 20000) {
|
||||
tgt_clean += (altitude.getValue() - 20000) / 1000;
|
||||
}
|
||||
|
||||
me.cleantrgt = tgt_clean - 30 - me.ASI;
|
||||
me.SPDcleantrgtdiff = tgt_clean - ind_spd;
|
||||
|
||||
if (me.SPDcleantrgtdiff >= -42 and me.SPDcleantrgtdiff <= 42) {
|
||||
me["clean_speed"].show();
|
||||
me["clean_speed"].setTranslation(0, me.cleantrgt * -6.6);
|
||||
} else {
|
||||
me["clean_speed"].hide();
|
||||
}
|
||||
|
||||
tgt_flap = 230;
|
||||
me.flaptrgt = tgt_flap - 30 - me.ASI;
|
||||
|
||||
me.SPDflaptrgtdiff = tgt_flap - ind_spd;
|
||||
|
||||
if (me.SPDflaptrgtdiff >= -42 and me.SPDflaptrgtdiff <= 42) {
|
||||
me["flap_max"].show();
|
||||
me["flap_max"].setTranslation(0, me.flaptrgt * -6.6);
|
||||
} else {
|
||||
me["flap_max"].hide();
|
||||
}
|
||||
}
|
||||
|
||||
if (alt_agl.getValue() < 400) {
|
||||
me["S_target"].hide();
|
||||
me["F_target"].hide();
|
||||
}
|
||||
|
||||
me.ASItrend = dmc.DMController.DMCs[1].outputs[6].getValue() - me.ASI;
|
||||
me["ASI_trend_up"].setTranslation(0, math.clamp(me.ASItrend, 0, 50) * -6.6);
|
||||
me["ASI_trend_down"].setTranslation(0, math.clamp(me.ASItrend, -50, 0) * -6.6);
|
||||
|
@ -1421,8 +2046,15 @@ var canvas_PFD_2 = {
|
|||
}
|
||||
} else {
|
||||
me["ASI_error"].show();
|
||||
me["ASI_frame"].setColor(1,0,0);
|
||||
me["ASI_group"].hide();
|
||||
me["ASI_frame"].setColor(1,0,0);
|
||||
me["clean_speed"].hide();
|
||||
me["S_target"].hide();
|
||||
me["F_target"].hide();
|
||||
me["flap_max"].hide();
|
||||
me["v1_group"].hide();
|
||||
me["v1_text"].hide();
|
||||
me["vr_speed"].hide();
|
||||
}
|
||||
|
||||
if (dmc.DMController.DMCs[1].outputs[2] != nil) {
|
||||
|
@ -1445,14 +2077,15 @@ var canvas_PFD_2 = {
|
|||
me["machError"].show();
|
||||
}
|
||||
|
||||
if (dmc.DMController.DMCs[1].outputs[1] != nil) {
|
||||
if (dmc.DMController.DMCs[0].outputs[1] != nil) {
|
||||
me["ALT_error"].hide();
|
||||
me["ALT_frame"].setColor(1,1,1);
|
||||
me["ALT_group"].show();
|
||||
me["ALT_box"].show();
|
||||
me["ALT_group2"].show();
|
||||
me["ALT_scale"].show();
|
||||
|
||||
me.altitude = dmc.DMController.DMCs[1].outputs[1].getValue();
|
||||
me.altitude = dmc.DMController.DMCs[0].outputs[1].getValue();
|
||||
me.altOffset = me.altitude / 500 - int(me.altitude / 500);
|
||||
me.middleAltText = roundaboutAlt(me.altitude / 100);
|
||||
me.middleAltOffset = nil;
|
||||
|
@ -1475,7 +2108,7 @@ var canvas_PFD_2 = {
|
|||
altPolarity = "";
|
||||
}
|
||||
|
||||
me["ALT_digits"].setText(sprintf("%s%d", altPolarity, dmc.DMController.DMCs[1].outputs[3].getValue()));
|
||||
me["ALT_digits"].setText(sprintf("%s%d", altPolarity, dmc.DMController.DMCs[0].outputs[3].getValue()));
|
||||
altTens = num(right(sprintf("%02d", me.altitude), 2));
|
||||
me["ALT_tens"].setTranslation(0, altTens * 1.392);
|
||||
|
||||
|
@ -1514,12 +2147,60 @@ var canvas_PFD_2 = {
|
|||
me["ALT_digit_DN"].hide();
|
||||
me["ALT_target"].hide();
|
||||
}
|
||||
|
||||
if (!getprop("ECAM/alt-alert-flash") and !getprop("ECAM/alt-alert-steady")) {
|
||||
alt_going2 = 0;
|
||||
amber_going2 = 0;
|
||||
me["ALT_box_flash"].hide();
|
||||
me["ALT_box_amber"].hide();
|
||||
} else {
|
||||
if (getprop("ECAM/alt-alert-flash")) {
|
||||
if (alt_going2 == 1) {
|
||||
me["ALT_box_flash"].hide();
|
||||
altTimer2.stop();
|
||||
}
|
||||
if (amber_going2 == 0) {
|
||||
amber_going2 = 1;
|
||||
}
|
||||
if (amber_going2 == 1) {
|
||||
me["ALT_box_amber"].show();
|
||||
me["ALT_box"].hide();
|
||||
amberTimer2.start();
|
||||
}
|
||||
if (amberFlash2.getValue() == 1) {
|
||||
me["ALT_box_amber"].show();
|
||||
} else {
|
||||
me["ALT_box_amber"].hide();
|
||||
}
|
||||
} elsif (getprop("ECAM/alt-alert-steady")) {
|
||||
if (amber_going2 == 1) {
|
||||
me["ALT_box"].show();
|
||||
me["ALT_box_amber"].hide();
|
||||
amberTimer2.stop();
|
||||
}
|
||||
if (alt_going2 == 0) {
|
||||
alt_going2 = 1;
|
||||
}
|
||||
if (alt_going2 == 1) {
|
||||
me["ALT_box_flash"].show();
|
||||
altTimer2.start();
|
||||
}
|
||||
if (altFlash2.getValue() == 1) {
|
||||
me["ALT_box_flash"].show();
|
||||
} else {
|
||||
me["ALT_box_flash"].hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
me["ALT_error"].show();
|
||||
me["ALT_frame"].setColor(1,0,0);
|
||||
me["ALT_group"].hide();
|
||||
me["ALT_group2"].hide();
|
||||
me["ALT_scale"].hide();
|
||||
me["ALT_box_flash"].hide();
|
||||
me["ALT_box_amber"].hide();
|
||||
me["ALT_box"].hide();
|
||||
}
|
||||
|
||||
me.updateCommonFast();
|
||||
|
@ -1756,3 +2437,68 @@ setlistener("/systems/electrical/bus/ac-ess", func() {
|
|||
setlistener("/systems/electrical/bus/ac-2", func() {
|
||||
canvas_PFD_base.updateDu6();
|
||||
}, 0, 0);
|
||||
|
||||
# Flash managers
|
||||
var ils_going1 = 0;
|
||||
var ilsTimer1 = maketimer(0.50, func {
|
||||
if (!ilsFlash1.getBoolValue()) {
|
||||
ilsFlash1.setBoolValue(1);
|
||||
} else {
|
||||
ilsFlash1.setBoolValue(0);
|
||||
}
|
||||
});
|
||||
|
||||
var ils_going2 = 0;
|
||||
var ilsTimer2 = maketimer(0.50, func {
|
||||
if (!ilsFlash2.getBoolValue()) {
|
||||
ilsFlash2.setBoolValue(1);
|
||||
} else {
|
||||
ilsFlash2.setBoolValue(0);
|
||||
}
|
||||
});
|
||||
|
||||
var qnh_going = 0;
|
||||
var qnhTimer = maketimer(0.50, func {
|
||||
if (!qnhFlash.getBoolValue()) {
|
||||
qnhFlash.setBoolValue(1);
|
||||
} else {
|
||||
qnhFlash.setBoolValue(0);
|
||||
}
|
||||
});
|
||||
|
||||
var alt_going1 = 0;
|
||||
var altTimer1 = maketimer(0.50, func {
|
||||
if (!altFlash1.getBoolValue()) {
|
||||
altFlash1.setBoolValue(1);
|
||||
} else {
|
||||
altFlash1.setBoolValue(0);
|
||||
}
|
||||
});
|
||||
|
||||
var alt_going2 = 0;
|
||||
var altTimer2 = maketimer(0.50, func {
|
||||
if (!altFlash2.getBoolValue()) {
|
||||
altFlash2.setBoolValue(1);
|
||||
} else {
|
||||
altFlash2.setBoolValue(0);
|
||||
}
|
||||
});
|
||||
|
||||
var amber_going1 = 0;
|
||||
var amberTimer1 = maketimer(0.50, func {
|
||||
if (!amberFlash1.getBoolValue()) {
|
||||
amberFlash1.setBoolValue(1);
|
||||
} else {
|
||||
amberFlash1.setBoolValue(0);
|
||||
}
|
||||
});
|
||||
|
||||
var amber_going2 = 0;
|
||||
var amberTimer2 = maketimer(0.50, func {
|
||||
if (!amberFlash2.getBoolValue()) {
|
||||
amberFlash2.setBoolValue(1);
|
||||
} else {
|
||||
amberFlash2.setBoolValue(0);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Before Width: | Height: | Size: 284 KiB After Width: | Height: | Size: 293 KiB |
|
@ -112,7 +112,7 @@
|
|||
<object-name>ACTUTATOR</object-name>
|
||||
<object-name>Main Tires</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>
|
||||
<axis>
|
||||
<x1-m>0</x1-m>
|
||||
|
|
|
@ -112,7 +112,7 @@
|
|||
<object-name>ACTUTATOR</object-name>
|
||||
<object-name>Main Tires</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>
|
||||
<axis>
|
||||
<x1-m>0</x1-m>
|
||||
|
|
|
@ -112,7 +112,7 @@
|
|||
<object-name>AXLE</object-name>
|
||||
<object-name>Nose Tires</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>
|
||||
<axis>
|
||||
<x1-m>-0.366</x1-m>
|
||||
|
|
|
@ -32,6 +32,10 @@ var gear_agl_cur = nil;
|
|||
var numberMinutes = nil;
|
||||
var timeNow = nil;
|
||||
var timer10secIRS = nil;
|
||||
var altAlertInhibit = nil;
|
||||
var alt200 = nil;
|
||||
var alt750 = nil;
|
||||
var bigThree = nil;
|
||||
|
||||
var messages_priority_3 = func {
|
||||
phaseVar = phaseNode.getValue();
|
||||
|
@ -744,6 +748,84 @@ var messages_priority_3 = func {
|
|||
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 (cargoSmokeFwd.clearFlag == 0 and systems.fwdCargoFireWarn.getBoolValue() and (phaseVar <= 3 or phaseVar >= 9 or phaseVar == 6)) {
|
||||
cargoSmokeFwd.active = 1;
|
||||
|
|
|
@ -22,51 +22,55 @@ var gear_agl_cur = nil;
|
|||
|
||||
var FWC = {
|
||||
Btn: {
|
||||
clr: props.globals.initNode("/ECAM/buttons/clear-btn", 0, "BOOL"),
|
||||
recall: props.globals.initNode("/ECAM/buttons/recall-btn", 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"),
|
||||
clr: props.globals.initNode("ECAM/buttons/clear-btn", 0, "BOOL"),
|
||||
recall: props.globals.initNode("ECAM/buttons/recall-btn", 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"),
|
||||
},
|
||||
Monostable: {
|
||||
phase1: props.globals.initNode("/ECAM/phases/monostable/phase-1-300", 0, "BOOL"),
|
||||
phase5: props.globals.initNode("/ECAM/phases/monostable/phase-5", 0, "BOOL"),
|
||||
phase7: props.globals.initNode("/ECAM/phases/monostable/phase-7", 0, "BOOL"),
|
||||
phase9: props.globals.initNode("/ECAM/phases/monostable/phase-9", 0, "BOOL"),
|
||||
phase1Output: props.globals.initNode("/ECAM/phases/monostable/phase-1-output"),
|
||||
phase5Output: props.globals.initNode("/ECAM/phases/monostable/phase-5-output"),
|
||||
phase7Output: props.globals.initNode("/ECAM/phases/monostable/phase-7-output"),
|
||||
phase9Output: props.globals.initNode("/ECAM/phases/monostable/phase-9-output"),
|
||||
phase1: props.globals.initNode("ECAM/phases/monostable/phase-1-300", 0, "BOOL"),
|
||||
phase5: props.globals.initNode("ECAM/phases/monostable/phase-5", 0, "BOOL"),
|
||||
phase7: props.globals.initNode("ECAM/phases/monostable/phase-7", 0, "BOOL"),
|
||||
phase9: props.globals.initNode("ECAM/phases/monostable/phase-9", 0, "BOOL"),
|
||||
phase1Output: props.globals.initNode("ECAM/phases/monostable/phase-1-output"),
|
||||
phase5Output: props.globals.initNode("ECAM/phases/monostable/phase-5-output"),
|
||||
phase7Output: props.globals.initNode("ECAM/phases/monostable/phase-7-output"),
|
||||
phase9Output: props.globals.initNode("ECAM/phases/monostable/phase-9-output"),
|
||||
toPowerOutput: props.globals.getNode("ECAM/phases/monostable/to-power-set-output"),
|
||||
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: {
|
||||
gearSet: props.globals.initNode("/ECAM/phases/flipflop/gear-set", 0, "BOOL"),
|
||||
gearReset: props.globals.initNode("/ECAM/phases/flipflop/gear-reset", 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"),
|
||||
phase2Reset: props.globals.initNode("/ECAM/phases/flipflop/phase-2-reset", 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"),
|
||||
phase10Reset: props.globals.initNode("/ECAM/phases/flipflop/phase-10-reset", 0, "BOOL"),
|
||||
phase10Output: props.globals.initNode("/ECAM/phases/flipflop/phase-10-output", 0, "BOOL"),
|
||||
recallSet: props.globals.initNode("/ECAM/flipflop/recall-set", 0, "BOOL"),
|
||||
recallReset: props.globals.initNode("/ECAM/flipflop/recall-reset", 0, "BOOL"),
|
||||
recallOutput: props.globals.initNode("/ECAM/flipflop/recall-output", 0, "BOOL"),
|
||||
gearSet: props.globals.initNode("ECAM/phases/flipflop/gear-set", 0, "BOOL"),
|
||||
gearReset: props.globals.initNode("ECAM/phases/flipflop/gear-reset", 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"),
|
||||
phase2Reset: props.globals.initNode("ECAM/phases/flipflop/phase-2-reset", 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"),
|
||||
phase10Reset: props.globals.initNode("ECAM/phases/flipflop/phase-10-reset", 0, "BOOL"),
|
||||
phase10Output: props.globals.initNode("ECAM/phases/flipflop/phase-10-output", 0, "BOOL"),
|
||||
recallSet: props.globals.initNode("ECAM/flipflop/recall-set", 0, "BOOL"),
|
||||
recallReset: props.globals.initNode("ECAM/flipflop/recall-reset", 0, "BOOL"),
|
||||
recallOutput: props.globals.initNode("ECAM/flipflop/recall-output", 0, "BOOL"),
|
||||
},
|
||||
Timer: {
|
||||
eng1idle: props.globals.initNode("/ECAM/phases/timer/eng1idle", 0, "INT"),
|
||||
eng2idle: props.globals.initNode("/ECAM/phases/timer/eng2idle", 0, "INT"),
|
||||
eng1or2: props.globals.initNode("/ECAM/phases/timer/eng1or2", 0, "INT"),
|
||||
toInhibit: props.globals.initNode("/ECAM/phases/timer/to-inhibit", 0, "INT"),
|
||||
ldgInhibit: props.globals.initNode("/ECAM/phases/timer/ldg-inhibit", 0, "INT"),
|
||||
eng1idle: props.globals.initNode("ECAM/phases/timer/eng1idle", 0, "INT"),
|
||||
eng2idle: props.globals.initNode("ECAM/phases/timer/eng2idle", 0, "INT"),
|
||||
eng1or2: props.globals.initNode("ECAM/phases/timer/eng1or2", 0, "INT"),
|
||||
toInhibit: props.globals.initNode("ECAM/phases/timer/to-inhibit", 0, "INT"),
|
||||
ldgInhibit: props.globals.initNode("ECAM/phases/timer/ldg-inhibit", 0, "INT"),
|
||||
eng1idleOutput: props.globals.getNode("ECAM/phases/timer/eng1idle-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"),
|
||||
ldgInhibitOutput: props.globals.getNode("ECAM/phases/timer/ldg-inhibit-output"),
|
||||
},
|
||||
speed80: props.globals.initNode("/ECAM/phases/speed-gt-80", 0, "BOOL"),
|
||||
toPower: props.globals.initNode("/ECAM/phases/to-power-set", 0, "BOOL"),
|
||||
speed80: props.globals.initNode("ECAM/phases/speed-gt-80", 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() {
|
||||
|
|
|
@ -97,6 +97,8 @@ var lskbutton = func(btn, i) {
|
|||
}
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
|
||||
perfTOInput("L1", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
|
||||
perfAPPRInput("L1", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
|
||||
radnavInput("L1", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "DATA") {
|
||||
|
@ -124,6 +126,8 @@ var lskbutton = func(btn, i) {
|
|||
PerfInput("L2", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
|
||||
perfTOInput("L2", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
|
||||
perfAPPRInput("L2", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
|
||||
radnavInput("L2", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "CLB") {
|
||||
|
@ -154,6 +158,8 @@ var lskbutton = func(btn, i) {
|
|||
initInputA("L3", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
|
||||
perfTOInput("L3", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
|
||||
perfAPPRInput("L3", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "STATUS") {
|
||||
statusInput("L3", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
|
||||
|
@ -178,6 +184,8 @@ var lskbutton = func(btn, i) {
|
|||
setprop("MCDU[" ~ i ~ "]/page", "STATUS");
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
|
||||
perfTOInput("L4", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
|
||||
perfAPPRInput("L4", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
|
||||
radnavInput("L4", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") {
|
||||
|
@ -204,6 +212,8 @@ var lskbutton = func(btn, i) {
|
|||
perfCRZInput("L5", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "DES") {
|
||||
perfDESInput("L5", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
|
||||
perfAPPRInput("L5", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
|
||||
radnavInput("L5", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") {
|
||||
|
@ -230,6 +240,8 @@ var lskbutton = func(btn, i) {
|
|||
perfCRZInput("L6", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "DES") {
|
||||
perfDESInput("L6", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
|
||||
perfAPPRInput("L6",i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") {
|
||||
printInput2("L6", i);
|
||||
} 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") {
|
||||
if (getprop("MCDU[" ~ i ~ "]/page") == "INITB") {
|
||||
initInputB("R2", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
|
||||
perfAPPRInput("R2",i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
|
||||
radnavInput("R2", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") {
|
||||
|
@ -299,6 +313,8 @@ var rskbutton = func(btn, i) {
|
|||
initInputA("R3", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
|
||||
perfTOInput("R3", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
|
||||
perfAPPRInput("R3", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC") {
|
||||
printInput("R3", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") {
|
||||
|
@ -321,6 +337,8 @@ var rskbutton = func(btn, i) {
|
|||
} else if (btn == "4") {
|
||||
if (getprop("MCDU[" ~ i ~ "]/page") == "TO") {
|
||||
perfTOInput("R4", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "APPR") {
|
||||
perfAPPRInput("R4", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "RADNAV") {
|
||||
radnavInput("R4", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "PRINTFUNC2") {
|
||||
|
@ -365,6 +383,8 @@ var rskbutton = func(btn, i) {
|
|||
perfCLBInput("R6", i);
|
||||
} else if (getprop("MCDU[" ~ i ~ "]/page") == "CRZ") {
|
||||
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")) {
|
||||
if (getprop("MCDU[" ~ i ~ "]/scratchpad") != "AOC DISABLED") {
|
||||
if (getprop("MCDU[" ~ i ~ "]/scratchpad-msg") == 1) {
|
||||
|
@ -464,6 +484,8 @@ var pagebutton = func(btn, i) {
|
|||
setprop("MCDU[" ~ i ~ "]/page", "CRZ");
|
||||
} else if (getprop("FMGC/status/phase") == 4) {
|
||||
setprop("MCDU[" ~ i ~ "]/page", "DES");
|
||||
} else if (getprop("FMGC/status/phase") == 5) {
|
||||
setprop("MCDU[" ~ i ~ "]/page", "APPR");
|
||||
}
|
||||
} else if (btn == "init") {
|
||||
setprop("MCDU[" ~ i ~ "]/page", "INITA");
|
||||
|
|
7
Nasal/MCDU/PERFAPPR.nas
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Copyright (c) 2020 Matthew Maring (hayden2000)
|
||||
|
||||
var perfAPPRInput = func(key, i) {
|
||||
if (key == "L6") {
|
||||
setprop("MCDU[" ~ i ~ "]/page", "DES");
|
||||
}
|
||||
}
|
|
@ -5,5 +5,7 @@
|
|||
var perfDESInput = func(key, i) {
|
||||
if (key == "L6") {
|
||||
setprop("MCDU[" ~ i ~ "]/page", "CRZ");
|
||||
} else if (key == "R6") {
|
||||
setprop("MCDU[" ~ i ~ "]/page", "APPR");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -126,6 +126,14 @@ var perfTOInput = func(key, i) {
|
|||
} else {
|
||||
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 {
|
||||
notAllowed(i);
|
||||
}
|
||||
|
|
|
@ -746,4 +746,120 @@ var resetView = func() {
|
|||
}
|
||||
}
|
||||
|
||||
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/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/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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setprop("systems/acconfig/libraries-loaded", 1);
|
||||
|
|
|
@ -102,6 +102,12 @@ var JSBSim = {
|
|||
},
|
||||
};
|
||||
|
||||
var Modes = {
|
||||
Altimeter: {
|
||||
std: props.globals.getNode("modes/altimeter/std"),
|
||||
},
|
||||
};
|
||||
|
||||
var Options = {
|
||||
eng: props.globals.getNode("options/eng"),
|
||||
};
|
||||
|
|
|
@ -12,7 +12,7 @@ var viewName = "XX";
|
|||
|
||||
var fovZoom = func(d) {
|
||||
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) {
|
||||
decStep = -2;
|
||||
|
|
|
@ -70,10 +70,10 @@ var BrakeSystem =
|
|||
setprop("gear/gear[2]/R-Thrust",0);
|
||||
|
||||
#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]/L2error-temp-degc", math.round(rand()*(5)) - 2.5);
|
||||
setprop("gear/gear[2]/R3error-temp-degc", math.round(rand()*(5)) - 2.5);
|
||||
setprop("gear/gear[2]/R4error-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)));
|
||||
setprop("gear/gear[2]/R3error-temp-degc", math.round(rand()*(5)));
|
||||
setprop("gear/gear[2]/R4error-temp-degc", math.round(rand()*(5)));
|
||||
|
||||
#var atemp = getprop("environment/temperature-degc") or 0;
|
||||
#var vmach = getprop("velocities/mach") or 0;
|
||||
|
|
|
@ -3,17 +3,100 @@
|
|||
|
||||
# Copyright (c) 2019 Joshua Davidson (Octal450)
|
||||
|
||||
var dewpoint = 0;
|
||||
var temperature = 0;
|
||||
var speed = 0;
|
||||
var visibility = 0;
|
||||
var visibLclWx = 0;
|
||||
var severity = 0;
|
||||
var factor = 0;
|
||||
|
||||
### Ice sensitive components definition.
|
||||
var Iceable = {
|
||||
new: func(node) {
|
||||
var m = { parents: [Iceable] };
|
||||
m.ice_inches = node.getNode("ice-inches", 1);
|
||||
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 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 melt = 0;
|
||||
var windowprobe = 0;
|
||||
var wingBtn = 0;
|
||||
var wingFault = 0;
|
||||
|
@ -31,40 +114,13 @@ var lengAnti = 0;
|
|||
var rengAnti = 0;
|
||||
var WingHasBeenTurnedOff = 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 stateL = 0;
|
||||
var stateR = 0;
|
||||
|
||||
var iceables = [];
|
||||
|
||||
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/wing", 0);
|
||||
setprop("controls/switches/wingfault", 0);
|
||||
|
@ -80,21 +136,18 @@ var icingInit = func {
|
|||
setprop("systems/pitot/failed", 1);
|
||||
setprop("controls/deice/WingHasBeenTurnedOff", 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();
|
||||
}
|
||||
|
||||
var icingModel = func {
|
||||
dewpoint = getprop("environment/dewpoint-degc");
|
||||
temperature = getprop("environment/temperature-degc");
|
||||
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");
|
||||
melt = getprop("systems/icing/melt-w-heat-factor");
|
||||
windowprobe = getprop("controls/deice/windowprobeheat");
|
||||
wingBtn = getprop("controls/switches/wing");
|
||||
wingFault = getprop("controls/switches/wingfault");
|
||||
|
@ -113,97 +166,12 @@ var icingModel = func {
|
|||
WingHasBeenTurnedOff = getprop("controls/deice/WingHasBeenTurnedOff");
|
||||
GroundModeFinished = getprop("controls/deice/GroundModeFinished");
|
||||
|
||||
if (temperature >= 0 or !icingCond) {
|
||||
setprop("systems/icing/severity", "0");
|
||||
} else if (temperature < 0 and temperature >= -2 and icingCond) {
|
||||
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");
|
||||
var factor = icing_factor();
|
||||
foreach(iceable; iceables) {
|
||||
iceable.update(factor, melt_factor);
|
||||
}
|
||||
|
||||
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) {
|
||||
setprop("controls/deice/wing", 1);
|
||||
|
@ -364,3 +332,4 @@ var update_Icing = func {
|
|||
}
|
||||
|
||||
var icing_timer = maketimer(0.2, update_Icing);
|
||||
icing_timer.simulatedTime = 1;
|
||||
|
|
74
Nasal/Systems/save.nas
Normal 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");
|
||||
}
|
|
@ -1595,23 +1595,23 @@
|
|||
</condition>
|
||||
<volume>
|
||||
<property>/sim/current-view/internal</property>
|
||||
<factor>0.2</factor>
|
||||
<factor>0.4</factor>
|
||||
</volume>
|
||||
<reference-dist>10</reference-dist>
|
||||
<max-dist>100</max-dist>
|
||||
</cricket>
|
||||
|
||||
<cchord>
|
||||
<name>Cricket</name>
|
||||
<name>C-chord</name>
|
||||
<path>Aircraft/A320-family/Sounds/Cockpit/c-chord.wav</path>
|
||||
<mode>once</mode>
|
||||
<mode>looped</mode>
|
||||
<type>avionics</type>
|
||||
<condition>
|
||||
<property>/sim/sound/warnings/cchord</property>
|
||||
</condition>
|
||||
<volume>
|
||||
<property>/sim/current-view/internal</property>
|
||||
<factor>0.2</factor>
|
||||
<factor>0.6</factor>
|
||||
</volume>
|
||||
<reference-dist>10</reference-dist>
|
||||
<max-dist>100</max-dist>
|
||||
|
|
|
@ -83,89 +83,89 @@
|
|||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/to-config-set</property>
|
||||
<property>ECAM/to-config-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/to-config-reset</property>
|
||||
<property>ECAM/to-config-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/to-config-flipflop</output>
|
||||
<output>ECAM/to-config-flipflop</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/to-memo-set</property>
|
||||
<property>ECAM/to-memo-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/to-memo-reset</property>
|
||||
<property>ECAM/to-memo-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/to-memo-flipflop</output>
|
||||
<output>ECAM/to-memo-flipflop</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>SR</type>
|
||||
<S>
|
||||
<property>/ECAM/ldg-memo-set</property>
|
||||
<property>ECAM/ldg-memo-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/ldg-memo-reset</property>
|
||||
<property>ECAM/ldg-memo-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/ldg-memo-flipflop</output>
|
||||
<output>ECAM/ldg-memo-flipflop</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/ldg-memo-2200-set</property>
|
||||
<property>ECAM/ldg-memo-2200-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/ldg-memo-2200-reset</property>
|
||||
<property>ECAM/ldg-memo-2200-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/ldg-memo-2200-flipflop</output>
|
||||
<output>ECAM/ldg-memo-2200-flipflop</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>SR</type>
|
||||
<S>
|
||||
<property>/ECAM/phases/flipflop/gear-set</property>
|
||||
<property>ECAM/phases/flipflop/gear-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/phases/flipflop/gear-reset</property>
|
||||
<property>ECAM/phases/flipflop/gear-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/phases/flipflop/gear-output</output>
|
||||
<output>ECAM/phases/flipflop/gear-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>SR</type>
|
||||
<S>
|
||||
<property>/ECAM/phases/flipflop/phase-2-set</property>
|
||||
<property>ECAM/phases/flipflop/phase-2-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/phases/flipflop/phase-2-reset</property>
|
||||
<property>ECAM/phases/flipflop/phase-2-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/phases/flipflop/phase-2-output</output>
|
||||
<output>ECAM/phases/flipflop/phase-2-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/phases/flipflop/phase-10-set</property>
|
||||
<property>ECAM/phases/flipflop/phase-10-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/phases/flipflop/phase-10-reset</property>
|
||||
<property>ECAM/phases/flipflop/phase-10-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/phases/flipflop/phase-10-output</output>
|
||||
<output>ECAM/phases/flipflop/phase-10-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>RS</type>
|
||||
<S>
|
||||
<property>/ECAM/flipflop/recall-set</property>
|
||||
<property>ECAM/flipflop/recall-set</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/flipflop/recall-reset</property>
|
||||
<property>ECAM/flipflop/recall-reset</property>
|
||||
</R>
|
||||
<output>/ECAM/flipflop/recall-output</output>
|
||||
<output>ECAM/flipflop/recall-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
|
@ -175,10 +175,10 @@
|
|||
</time>
|
||||
<S>
|
||||
<not>
|
||||
<property>/ECAM/phases/speed-gt-80</property>
|
||||
<property>ECAM/phases/speed-gt-80</property>
|
||||
</not>
|
||||
</S>
|
||||
<output>/ECAM/phases/monostable-80kt</output>
|
||||
<output>ECAM/phases/monostable-80kt</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
|
@ -187,9 +187,9 @@
|
|||
<value>300.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/ECAM/phases/monostable/phase-1-300</property>
|
||||
<property>ECAM/phases/monostable/phase-1-300</property>
|
||||
</S>
|
||||
<output>/ECAM/phases/monostable/phase-1-output</output>
|
||||
<output>ECAM/phases/monostable/phase-1-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
|
@ -198,9 +198,9 @@
|
|||
<value>120.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/ECAM/phases/monostable/phase-5</property>
|
||||
<property>ECAM/phases/monostable/phase-5</property>
|
||||
</S>
|
||||
<output>/ECAM/phases/monostable/phase-5-output</output>
|
||||
<output>ECAM/phases/monostable/phase-5-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
|
@ -209,9 +209,9 @@
|
|||
<value>180.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/ECAM/phases/monostable/phase-7</property>
|
||||
<property>ECAM/phases/monostable/phase-7</property>
|
||||
</S>
|
||||
<output>/ECAM/phases/monostable/phase-7-output</output>
|
||||
<output>ECAM/phases/monostable/phase-7-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
|
@ -220,12 +220,159 @@
|
|||
<value>5.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/ECAM/buttons/recall-status-normal</property>
|
||||
<property>ECAM/buttons/recall-status-normal</property>
|
||||
</S>
|
||||
<R>
|
||||
<property>/ECAM/buttons/clear-btn</property>
|
||||
<property>ECAM/buttons/clear-btn</property>
|
||||
</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>
|
||||
|
||||
<!-- falling edge detector - take inverse of following -->
|
||||
|
@ -236,9 +383,9 @@
|
|||
<value>3.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/ECAM/phases/monostable/phase-9</property>
|
||||
<property>ECAM/phases/monostable/phase-9</property>
|
||||
</S>
|
||||
<output>/ECAM/phases/monostable/phase-9-output</output>
|
||||
<output>ECAM/phases/monostable/phase-9-output</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
|
@ -248,9 +395,9 @@
|
|||
<value>1.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/ECAM/phases/to-power-set</property>
|
||||
<property>ECAM/phases/to-power-set</property>
|
||||
</S>
|
||||
<output>/ECAM/phases/monostable/to-power-set-output</output>
|
||||
<output>ECAM/phases/monostable/to-power-set-output</output>
|
||||
</flipflop>
|
||||
|
||||
</PropertyList>
|
||||
|
|
56
Systems/glass-effect.xml
Normal 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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -608,27 +608,6 @@
|
|||
<output>/systems/pressurization/targetvs</output>
|
||||
</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>
|
||||
<name>TAS</name>
|
||||
<type>gain</type>
|
||||
|
|