1
0
Fork 0

Merge branch 'dev' into fuel-prediction

This commit is contained in:
Matthew Maring 2020-05-13 17:03:43 -04:00
commit bb25e00230
57 changed files with 4287 additions and 4327 deletions

View file

@ -5,11 +5,6 @@
<PropertyList include="A320-main.xml">
<sim>
<sound>
<path>Aircraft/A320-family/Sounds/cfm56-sound.xml</path>
</sound>
<checklists include="A32X-Checklists.xml"/>
<description>Airbus A320-111 (CFM56-5A1)</description>
<flight-model>jsb</flight-model>
<aero>A320-100-CFM</aero>
@ -28,6 +23,10 @@
<model type="int">4</model>
</rating>
<sound>
<path>Aircraft/A320-family/Sounds/cfm56-sound.xml</path>
</sound>
<previews>
<preview>
<type>exterior</type>
@ -163,14 +162,6 @@
</config>
</view>
<systems>
<wingflexer include="Systems/wingflexer-params.xml"/>
<property-rule n="100">
<name>wing flexer property rule</name>
<path>Aircraft/Generic/wingflexer.xml</path>
</property-rule>
</systems>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320-family/Systems/fadec-cfm.xml</path>
@ -192,8 +183,9 @@
<options n="0">
<EIS2 type="bool">0</EIS2>
<eng>CFM</eng>
<maxblock>52.3</maxblock>
<eng type="string">CFM</eng>
<maxblock type="double">52.3</maxblock>
<maxflap type="int">35</maxflap>
</options>
<sharklet type="bool">0</sharklet>

View file

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

View file

@ -5,11 +5,6 @@
<PropertyList include="A320-main.xml">
<sim>
<sound>
<path>Aircraft/A320-family/Sounds/cfm56-sound.xml</path>
</sound>
<checklists include="A32X-Checklists.xml"/>
<description>Airbus A320-214 (CFM56-5B4)</description>
<flight-model>jsb</flight-model>
<aero>A320-200-CFM</aero>
@ -28,6 +23,10 @@
<model type="int">4</model>
</rating>
<sound>
<path>Aircraft/A320-family/Sounds/cfm56-sound.xml</path>
</sound>
<previews>
<preview>
<type>exterior</type>
@ -163,14 +162,6 @@
</config>
</view>
<systems>
<wingflexer include="Systems/wingflexer-params.xml"/>
<property-rule n="100">
<name>wing flexer property rule</name>
<path>Aircraft/Generic/wingflexer.xml</path>
</property-rule>
</systems>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320-family/Systems/fadec-cfm.xml</path>
@ -192,8 +183,9 @@
<options n="0">
<EIS2 type="bool">0</EIS2>
<eng>CFM</eng>
<maxblock>52.3</maxblock>
<eng type="string">CFM</eng>
<maxblock type="double">52.3</maxblock>
<maxflap type="int">35</maxflap>
</options>
<sharklet type="bool">0</sharklet>

View file

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

View file

@ -5,11 +5,6 @@
<PropertyList include="A320-main.xml">
<sim>
<sound>
<path>Aircraft/A320-family/Sounds/v2500-sound.xml</path>
</sound>
<checklists include="A32X-Checklists.xml"/>
<description>Airbus A320-232 (IAE V2527-A5)</description>
<flight-model>jsb</flight-model>
<aero>A320-200-IAE</aero>
@ -28,6 +23,10 @@
<model type="int">4</model>
</rating>
<sound>
<path>Aircraft/A320-family/Sounds/v2500-sound.xml</path>
</sound>
<previews>
<preview>
<type>exterior</type>
@ -163,14 +162,6 @@
</config>
</view>
<systems>
<wingflexer include="Systems/wingflexer-params.xml"/>
<property-rule n="100">
<name>wing flexer property rule</name>
<path>Aircraft/Generic/wingflexer.xml</path>
</property-rule>
</systems>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320-family/Systems/fadec-iae.xml</path>
@ -192,8 +183,9 @@
<options n="0">
<EIS2 type="bool">0</EIS2>
<eng>IAE</eng>
<maxblock>52.3</maxblock>
<eng type="string">IAE</eng>
<maxblock type="double">52.3</maxblock>
<maxflap type="int">40</maxflap>
</options>
<sharklet type="bool">0</sharklet>

View file

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

View file

@ -8,6 +8,8 @@
<author>Josh Davidson/Octal450 (Flight Dynamics, Systems, Displays), Jonathan Redpath/legoboyvdlp, merspieler, Matthew Maring/mattmaring (Systems, Displays), Thorsten Herrmann/TH-555, Semir Gebran/CaptB (3D, Textures)</author>
<checklists include="A32X-Checklists.xml"/>
<status>Pre V1.0</status>
<hud n="0">
@ -19,6 +21,7 @@
<fallback-model-index>212</fallback-model-index>
<autopush include="AircraftConfig/autopush-config.xml"/>
<display-contrast type="double">0.7</display-contrast>
<icing>
<iceable>
<name>Wing</name>
@ -96,14 +99,6 @@
<tag>2-engine</tag>
</tags>
<flaps>
<setting>0.000</setting>
<setting>0.290</setting>
<setting>0.596</setting>
<setting>0.645</setting>
<setting>1.000</setting>
</flaps>
<systems n="0">
<electrical>
<path></path>
@ -146,6 +141,11 @@
<autopilot n="13">
<path>Aircraft/A320-family/Systems/ecam-proprules.xml</path>
</autopilot>
<wingflexer include="Systems/wingflexer-params.xml"/>
<property-rule n="100">
<name>Generic Wing Flexer</name>
<path>Aircraft/Generic/wingflexer.xml</path>
</property-rule>
<path>Aircraft/A320-family/Systems/pitot-static.xml</path>
</systems>
@ -158,7 +158,7 @@
<no-smoking-sign type="bool">0</no-smoking-sign>
<btn1 type="bool">0</btn1>
<btn3 type="bool">0</btn3>
<gear-vol type="double">0.25</gear-vol>
<gear-vol type="double">0.40</gear-vol>
<knb1 type="bool">0</knb1>
<oh-btn type="bool">0</oh-btn>
<switch1 type="bool">0</switch1>
@ -696,11 +696,10 @@
</fire>
<flight>
<aileron-drives-tiller type="bool">0</aileron-drives-tiller>
<aileron-input>0</aileron-input>
<elevator-input>0</elevator-input>
<flap-pos type="int">0</flap-pos>
<speedbrake-arm>0</speedbrake-arm>
<slats>0</slats>
<aileron-input type="double">0</aileron-input>
<elevator-input type="double">0</elevator-input>
<speedbrake-arm type="bool">0</speedbrake-arm>
<slats type="double">0</slats>
</flight>
<fuel>
<switches>
@ -1361,6 +1360,12 @@
<category-13 type="int">7</category-13>
<category-14 type="int">0</category-14>
</configuration-module>
<input-feeders>
<discretes>
<!-- disable the built-in input feeder -->
<landing-flaps type="bool">false</landing-flaps>
</discretes>
</input-feeders>
<inputs>
<arinc429>
<decision-height-ncd type="bool">0</decision-height-ncd>
@ -1369,7 +1374,7 @@
</inputs>
<speaker>
<max-dist type="double">2</max-dist>
<reference-dist type="double">1</reference-dist>
<reference-dist type="double">5</reference-dist>
<volume type="double">2</volume>
</speaker>
<voice>

View file

@ -5,11 +5,6 @@
<PropertyList include="A320-main.xml">
<sim>
<sound>
<path>Aircraft/A320-family/Sounds/leapx-sound.xml</path>
</sound>
<checklists include="A32X-Checklists.xml"/>
<description>Airbus A320-251N (LEAP-1A26)</description>
<flight-model>jsb</flight-model>
<aero>A320neo-CFM</aero>
@ -28,6 +23,10 @@
<model type="int">4</model>
</rating>
<sound>
<path>Aircraft/A320-family/Sounds/leapx-sound.xml</path>
</sound>
<previews>
<preview>
<type>exterior</type>
@ -163,14 +162,6 @@
</config>
</view>
<systems>
<wingflexer include="Systems/wingflexer-params.xml"/>
<property-rule n="100">
<name>wing flexer property rule</name>
<path>Aircraft/Generic/wingflexer.xml</path>
</property-rule>
</systems>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320-family/Systems/fadec-cfm.xml</path>
@ -192,8 +183,9 @@
<options n="0">
<EIS2 type="bool">1</EIS2>
<eng>CFM</eng>
<maxblock>52.3</maxblock>
<eng type="string">CFM</eng>
<maxblock type="double">52.3</maxblock>
<maxflap type="int">35</maxflap>
</options>
<sharklet type="bool">1</sharklet>

View file

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

View file

@ -5,11 +5,6 @@
<PropertyList include="A320-main.xml">
<sim>
<sound>
<path>Aircraft/A320-family/Sounds/leapx-sound.xml</path>
</sound>
<checklists include="A32X-Checklists.xml"/>
<description>Airbus A320-271N (PurePower 1127G)</description>
<flight-model>jsb</flight-model>
<aero>A320neo-PW</aero>
@ -28,6 +23,10 @@
<model type="int">4</model>
</rating>
<sound>
<path>Aircraft/A320-family/Sounds/leapx-sound.xml</path>
</sound>
<previews>
<preview>
<type>exterior</type>
@ -163,14 +162,6 @@
</config>
</view>
<systems>
<wingflexer include="Systems/wingflexer-params.xml"/>
<property-rule n="100">
<name>wing flexer property rule</name>
<path>Aircraft/Generic/wingflexer.xml</path>
</property-rule>
</systems>
<systems n="0">
<autopilot n="0"> <!-- Apparently PW PurePower uses N1, not EPR.... sooo I use CFM FADEC -->
<path>Aircraft/A320-family/Systems/fadec-cfm.xml</path>
@ -192,8 +183,9 @@
<options n="0">
<EIS2 type="bool">1</EIS2>
<eng>CFM</eng> <!-- Apparently PW PurePower uses N1, not EPR.... sooo I use CFM ECAM, and no N1 mode switches -->
<maxblock>52.3</maxblock>
<eng type="string">CFM</eng> <!-- Apparently PW PurePower uses N1, not EPR.... sooo I use CFM ECAM, and no N1 mode switches -->
<maxblock type="double">52.3</maxblock>
<maxflap type="int">35</maxflap>
</options>
<sharklet type="bool">1</sharklet>

View file

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

View file

@ -12,7 +12,7 @@
<value>COMPLETED(BOTH)</value>
</item>
<item>
<name>PINS AND COVERS</name>
<name>GEAR PINS AND COVERS</name>
<value>REMOVED</value>
</item>
<item>
@ -86,7 +86,7 @@
</marker>
</item>
<item>
<name>THR LEVERS</name>
<name>THRUST LEVERS</name>
<value>IDLE</value>
<marker>
<x-m>4.7200</x-m>

View file

@ -277,12 +277,7 @@ var colddark = func {
setprop("/controls/engines/engine-start-switch", 1);
setprop("/controls/engines/engine[0]/cutoff-switch", 1);
setprop("/controls/engines/engine[1]/cutoff-switch", 1);
setprop("/controls/flight/slats", 0.000);
setprop("/controls/flight/flaps", 0.000);
setprop("/controls/flight/flap-lever", 0);
setprop("/controls/flight/flap-pos", 0);
setprop("/controls/flight/flap-txt", " ");
libraries.flaptimer.stop();
setprop("/controls/flight/flaps", 0);
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake", 0);
setprop("/controls/gear/gear-down", 1);
@ -340,12 +335,7 @@ var beforestart = func {
setprop("/controls/engines/engine-start-switch", 1);
setprop("/controls/engines/engine[0]/cutoff-switch", 1);
setprop("/controls/engines/engine[1]/cutoff-switch", 1);
setprop("/controls/flight/slats", 0.000);
setprop("/controls/flight/flaps", 0.000);
setprop("/controls/flight/flap-lever", 0);
setprop("/controls/flight/flap-pos", 0);
setprop("/controls/flight/flap-txt", " ");
libraries.flaptimer.stop();
setprop("/controls/flight/flaps", 0);
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake", 0);
setprop("/controls/gear/gear-down", 1);
@ -432,12 +422,7 @@ var taxi = func {
setprop("/controls/engines/engine-start-switch", 1);
setprop("/controls/engines/engine[0]/cutoff-switch", 1);
setprop("/controls/engines/engine[1]/cutoff-switch", 1);
setprop("/controls/flight/slats", 0.000);
setprop("/controls/flight/flaps", 0.000);
setprop("/controls/flight/flap-lever", 0);
setprop("/controls/flight/flap-pos", 0);
setprop("/controls/flight/flap-txt", " ");
libraries.flaptimer.stop();
setprop("/controls/flight/flaps", 0);
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake", 0);
setprop("/controls/gear/gear-down", 1);
@ -548,14 +533,9 @@ var takeoff = func {
setprop("/controls/switches/landing-lights-l", 1);
setprop("/controls/switches/landing-lights-r", 1);
setprop("/controls/flight/speedbrake-arm", 1);
setprop("/controls/flight/flaps", 0.290);
setprop("/controls/flight/slats", 0.666);
setprop("/controls/flight/flap-lever", 1);
setprop("/controls/flight/flap-pos", 2);
setprop("/controls/flight/flap-txt", "1+F");
setprop("/controls/flight/flaps", 0.2);
setprop("/controls/atc/mode-knob", 4);
atc.transponderPanel.modeSwitch(5);
libraries.flaptimer.start();
setprop("/controls/flight/elevator-trim", -0.07);
systems.arm_autobrake(3);
setprop("/ECAM/to-config-test", 1);

View file

@ -391,6 +391,7 @@
<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>
@ -407,6 +408,10 @@
</offsets>
</model>
<model>
<path>Aircraft/Generic/marker.xml</path>
</model>
<!-- Firetruck -->
<model>

View file

@ -421,6 +421,7 @@
<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>
@ -437,6 +438,10 @@
</offsets>
</model>
<model>
<path>Aircraft/Generic/marker.xml</path>
</model>
<!-- Firetruck -->
<model>

View file

@ -421,6 +421,7 @@
<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>
@ -437,6 +438,10 @@
</offsets>
</model>
<model>
<path>Aircraft/Generic/marker.xml</path>
</model>
<!-- Firetruck -->
<model>

View file

@ -400,6 +400,7 @@
<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>
@ -416,6 +417,10 @@
</offsets>
</model>
<model>
<path>Aircraft/Generic/marker.xml</path>
</model>
<!-- Firetruck -->
<model>

View file

@ -400,6 +400,7 @@
<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>
@ -416,6 +417,10 @@
</offsets>
</model>
<model>
<path>Aircraft/Generic/marker.xml</path>
</model>
<!-- Firetruck -->
<model>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>display</name>
<inherits-from>Effects/model-interior-display</inherits-from>
<parameters>
<texture n="4">
<type>cubemap</type>
<images>
<positive-x>Models/Effects/res/white.png</positive-x>
<negative-x>Models/Effects/res/white.png</negative-x>
<positive-y>Models/Effects/res/white.png</positive-y>
<negative-y>Models/Effects/res/white.png</negative-y>
<positive-z>Models/Effects/res/white.png</positive-z>
<negative-z>Models/Effects/res/white.png</negative-z>
</images>
</texture>
<texture n="5">
<type>2d</type>
<filter>linear-mipmap-linear</filter>
<wrap-s>clamp</wrap-s>
<wrap-t>clamp</wrap-t>
<internal-format>normalized</internal-format>
<image>Aircraft/Generic/Effects/dust-effect-overlay.png</image>
</texture>
<sample-res>0.0007</sample-res>
<dirt-factor><use>/maintainance/cockpit-cleaness-factor</use></dirt-factor>
<contrast><use>/sim/model/display-contrast</use></contrast>
</parameters>
</PropertyList>

View file

@ -7519,6 +7519,7 @@
<object-name>wall_1</object-name>
<object-name>wall_2</object-name>
<object-name>window_frame</object-name>
<object-name>WindowCpt</object-name>
<object-name>HeadsetCpt</object-name>
<object-name>WindowGlassCpt</object-name>
<object-name>WindowOpenerCpt</object-name>

View file

@ -233,8 +233,8 @@ var fuel_flow1 = props.globals.getNode("/engines/engine[0]/fuel-flow_actual", 1)
var fuel_flow2 = props.globals.getNode("/engines/engine[1]/fuel-flow_actual", 1);
var fuel_left_outer_temp = props.globals.getNode("/consumables/fuel/tank[0]/temperature_degC", 1);
var fuel_left_inner_temp = props.globals.getNode("/consumables/fuel/tank[1]/temperature_degC", 1);
var fuel_right_outer_temp = props.globals.getNode("/consumables/fuel/tank[3]/temperature_degC", 1);
var fuel_right_inner_temp = props.globals.getNode("/consumables/fuel/tank[4]/temperature_degC", 1);
var fuel_right_outer_temp = props.globals.getNode("/consumables/fuel/tank[4]/temperature_degC", 1);
var fuel_right_inner_temp = props.globals.getNode("/consumables/fuel/tank[3]/temperature_degC", 1);
var cutoff_switch1 = props.globals.getNode("/controls/engines/engine[0]/cutoff-switch", 1);
var cutoff_switch2 = props.globals.getNode("/controls/engines/engine[1]/cutoff-switch", 1);
var fuel_xfeed = props.globals.getNode("/controls/fuel/x-feed", 1);

View file

@ -31,12 +31,8 @@
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<inherits-from>Aircraft/A320-family/Models/Effects/display</inherits-from>
<object-name>lecam.screen</object-name>
<parameters>
<contrast>0.7</contrast>
<dirt-factor><use>/maintainance/cockpit-cleaness-factor</use></dirt-factor>
</parameters>
</effect>
</PropertyList>

View file

@ -2987,7 +2987,7 @@ var canvas_MCDU_base = {
me["Simple_L3S"].setText("MAG WIND");
if (dest_mag.getValue() != -1 and dest_wind.getValue() != -1) {
me["Simple_L3"].setText(sprintf("%3.0fg", dest_mag.getValue()) ~ sprintf("/%.0f", dest_wind.getValue()));
me["Simple_L3"].setText(sprintf("%03.0fg", dest_mag.getValue()) ~ sprintf("/%.0f", dest_wind.getValue()));
} else {
me["Simple_L3"].setText("---g/---");;
}

View file

@ -49,12 +49,8 @@
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<inherits-from>Aircraft/A320-family/Models/Effects/display</inherits-from>
<object-name>mcdu1.screen</object-name>
<parameters>
<contrast>0.7</contrast>
<dirt-factor><use>/maintainance/cockpit-cleaness-factor</use></dirt-factor>
</parameters>
</effect>
<animation>

View file

@ -49,12 +49,8 @@
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<inherits-from>Aircraft/A320-family/Models/Effects/display</inherits-from>
<object-name>mcdu2.screen</object-name>
<parameters>
<contrast>0.7</contrast>
<dirt-factor><use>/maintainance/cockpit-cleaness-factor</use></dirt-factor>
</parameters>
</effect>
<animation>

View file

@ -31,12 +31,8 @@
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<inherits-from>Aircraft/A320-family/Models/Effects/display</inherits-from>
<object-name>ND.screen</object-name>
<parameters>
<contrast>0.7</contrast>
<dirt-factor><use>/maintainance/cockpit-cleaness-factor</use></dirt-factor>
</parameters>
</effect>
</PropertyList>

View file

@ -31,12 +31,8 @@
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<inherits-from>Aircraft/A320-family/Models/Effects/display</inherits-from>
<object-name>ND_R.screen</object-name>
<parameters>
<contrast>0.7</contrast>
<dirt-factor><use>/maintainance/cockpit-cleaness-factor</use></dirt-factor>
</parameters>
</effect>
</PropertyList>

View file

@ -29,10 +29,8 @@ var SymbolCache32x32 = canvas.SymbolCache32x32;
var SymbolCache = canvas.SymbolCache;
var Text = canvas.Text;
io.include("ND_config.nas");
io.include("framework/canvas.nas");
io.include("framework/navdisplay.nas");
io.include("framework/MapDrivers.nas");
io.include("loaders.nas");
io.include("helpers.nas");
io.include("style.nas");

View file

@ -1,27 +0,0 @@
# A3XX ND Canvas
# Joshua Davidson (Octal450)
# Based on work by artix
# Copyright (c) 2020 Josh Davidson (Octal450)
canvas.NDConfig = {
properties: {
des_apt: "/autopilot/route-manager/destination/airport",
dep_apt: "/autopilot/route-manager/departure/airport",
des_rwy: "/autopilot/route-manager/destination/runway",
dep_rwy: "/autopilot/route-manager/departure/runway",
fplan_active: "autopilot/route-manager/active",
athr: "/it-autoflight/output/athr",
cur_wp: "/autopilot/route-manager/current-wp",
vnav_node: "/autopilot/route-manager/vnav/",
spd_node: "/autopilot/route-manager/spd/",
holding: "/flight-management/hold",
holding_points: "/flight-management/hold/points",
adf1_frq: "instrumentation/adf[0]/frequencies/selected-khz",
adf2_frq: "instrumentation/adf[1]/frequencies/selected-khz",
nav1_frq: "instrumentation/nav[0]/frequencies/selected-mhz",
nav2_frq: "instrumentation/nav[1]/frequencies/selected-mhz",
lat_ctrl: "/it-autoflight/output/lat",
ver_ctrl: "/it-autoflight/output/vert",
}
};

View file

@ -1,122 +0,0 @@
# A3XX ND Canvas
# Joshua Davidson (Octal450)
# Based on work by artix
# Copyright (c) 2020 Josh Davidson (Octal450)
canvas.RouteDriver = {
new: func(){
var m = {
parents: [canvas.RouteDriver],
};
m.init();
return m;
},
init: func(){
me.update();
},
update: func(){
me.flightplan = flightplan();
},
getNumberOfFlightPlans: func(){1},
getFlightPlanType: func(fpNum){"active"},
getFlightPlan: func(fpNum){me.flightplan},
getPlanSize: func(fpNum){me.flightplan.getPlanSize()},
getWP: func(fpNum, idx){me.flightplan.getWP(idx)},
getListeners: func(){[]},
getPlanModeWP: func(plan_wp_idx){me.flightplan.getWP(plan_wp_idx)},
hasDiscontinuity: func(fpNum, wpt){0},
getHoldPattern: func(fpNum, wpt){nil},
getHoldPatterns: func(fpNum){[]},
shouldUpdate: func 1,
shouldDisplayWP: func(fpNum, idx) 1,
getCurrentWPIdx: func(fpNum) getprop("autopilot/route-manager/current-wp"),
getTimeConstraint: func (fpNum, wp_idx) {nil}
};
canvas.MultiRouteDriver = {
parents: [canvas.RouteDriver],
new: func(){
var m = {
parents: [MultiRouteDriver],
_flightplans: [],
currentFlightPlan: 0
};
m.init();
return m;
},
addFlightPlan: func(type, plan){
append(me._flightplans, {
type: type,
flightplan: plan
});
},
removeFlightPlanAtIndex: func(idx){
var sz = size(me._flightplans);
if(idx < sz){
if(sz == 1)
me._flightplans = [];
elsif(sz == 2 and idx == 0)
me._flightplans = [me._flightplans[1]];
elsif(sz == 2 and idx == 1)
pop(me._flightplans);
else {
var subv_l = subvec(me._flightplans, 0, idx);
var subv_r = subvec(me._flightplans, idx + 1);
me._flightplans = subv_l ~ subv_r;
}
}
me.triggerSignal("fp-added");
},
removeFlightPlanOfType: func(type){
var new_vec = [];
foreach(var fp; me._flightplans){
if(fp["type"] != type)
append(new_vec, fp);
}
me._flightplans = new_vec;
me.triggerSignal("fp-removed");
},
getNumberOfFlightPlans: func(){
size(me._flightplans);
},
getFlightPlanType: func(fpNum){
if(fpNum >= size(me._flightplans)) return nil;
var fp = me._flightplans[fpNum];
return fp.type;
},
getFlightPlan: func(fpNum){
if(fpNum >= size(me._flightplans)) return nil;
return me._flightplans[fpNum];
},
getPlanSize: func(fpNum){
if(fpNum >= size(me._flightplans)) return 0;
return me._flightplans[fpNum].getPlanSize();
},
getWP: func(fpNum, idx){
if(fpNum >= size(me._flightplans)) return nil;
var fp = me._flightplans[fpNum];
return fp.getWP(idx);
},
getPlanModeWP: func(idx){
if(me.currentFlightPlan >= size(me._flightplans)) return nil;
var fp = me._flightplans[me.currentFlightPlan];
return fp.getWP(idx);
},
triggerSignal: func(signal){
setprop(me.signalPath(signal));
},
signalPath: func(signal){
"autopilot/route-manager/signals/rd-"~ signal;
},
getListeners: func(){[
me.getSignal("fp-added"),
me.getSignal("fp-removed")
]},
getCurrentWPIdx: func(fpNum) {
var fp = me.getFlightPlan(fpNum);
var wp = fp.getWP();
if (wp == nil) return -1;
return wp.index;
}
};

View file

@ -393,9 +393,9 @@ canvas.NavDisplay.update = func() # FIXME: This stuff is still too aircraft spec
me.symbols.vorR.setColor(0,0.6,0.85);
me.symbols.dmeR.setText("");
me.symbols.dmeR.setColor(0,0.6,0.85);
if((var navident=getprop("instrumentation/adf[1]/ident")) != "")
if((var navident=getprop("/instrumentation/adf[1]/ident")) != "")
me.symbols.vorRId.setText(navident);
else me.symbols.vorRId.setText(sprintf("%3d",getprop("instrumentation/adf[1]/frequencies/selected-khz")));
else me.symbols.vorRId.setText(sprintf("%3d",getprop("/instrumentation/adf[1]/frequencies/selected-khz")));
me.symbols.vorRId.setColor(0,0.6,0.85);
me.symbols.dmeRDist.setText("");
me.symbols.dmeRDist.setColor(0,0.6,0.85);
@ -407,8 +407,8 @@ canvas.NavDisplay.update = func() # FIXME: This stuff is still too aircraft spec
}
# Hide heading bug 10 secs after change
var vhdg_bug = getprop("it-autoflight/input/hdg") or 0;
var hdg_bug_active = getprop("it-autoflight/custom/show-hdg");
var vhdg_bug = getprop("/it-autoflight/input/hdg") or 0;
var hdg_bug_active = getprop("/it-autoflight/custom/show-hdg");
if (hdg_bug_active == nil)
hdg_bug_active = 1;
@ -445,31 +445,31 @@ canvas.NavDisplay.update = func() # FIXME: This stuff is still too aircraft spec
var vorheading = userHdgTru;
var adfheading = userHdgMag;
}
if (getprop("instrumentation/nav[2]/heading-deg") != nil) {
var nav0hdg = getprop("instrumentation/nav[2]/heading-deg") - getprop("orientation/heading-deg");
if (getprop("/instrumentation/nav[2]/heading-deg") != nil) {
var nav0hdg = getprop("/instrumentation/nav[2]/heading-deg") - getprop("orientation/heading-deg");
} else {
var nav0hdg = 0;
}
if (getprop("instrumentation/nav[3]/heading-deg") != nil) {
var nav1hdg = getprop("instrumentation/nav[3]/heading-deg") - getprop("orientation/heading-deg");
if (getprop("/instrumentation/nav[3]/heading-deg") != nil) {
var nav1hdg = getprop("/instrumentation/nav[3]/heading-deg") - getprop("orientation/heading-deg");
} else {
var nav1hdg = 0;
}
var adf0hdg = getprop("instrumentation/adf/indicated-bearing-deg");
var adf1hdg = getprop("instrumentation/adf[1]/indicated-bearing-deg");
var adf0hdg = getprop("/instrumentation/adf/indicated-bearing-deg");
var adf1hdg = getprop("/instrumentation/adf[1]/indicated-bearing-deg");
if(!me.get_switch("toggle_centered"))
{
if(me.in_mode("toggle_display_mode", ["PLAN"]))
me.symbols.trkInd.hide();
else
me.symbols.trkInd.show();
if((getprop("instrumentation/nav[2]/in-range") and me.get_switch("toggle_lh_vor_adf") == 1)) {
if((getprop("/instrumentation/nav[2]/in-range") and me.get_switch("toggle_lh_vor_adf") == 1)) {
me.symbols.staArrowL.setVisible(staPtrVis);
me.symbols.staToL.setColor(0.195,0.96,0.097);
me.symbols.staFromL.setColor(0.195,0.96,0.097);
me.symbols.staArrowL.setRotation(nav0hdg*D2R);
}
elsif(getprop("instrumentation/adf/in-range") and (me.get_switch("toggle_lh_vor_adf") == -1)) {
elsif(getprop("/instrumentation/adf/in-range") and (me.get_switch("toggle_lh_vor_adf") == -1)) {
me.symbols.staArrowL.setVisible(staPtrVis);
me.symbols.staToL.setColor(0,0.6,0.85);
me.symbols.staFromL.setColor(0,0.6,0.85);
@ -477,12 +477,12 @@ canvas.NavDisplay.update = func() # FIXME: This stuff is still too aircraft spec
} else {
me.symbols.staArrowL.hide();
}
if((getprop("instrumentation/nav[3]/in-range") and me.get_switch("toggle_rh_vor_adf") == 1)) {
if((getprop("/instrumentation/nav[3]/in-range") and me.get_switch("toggle_rh_vor_adf") == 1)) {
me.symbols.staArrowR.setVisible(staPtrVis);
me.symbols.staToR.setColor(0.195,0.96,0.097);
me.symbols.staFromR.setColor(0.195,0.96,0.097);
me.symbols.staArrowR.setRotation(nav1hdg*D2R);
} elsif(getprop("instrumentation/adf[1]/in-range") and (me.get_switch("toggle_rh_vor_adf") == -1)) {
} elsif(getprop("/instrumentation/adf[1]/in-range") and (me.get_switch("toggle_rh_vor_adf") == -1)) {
me.symbols.staArrowR.setVisible(staPtrVis);
me.symbols.staToR.setColor(0,0.6,0.85);
me.symbols.staFromR.setColor(0,0.6,0.85);
@ -517,12 +517,12 @@ canvas.NavDisplay.update = func() # FIXME: This stuff is still too aircraft spec
me.symbols.selHdgLine.setVisible(staPtrVis and hdg_bug_active);
} else {
me.symbols.trkInd.hide();
if((getprop("instrumentation/nav[2]/in-range") and me.get_switch("toggle_lh_vor_adf") == 1)) {
if((getprop("/instrumentation/nav[2]/in-range") and me.get_switch("toggle_lh_vor_adf") == 1)) {
me.symbols.staArrowL2.setVisible(staPtrVis);
me.symbols.staFromL2.setColor(0.195,0.96,0.097);
me.symbols.staToL2.setColor(0.195,0.96,0.097);
me.symbols.staArrowL2.setRotation(nav0hdg*D2R);
} elsif(getprop("instrumentation/adf/in-range") and (me.get_switch("toggle_lh_vor_adf") == -1)) {
} elsif(getprop("/instrumentation/adf/in-range") and (me.get_switch("toggle_lh_vor_adf") == -1)) {
me.symbols.staArrowL2.setVisible(staPtrVis);
me.symbols.staFromL2.setColor(0,0.6,0.85);
me.symbols.staToL2.setColor(0,0.6,0.85);
@ -530,12 +530,12 @@ canvas.NavDisplay.update = func() # FIXME: This stuff is still too aircraft spec
} else {
me.symbols.staArrowL2.hide();
}
if((getprop("instrumentation/nav[3]/in-range") and me.get_switch("toggle_rh_vor_adf") == 1)) {
if((getprop("/instrumentation/nav[3]/in-range") and me.get_switch("toggle_rh_vor_adf") == 1)) {
me.symbols.staArrowR2.setVisible(staPtrVis);
me.symbols.staFromR2.setColor(0.195,0.96,0.097);
me.symbols.staToR2.setColor(0.195,0.96,0.097);
me.symbols.staArrowR2.setRotation(nav1hdg*D2R);
} elsif(getprop("instrumentation/adf[1]/in-range") and (me.get_switch("toggle_rh_vor_adf") == -1)) {
} elsif(getprop("/instrumentation/adf[1]/in-range") and (me.get_switch("toggle_rh_vor_adf") == -1)) {
me.symbols.staArrowR2.setVisible(staPtrVis);
me.symbols.staFromR2.setColor(0,0.6,0.85);
me.symbols.staToR2.setColor(0,0.6,0.85);

View file

@ -56,7 +56,7 @@ var new = func(layer) {
layer.searcher._equals = func(a,b) a.equals(b);
var driver = opt_member(m.layer.options, 'route_driver');
if(driver == nil){
driver = RouteDriver.new();
driver = A3XXRouteDriver.new();
}
var driver_listeners = driver.getListeners();
foreach(var listener; driver_listeners){

View file

@ -632,7 +632,7 @@ canvas.NDStyles["Airbus"] = {
update_on: ["toggle_display_mode"],
predicate: func(nd, layer){
var map_mode = nd.in_mode("toggle_display_mode", ["MAP", "PLAN"]);
var debug_actv = getprop("autopilot/route-manager/debug/active") or 0;
var debug_actv = getprop("/autopilot/route-manager/debug/active") or 0;
var visible = (map_mode and debug_actv);
layer.group.setVisible( visible );
if (visible) {
@ -676,7 +676,7 @@ canvas.NDStyles["Airbus"] = {
id: "taOnly", # the SVG ID
impl: { # implementation hash
init: func(nd, symbol), # for updateCenter stuff, called during initialization in the ctor
predicate: func(nd) getprop("instrumentation/tcas/inputs/mode") == 2, # the condition
predicate: func(nd) getprop("/instrumentation/tcas/inputs/mode") == 2, # the condition
is_true: func(nd) nd.symbols.taOnly.show(), # if true, run this
is_false: func(nd) nd.symbols.taOnly.hide(), # if false, run this
}, # end of taOnly behavior/callbacks
@ -687,7 +687,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) nd.aircraft_source.get_spd() > 100,
is_true: func(nd) {
nd.symbols.tas.setText(sprintf("%3.0f",getprop("velocities/TAS") ));
nd.symbols.tas.setText(sprintf("%3.0f",getprop("/velocities/TAS") ));
nd.symbols.tas.show();
},
is_false: func(nd) nd.symbols.tas.hide(),
@ -741,7 +741,7 @@ canvas.NDStyles["Airbus"] = {
impl: {
init: func(nd,symbol),
predicate: func(nd) getprop("/FMGC/flightplan[2]/current-leg") != nil and
getprop("FMGC/flightplan[2]/active") and
getprop("/FMGC/flightplan[2]/active") and
nd.in_mode("toggle_display_mode", ["MAP", "PLAN"]),
is_true: func(nd) {
nd.symbols.wpActiveId.setText(getprop("/FMGC/flightplan[2]/current-leg"));
@ -755,10 +755,10 @@ canvas.NDStyles["Airbus"] = {
impl: {
init: func(nd,symbol),
predicate: func(nd) getprop("/FMGC/flightplan[2]/current-leg") != nil and
getprop("FMGC/flightplan[2]/active") and
getprop("/FMGC/flightplan[2]/active") and
nd.in_mode("toggle_display_mode", ["MAP", "PLAN"]),
is_true: func(nd) {
#var cur_wp = getprop("autopilot/route-manager/current-wp");
#var cur_wp = getprop("/autopilot/route-manager/current-wp");
if (nd.get_switch("toggle_true_north")) {
var deg = math.round(getprop("/FMGC/flightplan[2]/current-leg-course"));
} else {
@ -775,7 +775,7 @@ canvas.NDStyles["Airbus"] = {
impl: {
init: func(nd,symbol),
predicate: func(nd) getprop("/FMGC/flightplan[2]/current-leg-dist") != nil and
getprop("FMGC/flightplan[2]/active") and
getprop("/FMGC/flightplan[2]/active") and
nd.in_mode("toggle_display_mode", ["MAP", "PLAN"]),
is_true: func(nd) {
var dst = getprop("/FMGC/flightplan[2]/current-leg-dist");
@ -789,7 +789,7 @@ canvas.NDStyles["Airbus"] = {
id: "wpActiveDistLbl",
impl: {
init: func(nd,symbol),
predicate: func(nd) getprop("/FMGC/flightplan[2]/current-leg-dist") != nil and getprop("FMGC/flightplan[2]/active") and nd.in_mode("toggle_display_mode", ["MAP", "PLAN"]),
predicate: func(nd) getprop("/FMGC/flightplan[2]/current-leg-dist") != nil and getprop("/FMGC/flightplan[2]/active") and nd.in_mode("toggle_display_mode", ["MAP", "PLAN"]),
is_true: func(nd) {
nd.symbols.wpActiveDistLbl.show();
if(getprop("/FMGC/flightplan[2]/current-leg-dist") > 1000)
@ -802,10 +802,10 @@ canvas.NDStyles["Airbus"] = {
id: "eta",
impl: {
init: func(nd,symbol),
predicate: func(nd) getprop("autopilot/route-manager/wp/eta") != nil and getprop("FMGC/flightplan[2]/active") and nd.in_mode("toggle_display_mode", ["MAP", "PLAN"]),
predicate: func(nd) getprop("/autopilot/route-manager/wp/eta") != nil and getprop("/FMGC/flightplan[2]/active") and nd.in_mode("toggle_display_mode", ["MAP", "PLAN"]),
is_true: func(nd) {
var etaSec = getprop("sim/time/utc/day-seconds")+
getprop("autopilot/route-manager/wp/eta-seconds");
var etaSec = getprop("/sim/time/utc/day-seconds")+
getprop("/autopilot/route-manager/wp/eta-seconds");
var h = math.floor(etaSec/3600);
etaSec = etaSec-3600*h;
var m = math.floor(etaSec/60);
@ -1182,9 +1182,9 @@ canvas.NDStyles["Airbus"] = {
is_true: func(nd) {
nd.symbols.vorCrsPtr.show();
if (is_ils) {
nd.symbols.vorCrsPtr.setRotation((getprop("instrumentation/nav[0]/radials/selected-deg")-nd.aircraft_source.get_hdg_mag())*D2R);
nd.symbols.vorCrsPtr.setRotation((getprop("/instrumentation/nav[0]/radials/selected-deg")-nd.aircraft_source.get_hdg_mag())*D2R);
} else {
nd.symbols.vorCrsPtr.setRotation((getprop("instrumentation/nav[2]/radials/selected-deg")-nd.aircraft_source.get_hdg_mag())*D2R);
nd.symbols.vorCrsPtr.setRotation((getprop("/instrumentation/nav[2]/radials/selected-deg")-nd.aircraft_source.get_hdg_mag())*D2R);
}
},
@ -1202,9 +1202,9 @@ canvas.NDStyles["Airbus"] = {
var type = (is_ils ? "ils" : "vor");
var path = nd.get_nav_path(type, 0);
if (is_ils) {
nd.symbols.vorCrsPtr2.setRotation((getprop("instrumentation/nav[0]/radials/selected-deg")-nd.aircraft_source.get_hdg_mag())*D2R);
nd.symbols.vorCrsPtr2.setRotation((getprop("/instrumentation/nav[0]/radials/selected-deg")-nd.aircraft_source.get_hdg_mag())*D2R);
} else {
nd.symbols.vorCrsPtr2.setRotation((getprop("instrumentation/nav[2]/radials/selected-deg")-nd.aircraft_source.get_hdg_mag())*D2R);
nd.symbols.vorCrsPtr2.setRotation((getprop("/instrumentation/nav[2]/radials/selected-deg")-nd.aircraft_source.get_hdg_mag())*D2R);
}
var line = nd.symbols.vorCrsPtr2.getElementById("vorCrsPtr2_line");
if(!is_ils){
@ -1224,8 +1224,8 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) nd.in_mode("toggle_display_mode", ["APP"]),
is_true: func(nd) {
if(getprop("instrumentation/nav/gs-needle-deflection-norm") != nil)
nd.symbols.gsDiamond.setTranslation(getprop("instrumentation/nav[0]/gs-needle-deflection-norm")*150,0);
if(getprop("/instrumentation/nav/gs-needle-deflection-norm") != nil)
nd.symbols.gsDiamond.setTranslation(getprop("/instrumentation/nav[0]/gs-needle-deflection-norm")*150,0);
},
is_false: func(nd) nd.symbols.gsGroup.hide(),
},
@ -1234,10 +1234,10 @@ canvas.NDStyles["Airbus"] = {
id:"locPtr",
impl: {
init: func(nd,symbol),
predicate: func(nd) (nd.in_mode("toggle_display_mode", ["APP","VOR"]) and !nd.get_switch("toggle_centered") and getprop("instrumentation/nav/in-range")),
predicate: func(nd) (nd.in_mode("toggle_display_mode", ["APP","VOR"]) and !nd.get_switch("toggle_centered") and getprop("/instrumentation/nav/in-range")),
is_true: func(nd) {
nd.symbols.locPtr.show();
var deflection = getprop("instrumentation/nav[0]/heading-needle-deflection-norm");
var deflection = getprop("/instrumentation/nav[0]/heading-needle-deflection-norm");
nd.symbols.locPtr.setTranslation(deflection*150,0);
},
is_false: func(nd) nd.symbols.locPtr.hide(),
@ -1286,15 +1286,15 @@ canvas.NDStyles["Airbus"] = {
impl: {
init: func(nd,symbol),
predicate: func(nd) {
var nav_id = getprop("instrumentation/nav/nav-id");
var ils_mode = getprop("flight-management/freq/ils-mode");
var nav_id = getprop("/instrumentation/nav/nav-id");
var ils_mode = getprop("/Flight-management/freq/ils-mode");
var has_ils = (nav_id != nil and nav_id != "");
(nd.get_switch("toggle_display_mode") == "MAP" and
!nd.get_switch("toggle_centered") and has_ils and ils_mode);
},
is_true: func(nd) {
nd.symbols.locTrkPointer.show();
var crs = getprop("instrumentation/nav/radials/selected-deg");
var crs = getprop("/instrumentation/nav/radials/selected-deg");
var rotation = (crs - nd.aircraft_source.get_hdg_tru())*D2R;
nd.symbols.locTrkPointer.setRotation(rotation);
},
@ -1306,15 +1306,15 @@ canvas.NDStyles["Airbus"] = {
impl: {
init: func(nd,symbol),
predicate: func(nd) {
var nav_id = getprop("instrumentation/nav/nav-id");
var ils_mode = getprop("flight-management/freq/ils-mode");
var nav_id = getprop("/instrumentation/nav/nav-id");
var ils_mode = getprop("/Flight-management/freq/ils-mode");
var has_ils = (nav_id != nil and nav_id != "");
(nd.get_switch("toggle_display_mode") == "MAP" and
nd.get_switch("toggle_centered") and has_ils and ils_mode);
},
is_true: func(nd) {
nd.symbols.locTrkPointer2.show();
var crs = getprop("instrumentation/nav/radials/selected-deg");
var crs = getprop("/instrumentation/nav/radials/selected-deg");
var rotation = (crs - nd.aircraft_source.get_hdg_tru())*D2R;
nd.symbols.locTrkPointer2.setRotation(rotation);
},
@ -1365,7 +1365,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) {
var path = nd.get_nav_path("vor", 0);
return !(nd.in_mode("toggle_display_mode", ["PLAN"])) and nd.get_switch("toggle_centered") and ((getprop(path~ "in-range") and nd.get_switch("toggle_lh_vor_adf") == 1) or (getprop("instrumentation/adf/in-range") and nd.get_switch("toggle_lh_vor_adf") == -1));
return !(nd.in_mode("toggle_display_mode", ["PLAN"])) and nd.get_switch("toggle_centered") and ((getprop(path~ "in-range") and nd.get_switch("toggle_lh_vor_adf") == 1) or (getprop("/instrumentation/adf/in-range") and nd.get_switch("toggle_lh_vor_adf") == -1));
},
is_true: func(nd) {
if(nd.get_switch("toggle_lh_vor_adf") < 0){
@ -1390,7 +1390,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) {
var path = nd.get_nav_path("vor", 1);
return !(nd.in_mode("toggle_display_mode", ["PLAN"])) and nd.get_switch("toggle_centered") and ((getprop(path~ "in-range") and nd.get_switch("toggle_rh_vor_adf") == 1) or (getprop("instrumentation/adf[1]/in-range") and nd.get_switch("toggle_rh_vor_adf") == -1));
return !(nd.in_mode("toggle_display_mode", ["PLAN"])) and nd.get_switch("toggle_centered") and ((getprop(path~ "in-range") and nd.get_switch("toggle_rh_vor_adf") == 1) or (getprop("/instrumentation/adf[1]/in-range") and nd.get_switch("toggle_rh_vor_adf") == -1));
},
is_true: func(nd) {
if(nd.get_switch("toggle_rh_vor_adf") < 0){
@ -1415,7 +1415,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) {
var path = nd.get_nav_path("vor", 0);
return nd.in_mode("toggle_display_mode", ["MAP"]) and !nd.get_switch("toggle_centered") and ((getprop(path~ "in-range") and nd.get_switch("toggle_lh_vor_adf") == 1) or (getprop("instrumentation/adf/in-range") and nd.get_switch("toggle_lh_vor_adf") == -1));
return nd.in_mode("toggle_display_mode", ["MAP"]) and !nd.get_switch("toggle_centered") and ((getprop(path~ "in-range") and nd.get_switch("toggle_lh_vor_adf") == 1) or (getprop("/instrumentation/adf/in-range") and nd.get_switch("toggle_lh_vor_adf") == -1));
},
is_true: func(nd) {
if(nd.get_switch("toggle_lh_vor_adf") < 0){
@ -1440,7 +1440,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) {
var path = nd.get_nav_path("vor", 1);
return nd.in_mode("toggle_display_mode", ["MAP"]) and !nd.get_switch("toggle_centered") and ((getprop(path~ "in-range") and nd.get_switch("toggle_rh_vor_adf") == 1) or (getprop("instrumentation/adf[1]/in-range") and nd.get_switch("toggle_rh_vor_adf") == -1));
return nd.in_mode("toggle_display_mode", ["MAP"]) and !nd.get_switch("toggle_centered") and ((getprop(path~ "in-range") and nd.get_switch("toggle_rh_vor_adf") == 1) or (getprop("/instrumentation/adf[1]/in-range") and nd.get_switch("toggle_rh_vor_adf") == -1));
},
is_true: func(nd) {
if(nd.get_switch("toggle_rh_vor_adf") < 0){
@ -1691,7 +1691,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) (nd.get_switch("toggle_display_mode") == "MAP" and !nd.get_switch("toggle_centered")),
is_true: func(nd){
var active = getprop("FMGC/flightplan[2]/active");
var active = getprop("/FMGC/flightplan[2]/active");
var lat_ctrl = getprop(nd.options.defaults.lat_ctrl);
var managed_v = nd.options.defaults.managed_val;
var is_managed = (lat_ctrl == managed_v);
@ -1699,7 +1699,7 @@ canvas.NDStyles["Airbus"] = {
if((!active or is_managed) and !toggle_xtrk_err){
nd.symbols.legDistL.hide();
} else {
var dist = getprop("instrumentation/gps/wp/wp[1]/course-error-nm");
var dist = getprop("/instrumentation/gps/wp/wp[1]/course-error-nm");
if(dist == nil or dist == "" or dist > -0.1){
nd.symbols.legDistL.hide();
} else {
@ -1720,7 +1720,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) (nd.get_switch("toggle_display_mode") == "MAP" and !nd.get_switch("toggle_centered")),
is_true: func(nd){
var active = getprop("FMGC/flightplan[2]/active");
var active = getprop("/FMGC/flightplan[2]/active");
var lat_ctrl = getprop(nd.options.defaults.lat_ctrl);
var managed_v = nd.options.defaults.managed_val;
var is_managed = (lat_ctrl == managed_v);
@ -1728,7 +1728,7 @@ canvas.NDStyles["Airbus"] = {
if((!active or is_managed) and !toggle_xtrk_err){
nd.symbols.legDistR.hide();
} else {
var dist = getprop("instrumentation/gps/wp/wp[1]/course-error-nm");
var dist = getprop("/instrumentation/gps/wp/wp[1]/course-error-nm");
if(dist == nil or dist == "" or dist < 0.1){
nd.symbols.legDistR.hide();
} else {
@ -1749,7 +1749,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) (nd.get_switch("toggle_display_mode") == "MAP" and nd.get_switch("toggle_centered")),
is_true: func(nd){
var active = getprop("FMGC/flightplan[2]/active");
var active = getprop("/FMGC/flightplan[2]/active");
var lat_ctrl = getprop(nd.options.defaults.lat_ctrl);
var managed_v = nd.options.defaults.managed_val;
var is_managed = (lat_ctrl == managed_v);
@ -1757,7 +1757,7 @@ canvas.NDStyles["Airbus"] = {
if((!active or is_managed) and !toggle_xtrk_err){
nd.symbols.legDistCtrL.hide();
} else {
var dist = getprop("instrumentation/gps/wp/wp[1]/course-error-nm");
var dist = getprop("/instrumentation/gps/wp/wp[1]/course-error-nm");
if(dist == nil or dist == "" or dist > -0.1){
nd.symbols.legDistCtrL.hide();
} else {
@ -1778,7 +1778,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) (nd.get_switch("toggle_display_mode") == "MAP" and nd.get_switch("toggle_centered")),
is_true: func(nd){
var active = getprop("FMGC/flightplan[2]/active");
var active = getprop("/FMGC/flightplan[2]/active");
var lat_ctrl = getprop(nd.options.defaults.lat_ctrl);
var managed_v = nd.options.defaults.managed_val;
var is_managed = (lat_ctrl == managed_v);
@ -1786,7 +1786,7 @@ canvas.NDStyles["Airbus"] = {
if((!active or is_managed) and !toggle_xtrk_err){
nd.symbols.legDistCtrR.hide();
} else {
var dist = getprop("instrumentation/gps/wp/wp[1]/course-error-nm");
var dist = getprop("/instrumentation/gps/wp/wp[1]/course-error-nm");
if(dist == nil or dist == "" or dist < 0.1){
nd.symbols.legDistCtrR.hide();
} else {
@ -1807,7 +1807,7 @@ canvas.NDStyles["Airbus"] = {
init: func(nd,symbol),
predicate: func(nd) (nd.in_mode("toggle_display_mode", ["MAP", "PLAN"])),
is_true: func(nd){
var active = getprop("FMGC/flightplan[2]/active");
var active = getprop("/FMGC/flightplan[2]/active");
var lat_ctrl = getprop(nd.options.defaults.lat_ctrl);
var managed_v = nd.options.defaults.managed_val;
var is_managed = (lat_ctrl == managed_v);

View file

@ -135,7 +135,7 @@ 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 flap_config = props.globals.getNode("/controls/flight/flaps-input", 1);
var hundredAbove = props.globals.getNode("/instrumentation/pfd/hundred-above", 1);
var minimum = props.globals.getNode("/instrumentation/pfd/minimums", 1);
@ -219,14 +219,14 @@ var canvas_PFD_base = {
return me;
},
getKeys: func() {
return ["FMA_man","FMA_manmode","FMA_flxmode","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","ALPHA_MAX","ALPHA_PROT","ALPHA_SW","ALPHA_clip","VLS_min","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_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","v1_group","v1_text","vr_speed","F_target","S_target","flap_max","clean_speed",
"ground","ground_ref"];
return ["FMA_man","FMA_manmode","FMA_flxmode","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","ALPHA_MAX","ALPHA_PROT","ALPHA_SW","ALPHA_bars","VLS_min","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_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","v1_group","v1_text","vr_speed","F_target","S_target","FS_targets","flap_max","clean_speed","ground","ground_ref"];
},
updateDu1: func() {
var elapsedtime_act = elapsedtime.getValue();
@ -962,7 +962,7 @@ var canvas_PFD_base = {
me["HDG_target"].hide();
}
me["TRK_pointer"].setTranslation((track_diff.getValue() / 10) * 98.5416, 0);
me["TRK_pointer"].setTranslation((math.clamp(track_diff.getValue(), -23.62, 23.62) / 10) * 98.5416, 0);
split_ils = split("/", ils_data1.getValue());
if (ap_ils_mode.getValue() == 1 and size(split_ils) == 2) {
@ -1255,6 +1255,10 @@ var canvas_PFD_1 = {
}
}
tgt_ias = at_tgt_ias.getValue();
tgt_mach = at_input_spd_mach.getValue();
tgt_kts = at_input_spd_kts.getValue();
if (managed_spd.getValue() == 1) {
if (getprop("/FMGC/internal/decel") == 1) {
vapp = getprop("/FMGC/internal/computed-speeds/vapp");
@ -1264,10 +1268,6 @@ var canvas_PFD_1 = {
clean = getprop("/FMGC/internal/computed-speeds/clean");
tgt_ias = clean;
tgt_kts = clean;
} else {
tgt_ias = at_tgt_ias.getValue();
tgt_mach = at_input_spd_mach.getValue();
tgt_kts = at_input_spd_kts.getValue();
}
me["ASI_target"].setColor(0.6901,0.3333,0.7450);
@ -1276,10 +1276,6 @@ var canvas_PFD_1 = {
me["ASI_digit_DN"].setColor(0.6901,0.3333,0.7450);
me["ASI_decimal_DN"].setColor(0.6901,0.3333,0.7450);
} else {
tgt_ias = at_tgt_ias.getValue();
tgt_mach = at_input_spd_mach.getValue();
tgt_kts = at_input_spd_kts.getValue();
me["ASI_target"].setColor(0.0901,0.6039,0.7176);
me["ASI_digit_UP"].setColor(0.0901,0.6039,0.7176);
me["ASI_decimal_UP"].setColor(0.0901,0.6039,0.7176);
@ -1993,6 +1989,10 @@ var canvas_PFD_2 = {
}
}
tgt_ias = at_tgt_ias.getValue();
tgt_mach = at_input_spd_mach.getValue();
tgt_kts = at_input_spd_kts.getValue();
if (managed_spd.getValue() == 1) {
if (getprop("/FMGC/internal/decel") == 1) {
vapp = getprop("/FMGC/internal/computed-speeds/vapp");
@ -2002,10 +2002,6 @@ var canvas_PFD_2 = {
clean = getprop("/FMGC/internal/computed-speeds/clean");
tgt_ias = clean;
tgt_kts = clean;
} else {
tgt_ias = at_tgt_ias.getValue();
tgt_mach = at_input_spd_mach.getValue();
tgt_kts = at_input_spd_kts.getValue();
}
me["ASI_target"].setColor(0.6901,0.3333,0.7450);
@ -2014,10 +2010,6 @@ var canvas_PFD_2 = {
me["ASI_digit_DN"].setColor(0.6901,0.3333,0.7450);
me["ASI_decimal_DN"].setColor(0.6901,0.3333,0.7450);
} else {
tgt_ias = at_tgt_ias.getValue();
tgt_mach = at_input_spd_mach.getValue();
tgt_kts = at_input_spd_kts.getValue();
me["ASI_target"].setColor(0.0901,0.6039,0.7176);
me["ASI_digit_UP"].setColor(0.0901,0.6039,0.7176);
me["ASI_decimal_UP"].setColor(0.0901,0.6039,0.7176);

View file

@ -31,12 +31,8 @@
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<inherits-from>Aircraft/A320-family/Models/Effects/display</inherits-from>
<object-name>pfd1.screen</object-name>
<parameters>
<contrast>0.7</contrast>
<dirt-factor><use>/maintainance/cockpit-cleaness-factor</use></dirt-factor>
</parameters>
</effect>
</PropertyList>

View file

@ -31,12 +31,8 @@
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<inherits-from>Aircraft/A320-family/Models/Effects/display</inherits-from>
<object-name>pfd2.screen</object-name>
<parameters>
<contrast>0.7</contrast>
<dirt-factor><use>/maintainance/cockpit-cleaness-factor</use></dirt-factor>
</parameters>
</effect>
</PropertyList>

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 362 KiB

After

Width:  |  Height:  |  Size: 366 KiB

View file

@ -13,6 +13,8 @@ var rightmsg = "XX";
# Conversion factor pounds to kilogram
LBS2KGS = 0.4535924;
var flapsPos = 0;
# Create Nodes:
var fuel_1 = props.globals.initNode("/engines/engine[0]/fuel-flow_actual", 0);
var fuel_2 = props.globals.initNode("/engines/engine[1]/fuel-flow_actual", 0);
@ -48,8 +50,6 @@ var eng2_n1mode = props.globals.getNode("/systems/fadec/eng2/n1", 1);
var eng2_eprmode = props.globals.getNode("/systems/fadec/eng2/epr", 1);
var eng1_n2mode = props.globals.getNode("/systems/fadec/eng1/n2", 1);
var eng2_n2mode = props.globals.getNode("/systems/fadec/eng2/n2", 1);
var flap_text = props.globals.getNode("/controls/flight/flap-txt", 1);
var flap_pos = props.globals.getNode("/controls/flight/flap-pos", 1);
var fuel = props.globals.getNode("/consumables/fuel/total-fuel-lbs", 1);
var modeautobrake = props.globals.getNode("/controls/autobrake/mode", 1);
var speedbrakearm = props.globals.getNode("/controls/flight/speedbrake-arm", 1);
@ -232,9 +232,22 @@ var canvas_upperECAM_base = {
}
# Flap Indicator
me["FlapTxt"].setText(sprintf("%s", flap_text.getValue()));
flapsPos = pts.Controls.Flight.flapsPos.getValue();
if (flapsPos == 1) {
me["FlapTxt"].setText("1");
} else if (flapsPos == 2) {
me["FlapTxt"].setText("1+F");
} else if (flapsPos == 3) {
me["FlapTxt"].setText("2");
} else if (flapsPos == 4) {
me["FlapTxt"].setText("3");
} else if (flapsPos == 5) {
me["FlapTxt"].setText("FULL");
} else {
me["FlapTxt"].setText(" "); # More efficient then hide/show
}
if (flap_pos.getValue() > 0) {
if (flapsPos > 0) {
me["FlapDots"].show();
} else {
me["FlapDots"].hide();
@ -397,7 +410,7 @@ var canvas_upperECAM_base = {
me["TO_Spoilers_B"].show();
}
if (flap_pos.getValue() > 0 and flap_pos.getValue() < 5) {
if (flapsPos > 0 and flapsPos < 5) {
me["TO_Flaps"].setText("FLAPS T.O");
me["TO_Flaps_B"].hide();
} else {
@ -442,12 +455,11 @@ var canvas_upperECAM_base = {
}
flaps3 = flaps3_ovr.getValue();
flaps_position = flap_pos.getValue();
if (flaps3 != 1 and flaps_position == 5) {
if (flaps3 != 1 and flapsPos == 5) {
me["LDG_Flaps"].setText("FLAPS FULL");
me["LDG_Flaps_B"].hide();
me["LDG_Flaps_B3"].hide();
} else if (flaps3 == 1 and flaps_position >= 4) {
} else if (flaps3 == 1 and flapsPos >= 4) {
me["LDG_Flaps"].setText("FLAPS 3");
me["LDG_Flaps_B"].hide();
me["LDG_Flaps_B3"].hide();

View file

@ -31,12 +31,8 @@
</animation>
<effect>
<inherits-from>Effects/model-interior-display</inherits-from>
<inherits-from>Aircraft/A320-family/Models/Effects/display</inherits-from>
<object-name>uecam.screen</object-name>
<parameters>
<contrast>0.7</contrast>
<dirt-factor><use>/maintainance/cockpit-cleaness-factor</use></dirt-factor>
</parameters>
</effect>
</PropertyList>

View file

@ -86,7 +86,7 @@ var messages_priority_3 = func {
}
# FCTL FLAPS NOT ZERO
if ((flap_not_zero.clearFlag == 0) and phaseVar == 6 and getprop("controls/flight/flap-lever") != 0 and getprop("instrumentation/altimeter/indicated-altitude-ft") > 22000) {
if ((flap_not_zero.clearFlag == 0) and phaseVar == 6 and getprop("controls/flight/flaps-input") != 0 and getprop("instrumentation/altimeter/indicated-altitude-ft") > 22000) {
flap_not_zero.active = 1;
} else {
ECAM_controller.warningReset(flap_not_zero);
@ -697,7 +697,7 @@ var messages_priority_3 = func {
}
# CONFIG
if ((slats_config.clearFlag == 0) and (getprop("controls/flight/flap-lever") == 0 or getprop("controls/flight/flap-lever")) == 4 and phaseVar >= 3 and phaseVar <= 4) {
if ((slats_config.clearFlag == 0) and (getprop("controls/flight/flaps-input") == 0 or getprop("controls/flight/flaps-input")) == 4 and phaseVar >= 3 and phaseVar <= 4) {
slats_config.active = 1;
slats_config_1.active = 1;
} else {
@ -705,7 +705,7 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(slats_config_1);
}
if ((flaps_config.clearFlag == 0) and (getprop("controls/flight/flap-lever") == 0 or getprop("controls/flight/flap-lever") == 4) and phaseVar >= 3 and phaseVar <= 4) {
if ((flaps_config.clearFlag == 0) and (getprop("controls/flight/flaps-input") == 0 or getprop("controls/flight/flaps-input") == 4) and phaseVar >= 3 and phaseVar <= 4) {
flaps_config.active = 1;
flaps_config_1.active = 1;
} else {
@ -1324,7 +1324,7 @@ var messages_priority_0 = func {
var messages_config_memo = func {
phaseVar = phaseNode.getValue();
if (getprop("controls/flight/flap-lever") == 0 or getprop("controls/flight/flap-lever") == 4 or getprop("controls/flight/speedbrake") != 0 or getprop("fdm/jsbsim/hydraulics/elevator-trim/final-deg") > 1.75 or getprop("fdm/jsbsim/hydraulics/elevator-trim/final-deg") < -3.65 or getprop("fdm/jsbsim/hydraulics/rudder/trim-cmd-deg") < -3.55 or getprop("fdm/jsbsim/hydraulics/rudder/trim-cmd-deg") > 3.55) {
if (getprop("controls/flight/flaps-input") == 0 or getprop("controls/flight/flaps-input") == 4 or getprop("controls/flight/speedbrake") != 0 or getprop("fdm/jsbsim/hydraulics/elevator-trim/final-deg") > 1.75 or getprop("fdm/jsbsim/hydraulics/elevator-trim/final-deg") < -3.65 or getprop("fdm/jsbsim/hydraulics/rudder/trim-cmd-deg") < -3.55 or getprop("fdm/jsbsim/hydraulics/rudder/trim-cmd-deg") > 3.55) {
setprop("ECAM/to-config-normal", 0);
} else {
setprop("ECAM/to-config-normal", 1);
@ -1366,7 +1366,7 @@ var messages_config_memo = func {
toMemoLine3.colour = "c";
}
if (getprop("controls/flight/flap-pos") > 0 and getprop("controls/flight/flap-pos") < 5) {
if (getprop("controls/flight/flaps-pos") > 0 and getprop("controls/flight/flaps-pos") < 5) {
toMemoLine4.msg = " FLAPS T.O";
toMemoLine4.colour = "g";
} else {
@ -1433,7 +1433,7 @@ var messages_config_memo = func {
}
if (getprop("it-fbw/law") == 1 or getprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-3-override")) {
if (getprop("controls/flight/flap-pos") == 4) {
if (getprop("controls/flight/flaps-pos") == 4) {
ldgMemoLine4.msg = " FLAPS CONF 3";
ldgMemoLine4.colour = "g";
} else {
@ -1441,7 +1441,7 @@ var messages_config_memo = func {
ldgMemoLine4.colour = "c";
}
} else {
if (getprop("controls/flight/flap-pos") == 5) {
if (getprop("controls/flight/flaps-pos") == 5) {
ldgMemoLine4.msg = " FLAPS FULL";
ldgMemoLine4.colour = "g";
} else {

View file

@ -150,7 +150,7 @@ setlistener("/gear/gear[0]/wow-fmgc", func {
var trimReset = func {
gear0 = getprop("/gear/gear[0]/wow");
flaps = getprop("/controls/flight/flap-pos");
flaps = getprop("/controls/flight/flaps-pos");
if (gear0 == 1 and getprop("/FMGC/status/to-state") == 0 and (flaps >= 5 or (flaps >= 4 and getprop("/instrumentation/mk-viii/inputs/discretes/momentary-flap3-override") == 1))) {
interpolate("/controls/flight/elevator-trim", 0.0, 1.5);
}
@ -347,7 +347,7 @@ var updateFuel = func {
var masterFMGC = maketimer(0.2, func {
n1_left = getprop("/engines/engine[0]/n1-actual");
n1_right = getprop("/engines/engine[1]/n1-actual");
flaps = getprop("/controls/flight/flap-pos");
flaps = getprop("/controls/flight/flaps-pos");
modelat = getprop("/modes/pfd/fma/roll-mode");
mode = getprop("/modes/pfd/fma/pitch-mode");
modeI = getprop("/it-autoflight/mode/vert");
@ -448,7 +448,7 @@ var masterFMGC = maketimer(0.2, func {
}
# calculate speeds
flap = getprop("/controls/flight/flap-pos");
flap = getprop("/controls/flight/flaps-pos");
weight_lbs = getprop("/fdm/jsbsim/inertia/weight-lbs") / 1000;
tow = getprop("/FMGC/internal/tow");
lw = getprop("/FMGC/internal/lw");
@ -837,7 +837,7 @@ var ManagedSPD = maketimer(0.25, func {
mach_sel = getprop("/it-autoflight/input/spd-mach");
srsSPD = getprop("/it-autoflight/settings/togaspd");
phase = getprop("/FMGC/status/phase"); # 0 is Preflight 1 is Takeoff 2 is Climb 3 is Cruise 4 is Descent 5 is Decel/Approach 6 is Go Around 7 is Done
flap = getprop("/controls/flight/flap-pos");
flap = getprop("/controls/flight/flaps-pos");
maxspeed = getprop("/FMGC/internal/maxspeed");
minspeed = getprop("/FMGC/internal/minspeed");
mach_switchover = getprop("/FMGC/internal/mach-switchover");

View file

@ -7,33 +7,33 @@ print("------------------------------------------------");
print("Copyright (c) 2016-2020 Josh Davidson (Octal450)");
print("------------------------------------------------");
setprop("sim/replay/was-active", 0);
setprop("/sim/replay/was-active", 0);
setprop("sim/menubar/default/menu[0]/item[0]/enabled", 0);
setprop("sim/menubar/default/menu[2]/item[0]/enabled", 0);
setprop("sim/menubar/default/menu[2]/item[2]/enabled", 0);
setprop("sim/menubar/default/menu[3]/enabled", 0);
setprop("sim/menubar/default/menu[5]/item[9]/enabled", 0);
setprop("sim/menubar/default/menu[5]/item[10]/enabled", 0);
setprop("sim/menubar/default/menu[5]/item[11]/enabled", 0);
setprop("/sim/menubar/default/menu[0]/item[0]/enabled", 0);
setprop("/sim/menubar/default/menu[2]/item[0]/enabled", 0);
setprop("/sim/menubar/default/menu[2]/item[2]/enabled", 0);
setprop("/sim/menubar/default/menu[3]/enabled", 0);
setprop("/sim/menubar/default/menu[5]/item[9]/enabled", 0);
setprop("/sim/menubar/default/menu[5]/item[10]/enabled", 0);
setprop("/sim/menubar/default/menu[5]/item[11]/enabled", 0);
# Dimmers
setprop("controls/lighting/ndl-norm", 1);
setprop("controls/lighting/ndr-norm", 1);
setprop("controls/lighting/upper-norm", 1);
setprop("/controls/lighting/ndl-norm", 1);
setprop("/controls/lighting/ndr-norm", 1);
setprop("/controls/lighting/upper-norm", 1);
# Lights
setprop("sim/model/lights/nose-lights", 0);
setprop("sim/model/lights/turnoffsw", 0);
setprop("controls/lighting/turnoff-light-switch", 0);
setprop("controls/lighting/leftturnoff", 0);
setprop("controls/lighting/rightturnoff", 0);
setprop("/sim/model/lights/nose-lights", 0);
setprop("/sim/model/lights/turnoffsw", 0);
setprop("/controls/lighting/turnoff-light-switch", 0);
setprop("/controls/lighting/leftturnoff", 0);
setprop("/controls/lighting/rightturnoff", 0);
# Oil Qty
var qty1 = math.round((rand() * 5 ) + 20, 0.1);
var qty2 = math.round((rand() * 5 ) + 20, 0.1);
setprop("engines/engine[0]/oil-qt-actual", qty1);
setprop("engines/engine[1]/oil-qt-actual", qty2);
setprop("/engines/engine[0]/oil-qt-actual", qty1);
setprop("/engines/engine[1]/oil-qt-actual", qty2);
##########
# Lights #
@ -46,21 +46,21 @@ var strobe_switch = props.globals.getNode("controls/switches/strobe", 1);
var strobe_light = props.globals.getNode("controls/lighting/strobe", 1);
var strobe = aircraft.light.new("/sim/model/lights/strobe", [0.05, 0.06, 0.05, 1], "/controls/lighting/strobe");
var tail_strobe = aircraft.light.new("/sim/model/lights/tailstrobe", [0.1, 1], "/controls/lighting/strobe");
var logo_lights = getprop("sim/model/lights/logo-lights");
var logo_lights = getprop("/sim/model/lights/logo-lights");
var nav_lights = props.globals.getNode("sim/model/lights/nav-lights");
var wing_switch = props.globals.getNode("controls/switches/wing-lights", 1);
var wing_ctl = props.globals.getNode("controls/lighting/wing-lights", 1);
var dome_light = props.globals.initNode("/sim/model/lights/dome-light", 0.0, "DOUBLE");
var wow = getprop("gear/gear[2]/wow");
var slats = getprop("controls/flight/slats");
var gear = getprop("gear/gear[0]/position-norm");
var nose_lights = getprop("sim/model/lights/nose-lights");
var wow = getprop("/gear/gear[2]/wow");
var slats = getprop("/controls/flight/slats");
var gear = getprop("/gear/gear[0]/position-norm");
var nose_lights = getprop("/sim/model/lights/nose-lights");
var left_turnoff_light = props.globals.getNode("controls/lighting/leftturnoff");
var right_turnoff_light = props.globals.getNode("controls/lighting/rightturnoff");
var settingT = getprop("controls/lighting/taxi-light-switch");
var settingTurnoff = getprop("controls/lighting/turnoff-light-switch");
var setting = getprop("controls/lighting/nav-lights-switch");
var domeSetting = getprop("controls/lighting/dome-norm");
var settingT = getprop("/controls/lighting/taxi-light-switch");
var settingTurnoff = getprop("/controls/lighting/turnoff-light-switch");
var setting = getprop("/controls/lighting/nav-lights-switch");
var domeSetting = getprop("/controls/lighting/dome-norm");
var landL = props.globals.getNode("controls/lighting/landing-lights[1]", 1);
var landR = props.globals.getNode("controls/lighting/landing-lights[2]", 1);
var landlSw = props.globals.getNode("controls/switches/landing-lights-l", 1);
@ -78,7 +78,7 @@ aircraft.rain.init();
##########
setlistener("/sim/sounde/btn1", func {
if (!getprop("sim/sounde/btn1")) {
if (!getprop("/sim/sounde/btn1")) {
return;
}
settimer(func {
@ -87,7 +87,7 @@ setlistener("/sim/sounde/btn1", func {
});
setlistener("/sim/sounde/oh-btn", func {
if (!getprop("sim/sounde/oh-btn")) {
if (!getprop("/sim/sounde/oh-btn")) {
return;
}
settimer(func {
@ -96,7 +96,7 @@ setlistener("/sim/sounde/oh-btn", func {
});
setlistener("/sim/sounde/btn3", func {
if (!getprop("sim/sounde/btn3")) {
if (!getprop("/sim/sounde/btn3")) {
return;
}
settimer(func {
@ -105,7 +105,7 @@ setlistener("/sim/sounde/btn3", func {
});
setlistener("/sim/sounde/knb1", func {
if (!getprop("sim/sounde/knb1")) {
if (!getprop("/sim/sounde/knb1")) {
return;
}
settimer(func {
@ -114,7 +114,7 @@ setlistener("/sim/sounde/knb1", func {
});
setlistener("/sim/sounde/switch1", func {
if (!getprop("sim/sounde/switch1")) {
if (!getprop("/sim/sounde/switch1")) {
return;
}
settimer(func {
@ -136,12 +136,12 @@ setlistener("/controls/lighting/no-smoking-sign", func {
}, 1);
}, 0, 0);
setlistener("/controls/flight/flap-lever", func {
setlistener("/controls/flight/flaps-input", func {
props.globals.getNode("sim/sounde/flaps-click").setBoolValue(1);
}, 0, 0);
setlistener("/sim/sounde/flaps-click", func {
if (!getprop("sim/sounde/flaps-click")) {
if (!getprop("/sim/sounde/flaps-click")) {
return;
}
settimer(func {
@ -176,11 +176,11 @@ var armrests = aircraft.door.new("/sim/model/door-positions/armrests", 2);
# door opener/closer
var triggerDoor = func(door, doorName, doorDesc) {
if (getprop("sim/model/door-positions/" ~ doorName ~ "/position-norm") > 0) {
if (getprop("/sim/model/door-positions/" ~ doorName ~ "/position-norm") > 0) {
gui.popupTip("Closing " ~ doorDesc ~ " door");
door.toggle();
} else {
if (getprop("velocities/groundspeed-kt") > 5) {
if (getprop("/velocities/groundspeed-kt") > 5) {
gui.popupTip("You cannot open the doors while the aircraft is moving!");
} else {
gui.popupTip("Opening " ~ doorDesc ~ " door");
@ -244,56 +244,56 @@ var systemsLoop = maketimer(0.1, func {
systems.APUController.loop();
systems.HFLoop();
if ((getprop("controls/pneumatic/switches/groundair") or getprop("controls/electrical/ground-cart")) and ((getprop("velocities/groundspeed-kt") > 2) or (getprop("controls/gear/brake-parking") == 0 and getprop("services/chocks/nose") == 0 and getprop("services/chocks/left") == 0 and getprop("services/chocks/right") == 0))) {
setprop("controls/electrical/ground-cart", 0);
setprop("controls/pneumatic/switches/groundair", 0);
if ((getprop("/controls/pneumatic/switches/groundair") or getprop("/controls/electrical/ground-cart")) and ((getprop("/velocities/groundspeed-kt") > 2) or (getprop("/controls/gear/brake-parking") == 0 and getprop("/services/chocks/nose") == 0 and getprop("/services/chocks/left") == 0 and getprop("/services/chocks/right") == 0))) {
setprop("/controls/electrical/ground-cart", 0);
setprop("/controls/pneumatic/switches/groundair", 0);
}
if (getprop("velocities/groundspeed-kt") > 15) {
setprop("systems/shake/effect", 1);
if (getprop("/velocities/groundspeed-kt") > 15) {
setprop("/systems/shake/effect", 1);
} else {
setprop("systems/shake/effect", 0);
setprop("/systems/shake/effect", 0);
}
if (getprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override") == 1 or (getprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-3-override") == 1 and getprop("controls/flight/flap-pos") >= 4)) {
setprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-override", 1);
if (getprop("/instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override") == 1 or (getprop("/instrumentation/mk-viii/inputs/discretes/momentary-flap-3-override") == 1 and getprop("/controls/flight/flaps-pos") >= 4)) {
setprop("/instrumentation/mk-viii/inputs/discretes/momentary-flap-override", 1);
} else {
setprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-override", 0);
setprop("/instrumentation/mk-viii/inputs/discretes/momentary-flap-override", 0);
}
if (getprop("instrumentation/mk-viii/inputs/discretes/gpws-inhibit") == 1) {
setprop("instrumentation/mk-viii/speaker/volume", 0);
if (getprop("/instrumentation/mk-viii/inputs/discretes/gpws-inhibit") == 1) {
setprop("/instrumentation/mk-viii/speaker/volume", 0);
} else {
setprop("instrumentation/mk-viii/speaker/volume", 2);
setprop("/instrumentation/mk-viii/speaker/volume", 2);
}
if (getprop("engines/engine[0]/state") == 3 and getprop("engines/engine[1]/state") == 3) {
setprop("engines/ready", 1);
if (getprop("/engines/engine[0]/state") == 3 and getprop("/engines/engine[1]/state") == 3) {
setprop("/engines/ready", 1);
} else {
setprop("engines/ready", 0);
setprop("/engines/ready", 0);
}
if ((getprop("engines/engine[0]/state") == 2 or getprop("engines/engine[0]/state") == 3) and getprop("fdm/jsbsim/propulsion/tank[5]/contents-lbs") < 1) {
if ((getprop("/engines/engine[0]/state") == 2 or getprop("/engines/engine[0]/state") == 3) and getprop("/fdm/jsbsim/propulsion/tank[5]/contents-lbs") < 1) {
systems.cutoff_one();
}
if ((getprop("engines/engine[1]/state") == 2 or getprop("engines/engine[1]/state") == 3) and getprop("fdm/jsbsim/propulsion/tank[6]/contents-lbs") < 1) {
if ((getprop("/engines/engine[1]/state") == 2 or getprop("/engines/engine[1]/state") == 3) and getprop("/fdm/jsbsim/propulsion/tank[6]/contents-lbs") < 1) {
systems.cutoff_two();
}
if (getprop("sim/replay/replay-state") == 1) {
setprop("sim/replay/was-active", 1);
} else if (getprop("sim/replay/replay-state") == 0 and getprop("sim/replay/was-active") == 1) {
setprop("sim/replay/was-active", 0);
if (getprop("/sim/replay/replay-state") == 1) {
setprop("/sim/replay/was-active", 1);
} else if (getprop("/sim/replay/replay-state") == 0 and getprop("/sim/replay/was-active") == 1) {
setprop("/sim/replay/was-active", 0);
acconfig.colddark();
gui.popupTip("Replay Ended: Setting Cold and Dark state...");
}
});
setlistener("/options/steep-ils", func {
if (getprop("options/steep-ils") == 1) {
setprop("instrumentation/mk-viii/inputs/discretes/steep-approach", 1);
if (getprop("/options/steep-ils") == 1) {
setprop("/instrumentation/mk-viii/inputs/discretes/steep-approach", 1);
} else {
setprop("instrumentation/mk-viii/inputs/discretes/steep-approach", 0);
setprop("/instrumentation/mk-viii/inputs/discretes/steep-approach", 0);
}
});
@ -320,120 +320,8 @@ canvas.Element.setVisible = func(vis) {
me.setBool("visible", vis);
};
# In air, flaps 1 is slats only. On ground, it is slats and flaps.
setprop("controls/flight/flap-lever", 0);
setprop("controls/flight/flap-pos", 0);
setprop("controls/flight/flap-txt", " ");
controls.flapsDown = func(step) {
if (step == 1) {
if (getprop("controls/flight/flap-lever") == 0) {
if (getprop("velocities/airspeed-kt") <= 100) {
setprop("controls/flight/flaps", 0.2857);
setprop("controls/flight/slats", 0.6666);
setprop("controls/flight/flap-lever", 1);
setprop("controls/flight/flap-pos", 2);
setprop("controls/flight/flap-txt", "1+F");
flaptimer.start();
return;
} else {
setprop("controls/flight/flaps", 0.000);
setprop("controls/flight/slats", 0.6666);
setprop("controls/flight/flap-lever", 1);
setprop("controls/flight/flap-pos", 1);
setprop("controls/flight/flap-txt", "1");
flaptimer.stop();
return;
}
} else if (getprop("controls/flight/flap-lever") == 1) {
setprop("controls/flight/flaps", 0.4286);
setprop("controls/flight/slats", 0.8148);
setprop("controls/flight/flap-lever", 2);
setprop("controls/flight/flap-pos", 3);
setprop("controls/flight/flap-txt", "2");
flaptimer.stop();
return;
} else if (getprop("controls/flight/flap-lever") == 2) {
setprop("controls/flight/flaps", 0.5714);
setprop("controls/flight/slats", 0.8148);
setprop("controls/flight/flap-lever", 3);
setprop("controls/flight/flap-pos", 4);
setprop("controls/flight/flap-txt", "3");
flaptimer.stop();
return;
} else if (getprop("controls/flight/flap-lever") == 3) {
setprop("controls/flight/flaps", 1.000);
setprop("controls/flight/slats", 1.000);
setprop("controls/flight/flap-lever", 4);
setprop("controls/flight/flap-pos", 5);
setprop("controls/flight/flap-txt", "FULL");
flaptimer.stop();
return;
}
} else if (step == -1) {
if (getprop("controls/flight/flap-lever") == 4) {
setprop("controls/flight/flaps", 0.5714);
setprop("controls/flight/slats", 0.8148);
setprop("controls/flight/flap-lever", 3);
setprop("controls/flight/flap-pos", 4);
setprop("controls/flight/flap-txt", "3");
flaptimer.stop();
return;
} else if (getprop("controls/flight/flap-lever") == 3) {
setprop("controls/flight/flaps", 0.4286);
setprop("controls/flight/slats", 0.8148);
setprop("controls/flight/flap-lever", 2);
setprop("controls/flight/flap-pos", 3);
setprop("controls/flight/flap-txt", "2");
flaptimer.stop();
return;
} else if (getprop("controls/flight/flap-lever") == 2) {
if (getprop("velocities/airspeed-kt") <= 100) {
setprop("controls/flight/flaps", 0.2857);
setprop("controls/flight/slats", 0.6666);
setprop("controls/flight/flap-lever", 1);
setprop("controls/flight/flap-pos", 2);
setprop("controls/flight/flap-txt", "1+F");
flaptimer.start();
return;
} else {
setprop("controls/flight/flaps", 0.000);
setprop("controls/flight/slats", 0.6666);
setprop("controls/flight/flap-lever", 1);
setprop("controls/flight/flap-pos", 1);
setprop("controls/flight/flap-txt", "1");
flaptimer.stop();
return;
}
} else if (getprop("controls/flight/flap-lever") == 1) {
setprop("controls/flight/flaps", 0.000);
setprop("controls/flight/slats", 0.000);
setprop("controls/flight/flap-lever", 0);
setprop("controls/flight/flap-pos", 0);
setprop("controls/flight/flap-txt", " ");
flaptimer.stop();
return;
}
} else {
return 0;
}
}
var flaptimer = maketimer(0.5, func {
if (getprop("controls/flight/flap-pos") == 2 and getprop("velocities/airspeed-kt") >= 208) {
setprop("controls/flight/flaps", 0.000);
setprop("controls/flight/slats", 0.666);
setprop("controls/flight/flap-lever", 1);
setprop("controls/flight/flap-pos", 1);
setprop("controls/flight/flap-txt", "1");
flaptimer.stop();
}
});
controls.stepSpoilers = func(step) {
setprop("controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake-arm", 0);
if (step == 1) {
deploySpeedbrake();
} else if (step == -1) {
@ -442,100 +330,128 @@ controls.stepSpoilers = func(step) {
}
var deploySpeedbrake = func {
if (getprop("gear/gear[1]/wow") == 1 or getprop("gear/gear[2]/wow") == 1) {
if (getprop("controls/flight/speedbrake") < 1.0) {
setprop("controls/flight/speedbrake", 1.0);
if (getprop("/gear/gear[1]/wow") == 1 or getprop("/gear/gear[2]/wow") == 1) {
if (getprop("/controls/flight/speedbrake") < 1.0) {
setprop("/controls/flight/speedbrake", 1.0);
}
} else {
if (getprop("controls/flight/speedbrake") < 0.5) {
setprop("controls/flight/speedbrake", 0.5);
} else if (getprop("controls/flight/speedbrake") < 1.0) {
setprop("controls/flight/speedbrake", 1.0);
if (getprop("/controls/flight/speedbrake") < 0.5) {
setprop("/controls/flight/speedbrake", 0.5);
} else if (getprop("/controls/flight/speedbrake") < 1.0) {
setprop("/controls/flight/speedbrake", 1.0);
}
}
}
var retractSpeedbrake = func {
if (getprop("gear/gear[1]/wow") == 1 or getprop("gear/gear[2]/wow") == 1) {
if (getprop("controls/flight/speedbrake") > 0.0) {
setprop("controls/flight/speedbrake", 0.0);
if (getprop("/gear/gear[1]/wow") == 1 or getprop("/gear/gear[2]/wow") == 1) {
if (getprop("/controls/flight/speedbrake") > 0.0) {
setprop("/controls/flight/speedbrake", 0.0);
}
} else {
if (getprop("controls/flight/speedbrake") > 0.5) {
setprop("controls/flight/speedbrake", 0.5);
} else if (getprop("controls/flight/speedbrake") > 0.0) {
setprop("controls/flight/speedbrake", 0.0);
if (getprop("/controls/flight/speedbrake") > 0.5) {
setprop("/controls/flight/speedbrake", 0.5);
} else if (getprop("/controls/flight/speedbrake") > 0.0) {
setprop("/controls/flight/speedbrake", 0.0);
}
}
}
var slewProp = func(prop, delta) {
delta *= getprop("sim/time/delta-realtime-sec");
delta *= getprop("/sim/time/delta-realtime-sec");
setprop(prop, getprop(prop) + delta);
return getprop(prop);
}
controls.flapsDown = func(step) {
pts.Controls.Flight.flapsTemp = pts.Controls.Flight.flaps.getValue();
if (step == 1) {
if (pts.Controls.Flight.flapsTemp < 0.2) {
pts.Controls.Flight.flaps.setValue(0.2);
} else if (pts.Controls.Flight.flapsTemp < 0.4) {
pts.Controls.Flight.flaps.setValue(0.4);
} else if (pts.Controls.Flight.flapsTemp < 0.6) {
pts.Controls.Flight.flaps.setValue(0.6);
} else if (pts.Controls.Flight.flapsTemp < 0.8) {
pts.Controls.Flight.flaps.setValue(0.8);
}
} else if (step == -1) {
if (pts.Controls.Flight.flapsTemp > 0.6) {
pts.Controls.Flight.flaps.setValue(0.6);
} else if (pts.Controls.Flight.flapsTemp > 0.4) {
pts.Controls.Flight.flaps.setValue(0.4);
} else if (pts.Controls.Flight.flapsTemp > 0.2) {
pts.Controls.Flight.flaps.setValue(0.2);
} else if (pts.Controls.Flight.flapsTemp > 0) {
pts.Controls.Flight.flaps.setValue(0);
}
}
}
controls.elevatorTrim = func(speed) {
if (getprop("systems/hydraulic/green-psi") >= 1500) {
slewProp("/controls/flight/elevator-trim", speed * 0.045);
if (getprop("/systems/hydraulic/green-psi") >= 1500) {
slewprop("/controls/flight/elevator-trim", speed * 0.0185); # Rate in JSB normalized (0.25 / 13.5)
} else {
slewprop("/controls/flight/elevator-trim", speed * 0.0092); # Rate in JSB normalized (0.125 / 13.5)
}
}
setlistener("/controls/flight/elevator-trim", func {
if (getprop("controls/flight/elevator-trim") > 0.32) {
setprop("controls/flight/elevator-trim", 0.32);
if (getprop("/controls/flight/elevator-trim") > 0.296296) {
setprop("/controls/flight/elevator-trim", 0.296296);
}
});
var lightsLoop = maketimer(0.2, func {
gear = getprop("gear/gear[0]/position-norm");
nose_lights = getprop("sim/model/lights/nose-lights");
settingT = getprop("controls/lighting/taxi-light-switch");
domeSetting = getprop("controls/lighting/dome-norm");
gear = getprop("/gear/gear[0]/position-norm");
nose_lights = getprop("/sim/model/lights/nose-lights");
settingT = getprop("/controls/lighting/taxi-light-switch");
domeSetting = getprop("/controls/lighting/dome-norm");
# nose lights
if (settingT == 0.5 and gear > 0.9 and (getprop("systems/electrical/bus/ac-1") > 0 or getprop("systems/electrical/bus/ac-2") > 0)) {
setprop("sim/model/lights/nose-lights", 0.85);
} else if (settingT == 1 and gear > 0.9 and (getprop("systems/electrical/bus/ac-1") > 0 or getprop("systems/electrical/bus/ac-2") > 0)) {
setprop("sim/model/lights/nose-lights", 1);
if (settingT == 0.5 and gear > 0.9 and (getprop("/systems/electrical/bus/ac-1") > 0 or getprop("/systems/electrical/bus/ac-2") > 0)) {
setprop("/sim/model/lights/nose-lights", 0.85);
} else if (settingT == 1 and gear > 0.9 and (getprop("/systems/electrical/bus/ac-1") > 0 or getprop("/systems/electrical/bus/ac-2") > 0)) {
setprop("/sim/model/lights/nose-lights", 1);
} else {
setprop("sim/model/lights/nose-lights", 0);
setprop("/sim/model/lights/nose-lights", 0);
}
# turnoff lights
settingTurnoff = getprop("controls/lighting/turnoff-light-switch");
settingTurnoff = getprop("/controls/lighting/turnoff-light-switch");
left_turnoff_light = props.globals.getNode("controls/lighting/leftturnoff");
right_turnoff_light = props.globals.getNode("controls/lighting/rightturnoff");
if (settingTurnoff == 1 and gear > 0.9 and getprop("systems/electrical/bus/ac-1") > 0) {
if (settingTurnoff == 1 and gear > 0.9 and getprop("/systems/electrical/bus/ac-1") > 0) {
left_turnoff_light.setBoolValue(1);
} else {
left_turnoff_light.setBoolValue(0);
}
if (settingTurnoff == 1 and gear > 0.9 and getprop("systems/electrical/bus/ac-2") > 0) {
if (settingTurnoff == 1 and gear > 0.9 and getprop("/systems/electrical/bus/ac-2") > 0) {
right_turnoff_light.setBoolValue(1);
} else {
right_turnoff_light.setBoolValue(0);
}
# logo and navigation lights
setting = getprop("controls/lighting/nav-lights-switch");
setting = getprop("/controls/lighting/nav-lights-switch");
nav_lights = props.globals.getNode("sim/model/lights/nav-lights");
logo_lights = props.globals.getNode("sim/model/lights/logo-lights");
wow = getprop("gear/gear[2]/wow");
slats = getprop("controls/flight/slats");
wow = getprop("/gear/gear[2]/wow");
slats = getprop("/controls/flight/slats");
if (getprop("systems/electrical/bus/ac-1") > 0 or getprop("systems/electrical/bus/ac-2") > 0 or getprop("systems/electrical/bus/dc-1") > 0 or getprop("systems/electrical/bus/dc-2") > 0) {
setprop("systems/electrical/nav-lights-power", 1);
if (getprop("/systems/electrical/bus/ac-1") > 0 or getprop("/systems/electrical/bus/ac-2") > 0 or getprop("/systems/electrical/bus/dc-1") > 0 or getprop("/systems/electrical/bus/dc-2") > 0) {
setprop("/systems/electrical/nav-lights-power", 1);
} else {
setprop("systems/electrical/nav-lights-power", 0);
setprop("/systems/electrical/nav-lights-power", 0);
}
if (setting == 0 and logo_lights == 1) {
logo_lights.setBoolValue(0);
} else if (setting == 1 or setting == 2 and (getprop("systems/electrical/bus/ac-1") > 0 or getprop("systems/electrical/bus/ac-2") > 0)) {
} else if (setting == 1 or setting == 2 and (getprop("/systems/electrical/bus/ac-1") > 0 or getprop("/systems/electrical/bus/ac-2") > 0)) {
if ((wow) or (!wow and slats > 0)) {
logo_lights.setBoolValue(1);
} else {
@ -545,15 +461,15 @@ var lightsLoop = maketimer(0.2, func {
logo_lights.setBoolValue(0);
}
if (setting == 1 or setting == 2 and (getprop("systems/electrical/bus/ac-1") > 0 or getprop("systems/electrical/bus/ac-2") > 0 or getprop("systems/electrical/bus/dc-1") > 0 or getprop("systems/electrical/bus/dc-2") > 0)) {
if (setting == 1 or setting == 2 and (getprop("/systems/electrical/bus/ac-1") > 0 or getprop("/systems/electrical/bus/ac-2") > 0 or getprop("/systems/electrical/bus/dc-1") > 0 or getprop("/systems/electrical/bus/dc-2") > 0)) {
nav_lights.setBoolValue(1);
} else {
nav_lights.setBoolValue(0);
}
if (domeSetting == 0.5 and getprop("systems/electrical/bus/dc-ess") > 0) {
if (domeSetting == 0.5 and getprop("/systems/electrical/bus/dc-ess") > 0) {
dome_light.setValue(0.5);
} elsif (domeSetting == 1 and getprop("systems/electrical/bus/dc-ess") > 0) {
} elsif (domeSetting == 1 and getprop("/systems/electrical/bus/dc-ess") > 0) {
dome_light.setValue(1);
} else {
dome_light.setValue(0);
@ -562,9 +478,9 @@ var lightsLoop = maketimer(0.2, func {
# strobe
strobe_sw = strobe_switch.getValue();
if (strobe_sw == 1 and getprop("systems/electrical/bus/ac-2") > 0) {
if (strobe_sw == 1 and getprop("/systems/electrical/bus/ac-2") > 0) {
strobe_light.setValue(1);
} elsif (strobe_sw == 0.5 and getprop("gear/gear[1]/wow") == 0 and getprop("gear/gear[2]/wow") == 0 and getprop("systems/electrical/bus/ac-2") > 0) {
} elsif (strobe_sw == 0.5 and getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0 and getprop("/systems/electrical/bus/ac-2") > 0) {
# todo: use lgciu output 5
strobe_light.setValue(1);
} else {
@ -573,7 +489,7 @@ var lightsLoop = maketimer(0.2, func {
# beacon
if (beacon_switch.getValue() == 1 and (getprop("systems/electrical/bus/ac-1") > 0 or getprop("systems/electrical/bus/ac-2") > 0)) {
if (beacon_switch.getValue() == 1 and (getprop("/systems/electrical/bus/ac-1") > 0 or getprop("/systems/electrical/bus/ac-2") > 0)) {
beacon_ctl.setValue(1);
} else {
beacon_ctl.setValue(0);
@ -581,7 +497,7 @@ var lightsLoop = maketimer(0.2, func {
# wing
if (wing_switch.getValue() == 1 and (getprop("systems/electrical/bus/ac-1") > 0 or getprop("systems/electrical/bus/ac-2") > 0)) {
if (wing_switch.getValue() == 1 and (getprop("/systems/electrical/bus/ac-1") > 0 or getprop("/systems/electrical/bus/ac-2") > 0)) {
wing_ctl.setValue(1);
} else {
wing_ctl.setValue(0);
@ -589,13 +505,13 @@ var lightsLoop = maketimer(0.2, func {
# landL
if (landlSw.getValue() == 1 and getprop("systems/electrical/bus/ac-1") > 0) {
if (landlSw.getValue() == 1 and getprop("/systems/electrical/bus/ac-1") > 0) {
landL.setValue(1);
} else {
landL.setValue(0);
}
if (landrSw.getValue() == 1 and getprop("systems/electrical/bus/ac-2") > 0) {
if (landrSw.getValue() == 1 and getprop("/systems/electrical/bus/ac-2") > 0) {
landR.setValue(1);
} else {
landR.setValue(0);
@ -603,48 +519,48 @@ var lightsLoop = maketimer(0.2, func {
# signs
if (getprop("systems/pressurization/cabinalt-norm") > 11300) {
setprop("controls/lighting/seatbelt-sign", 1);
setprop("controls/lighting/no-smoking-sign", 1);
if (getprop("/systems/pressurization/cabinalt-norm") > 11300) {
setprop("/controls/lighting/seatbelt-sign", 1);
setprop("/controls/lighting/no-smoking-sign", 1);
} else {
if (getprop("controls/switches/seatbelt-sign") == 1) {
if (getprop("controls/lighting/seatbelt-sign") == 0) {
setprop("controls/lighting/seatbelt-sign", 1);
if (getprop("/controls/switches/seatbelt-sign") == 1) {
if (getprop("/controls/lighting/seatbelt-sign") == 0) {
setprop("/controls/lighting/seatbelt-sign", 1);
}
} elsif (getprop("controls/switches/seatbelt-sign") == 0) {
if (getprop("controls/lighting/seatbelt-sign") == 1) {
setprop("controls/lighting/seatbelt-sign", 0);
} elsif (getprop("/controls/switches/seatbelt-sign") == 0) {
if (getprop("/controls/lighting/seatbelt-sign") == 1) {
setprop("/controls/lighting/seatbelt-sign", 0);
}
}
if (getprop("controls/switches/no-smoking-sign") == 1) {
if (getprop("controls/lighting/no-smoking-sign") == 0) {
setprop("controls/lighting/no-smoking-sign", 1);
if (getprop("/controls/switches/no-smoking-sign") == 1) {
if (getprop("/controls/lighting/no-smoking-sign") == 0) {
setprop("/controls/lighting/no-smoking-sign", 1);
}
} elsif (getprop("controls/switches/no-smoking-sign") == 0.5 and getprop("gear/gear[0]/position-norm") != 0) { # todo: should be when uplocks not engaged
if (getprop("controls/lighting/no-smoking-sign") == 0) {
setprop("controls/lighting/no-smoking-sign", 1);
} elsif (getprop("/controls/switches/no-smoking-sign") == 0.5 and getprop("/gear/gear[0]/position-norm") != 0) { # todo: should be when uplocks not engaged
if (getprop("/controls/lighting/no-smoking-sign") == 0) {
setprop("/controls/lighting/no-smoking-sign", 1);
}
} else {
setprop("controls/lighting/no-smoking-sign", 0); # sign stays on in cabin but sound still occurs
setprop("/controls/lighting/no-smoking-sign", 0); # sign stays on in cabin but sound still occurs
}
}
if (getprop("controls/lighting/landing-lights[1]") >= 0.5) {
setprop("fdm/jsbsim/rubbish/landL", 1);
if (getprop("/controls/lighting/landing-lights[1]") >= 0.5) {
setprop("/fdm/jsbsim/rubbish/landL", 1);
} else {
setprop("fdm/jsbsim/rubbish/landL", 0);
setprop("/fdm/jsbsim/rubbish/landL", 0);
}
if (getprop("controls/lighting/landing-lights[2]") >= 0.5) {
setprop("fdm/jsbsim/rubbish/landR", 1);
if (getprop("/controls/lighting/landing-lights[2]") >= 0.5) {
setprop("/fdm/jsbsim/rubbish/landR", 1);
} else {
setprop("fdm/jsbsim/rubbish/landR", 0);
setprop("/fdm/jsbsim/rubbish/landR", 0);
}
});
var lTray = func {
var lTrayCMD = getprop("controls/tray/lefttrayext");
var lTrayCMD = getprop("/controls/tray/lefttrayext");
if (lTrayCMD < 0.5) {
interpolate("/controls/tray/lefttrayext", 0.5, 0.5);
} else if (lTrayCMD == 0.5) {
@ -655,7 +571,7 @@ var lTray = func {
}
var rTray = func {
var rTrayCMD = getprop("controls/tray/righttrayext");
var rTrayCMD = getprop("/controls/tray/righttrayext");
if (rTrayCMD < 0.5) {
interpolate("/controls/tray/righttrayext", 0.5, 0.5);
} else if (rTrayCMD == 0.5) {
@ -666,7 +582,7 @@ var rTray = func {
}
var l1Pedal = func {
var lPedalCMD = getprop("controls/footrest-cpt[0]");
var lPedalCMD = getprop("/controls/footrest-cpt[0]");
if (lPedalCMD < 1.0) {
interpolate("/controls/footrest-cpt[0]", 1.0, 0.5);
} else {
@ -675,7 +591,7 @@ var l1Pedal = func {
}
var l2Pedal = func {
var l2PedalCMD = getprop("controls/footrest-cpt[1]");
var l2PedalCMD = getprop("/controls/footrest-cpt[1]");
if (l2PedalCMD < 1.0) {
interpolate("/controls/footrest-cpt[1]", 1.0, 0.5);
} else {
@ -684,7 +600,7 @@ var l2Pedal = func {
}
var r1Pedal = func {
var rPedalCMD = getprop("controls/footrest-fo[0]");
var rPedalCMD = getprop("/controls/footrest-fo[0]");
if (rPedalCMD < 1.0) {
interpolate("/controls/footrest-fo[0]", 1.0, 0.5);
} else {
@ -693,7 +609,7 @@ var r1Pedal = func {
}
var r2Pedal = func {
var r2PedalCMD = getprop("controls/footrest-fo[1]");
var r2PedalCMD = getprop("/controls/footrest-fo[1]");
if (r2PedalCMD < 1.0) {
interpolate("/controls/footrest-fo[1]", 1.0, 0.5);
} else {
@ -701,13 +617,13 @@ var r2Pedal = func {
}
}
if (getprop("controls/flight/auto-coordination") == 1) {
setprop("controls/flight/auto-coordination", 0);
if (getprop("/controls/flight/auto-coordination") == 1) {
setprop("/controls/flight/auto-coordination", 0);
print("System: Auto Coordination has been turned off as it is not compatible with the fly-by-wire of this aircraft.");
screen.log.write("Auto Coordination has been disabled as it is not compatible with the fly-by-wire of this aircraft", 1, 0, 0);
}
setprop("controls/flight/aileron-drives-tiller", 0);
setprop("/controls/flight/aileron-drives-tiller", 0);
var APPanel = {
APDisc: func() {
@ -719,15 +635,15 @@ var APPanel = {
};
var resetView = func() {
if (getprop("sim/current-view/view-number") == 0) {
if (getprop("sim/rendering/headshake/enabled")) {
if (getprop("/sim/current-view/view-number") == 0) {
if (getprop("/sim/rendering/headshake/enabled")) {
var _shakeFlag = 1;
setprop("sim/rendering/headshake/enabled", 0);
setprop("/sim/rendering/headshake/enabled", 0);
} else {
var _shakeFlag = 0;
}
var hd = getprop("sim/current-view/heading-offset-deg");
var hd = getprop("/sim/current-view/heading-offset-deg");
var hd_t = 360;
if (hd < 180) {
hd_t = hd_t - 360;
@ -742,21 +658,21 @@ var resetView = func() {
interpolate("sim/current-view/z-offset-m", -13.75, 0.66);
if (_shakeFlag) {
setprop("sim/rendering/headshake/enabled", 1);
setprop("/sim/rendering/headshake/enabled", 1);
}
}
}
var autopilotView = func() {
if (getprop("sim/current-view/view-number") == 0) {
if (getprop("sim/rendering/headshake/enabled")) {
if (getprop("/sim/current-view/view-number") == 0) {
if (getprop("/sim/rendering/headshake/enabled")) {
var _shakeFlag = 1;
setprop("sim/rendering/headshake/enabled", 0);
setprop("/sim/rendering/headshake/enabled", 0);
} else {
var _shakeFlag = 0;
}
var hd = getprop("sim/current-view/heading-offset-deg");
var hd = getprop("/sim/current-view/heading-offset-deg");
var hd_t = 341.7;
if (hd < 180) {
hd_t = hd_t - 360;
@ -771,21 +687,21 @@ var autopilotView = func() {
interpolate("sim/current-view/z-offset-m", -13.75, 0.66);
if (_shakeFlag) {
setprop("sim/rendering/headshake/enabled", 1);
setprop("/sim/rendering/headshake/enabled", 1);
}
}
}
var overheadView = func() {
if (getprop("sim/current-view/view-number") == 0) {
if (getprop("sim/rendering/headshake/enabled")) {
if (getprop("/sim/current-view/view-number") == 0) {
if (getprop("/sim/rendering/headshake/enabled")) {
var _shakeFlag = 1;
setprop("sim/rendering/headshake/enabled", 0);
setprop("/sim/rendering/headshake/enabled", 0);
} else {
var _shakeFlag = 0;
}
var hd = getprop("sim/current-view/heading-offset-deg");
var hd = getprop("/sim/current-view/heading-offset-deg");
var hd_t = 348;
if (hd < 180) {
hd_t = hd_t - 360;
@ -800,21 +716,21 @@ var overheadView = func() {
interpolate("sim/current-view/z-offset-m", -13.75, 0.66);
if (_shakeFlag) {
setprop("sim/rendering/headshake/enabled", 1);
setprop("/sim/rendering/headshake/enabled", 1);
}
}
}
var pedestalView = func() {
if (getprop("sim/current-view/view-number") == 0) {
if (getprop("sim/rendering/headshake/enabled")) {
if (getprop("/sim/current-view/view-number") == 0) {
if (getprop("/sim/rendering/headshake/enabled")) {
var _shakeFlag = 1;
setprop("sim/rendering/headshake/enabled", 0);
setprop("/sim/rendering/headshake/enabled", 0);
} else {
var _shakeFlag = 0;
}
var hd = getprop("sim/current-view/heading-offset-deg");
var hd = getprop("/sim/current-view/heading-offset-deg");
var hd_t = 315;
if (hd < 180) {
hd_t = hd_t - 360;
@ -829,21 +745,21 @@ var pedestalView = func() {
interpolate("sim/current-view/z-offset-m", -13.75, 0.66);
if (_shakeFlag) {
setprop("sim/rendering/headshake/enabled", 1);
setprop("/sim/rendering/headshake/enabled", 1);
}
}
}
var lightsView = func() {
if (getprop("sim/current-view/view-number") == 0) {
if (getprop("sim/rendering/headshake/enabled")) {
if (getprop("/sim/current-view/view-number") == 0) {
if (getprop("/sim/rendering/headshake/enabled")) {
var _shakeFlag = 1;
setprop("sim/rendering/headshake/enabled", 0);
setprop("/sim/rendering/headshake/enabled", 0);
} else {
var _shakeFlag = 0;
}
var hd = getprop("sim/current-view/heading-offset-deg");
var hd = getprop("/sim/current-view/heading-offset-deg");
var hd_t = 329;
if (hd < 180) {
hd_t = hd_t - 360;
@ -858,9 +774,9 @@ var lightsView = func() {
interpolate("sim/current-view/z-offset-m", -13.75, 0.66);
if (_shakeFlag) {
setprop("sim/rendering/headshake/enabled", 1);
setprop("/sim/rendering/headshake/enabled", 1);
}
}
}
setprop("systems/acconfig/libraries-loaded", 1);
setprop("/systems/acconfig/libraries-loaded", 1);

View file

@ -26,6 +26,9 @@ var Controls = {
},
Flight: {
aileron: props.globals.getNode("/controls/flight/aileron"),
flaps: props.globals.getNode("/controls/flight/flaps"),
flapsTemp: 0,
flapsPos: props.globals.getNode("/controls/flight/flaps-pos"),
},
Gear: {
gearDown: props.globals.getNode("/controls/gear/gear-down"),

View file

@ -330,7 +330,7 @@ var arrivalPage = {
}
me.R5 = ["CRS" ~ math.round(me._approaches[me.approaches[2 + me.scrollApproach]].heading), nil, "blu"];
if (me._approaches[me.approaches[2 + me.scrollApproach]].ils != nil) {
me.C6[1] = me._approaches[me.approaches[1 + me.scrollApproach]].ils.id ~ "/" ~ sprintf("%7.2f", me._approaches[me.approaches[1 + me.scrollApproach]].ils_frequency_mhz);
me.C6[1] = me._approaches[me.approaches[2 + me.scrollApproach]].ils.id ~ "/" ~ sprintf("%7.2f", me._approaches[me.approaches[2 + me.scrollApproach]].ils_frequency_mhz);
}
if (me.approaches[2 + me.scrollApproach] != me.selectedApproach) {
me.arrowsMatrix[0][4] = 1;
@ -513,7 +513,7 @@ var arrivalPage = {
if (me.activePage == 0) {
if (me.enableScrollApproach) {
me.scrollApproach += 1;
if (me.scrollApproach > size(me.approaches) - 4) {
if (me.scrollApproach > size(me.approaches) - 3) {
me.scrollApproach = 0;
}
me.updateApproaches();
@ -539,7 +539,7 @@ var arrivalPage = {
if (me.enableScrollApproach) {
me.scrollApproach -= 1;
if (me.scrollApproach < 0) {
me.scrollApproach = size(me.approaches) - 4;
me.scrollApproach = size(me.approaches) - 3;
}
me.updateApproaches();
}

View file

@ -342,23 +342,31 @@ var fplnPage = { # this one is only created once, and then updated - remember th
#me.basePage();
},
scrollUp: func() {
if (size(me.planList) > 5) {
if (size(me.planList) > 1) {
me.scroll += 1;
if (me.scroll > size(me.planList) - 5) {
if (me.scroll > size(me.planList) - 3) {
me.scroll = 0;
}
if (me.scroll < me.plan.getPlanSize()) {
setprop("/instrumentation/efis[" ~ me.computer ~ "]/inputs/plan-wpt-index", me.scroll);
}
} else {
me.scroll = 0;
setprop("/instrumentation/efis[" ~ me.computer ~ "]/inputs/plan-wpt-index", -1);
}
},
scrollDn: func() {
if (size(me.planList) > 5) {
if (size(me.planList) > 1) {
me.scroll -= 1;
if (me.scroll < 0) {
me.scroll = size(me.planList) - 5;
me.scroll = size(me.planList) - 3;
}
if (me.scroll < me.plan.getPlanSize()) {
setprop("/instrumentation/efis[" ~ me.computer ~ "]/inputs/plan-wpt-index", me.scroll);
}
} else {
me.scroll = 0;
setprop("/instrumentation/efis[" ~ me.computer ~ "]/inputs/plan-wpt-index", -1);
}
},
pushButtonLeft: func(index) {

View file

@ -271,7 +271,7 @@ var thrust_loop = maketimer(0.04, func {
}
alpha = getprop("fdm/jsbsim/aero/alpha-deg");
flaps = getprop("controls/flight/flap-pos");
flaps = getprop("controls/flight/flaps-pos");
if (flaps == 0) {
alphaProt = 9.5;
} else if (flaps == 1 or flaps == 2 or flaps == 3) {

View file

@ -19,7 +19,7 @@ You can find a Checklist to download and print [here](https://raw.githubusercont
## Navdata
It is highly reccomended to purchase a NAVIGRAPH subscription and download their level d FMSDATA / waypoint / navaid data! If you do not wish to do that, there is older data linked below. But it won't have most of the newer procedures, and is only for a limited number of airports, as naturally it is not possible to distribute commercial data. If runway numbering changed, it is quite possible that it will not work due to FlightGear limitations in the routing code.
To install navdata, create a folder FMSDATA, and add it to your additional scenery folders, at the top of the list. Inside that folder, place all the XXXX.procedures.xml files, in the format FMSDATA/X/X/X/XXXX.procedures.xml. For instance, FMSDATA/E/G/K/EGKK.procedures.xml.
To install navdata, create a folder FMSDATA, and add it to your additional scenery folders, at the top of the list. Inside that folder, place all the XXXX.procedures.xml files, in the format FMSDATA/X/X/X/XXXX.procedures.xml. For instance, FMSDATA/Airports/E/G/K/EGKK.procedures.xml.
## External tools
Some external tools you might want to checkout and use with this Model.

View file

@ -44,17 +44,12 @@
<mode>looped</mode>
<path>Aircraft/A320-family/Sounds/yellowHydPump.wav</path>
<condition>
<and>
<equals>
<property>/sim/current-view/internal</property>
<value>1</value>
</equals>
<equals>
<property>controls/hydraulic/elec-pump-yellow</property>
<value>1</value>
</equals>
</and>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.8</factor>
</volume>
</hyd-yellow>
<hyd>
@ -68,7 +63,8 @@
</or>
</condition>
<volume>
<value>0.8</value>
<property>/sim/current-view/internal</property>
<factor>0.8</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -85,7 +81,8 @@
</equals>
</condition>
<volume>
<value>0.8</value>
<property>/sim/current-view/internal</property>
<factor>0.8</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -102,7 +99,8 @@
</equals>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -119,7 +117,8 @@
</equals>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -136,7 +135,8 @@
</equals>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -171,7 +171,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -215,7 +216,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -257,7 +259,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -299,7 +302,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -341,7 +345,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -383,7 +388,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -425,7 +431,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -467,7 +474,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -509,7 +517,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -547,7 +556,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -585,7 +595,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -623,7 +634,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -661,7 +673,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -713,7 +726,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -763,7 +777,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -797,7 +812,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -831,7 +847,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -911,7 +928,8 @@
</and>
</condition>
<volume>
<factor>8</factor>
<property>/sim/current-view/internal</property>
<factor>8.0</factor>
</volume>
<reference-dist>20.0</reference-dist>
<max-dist>100.0</max-dist>
@ -942,6 +960,7 @@
</and>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>40.0</factor>
</volume>
</apoff>
@ -971,6 +990,7 @@
</and>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>40.0</factor>
</volume>
</apoff>
@ -1163,6 +1183,9 @@
<value>IDLE</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detenta>
<detentb>
@ -1175,6 +1198,9 @@
<value>IDLE</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detentb>
<detenta>
@ -1187,6 +1213,9 @@
<value>MAN</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detenta>
<detentb>
@ -1199,6 +1228,9 @@
<value>MAN</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detentb>
<detenta>
@ -1211,6 +1243,9 @@
<value>CL</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detenta>
<detentb>
@ -1223,6 +1258,9 @@
<value>CL</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detentb>
<detenta>
@ -1235,6 +1273,9 @@
<value>MAN THR</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detenta>
<detentb>
@ -1247,6 +1288,9 @@
<value>MAN THR</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detentb>
<detenta>
@ -1259,6 +1303,9 @@
<value>MCT</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detenta>
<detentb>
@ -1271,6 +1318,9 @@
<value>MCT</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detentb>
<detenta>
@ -1283,6 +1333,9 @@
<value>TOGA</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detenta>
<detentb>
@ -1295,6 +1348,9 @@
<value>TOGA</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detentb>
<detenta>
@ -1307,6 +1363,9 @@
<value>0</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detenta>
<detentb>
@ -1319,6 +1378,9 @@
<value>0</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detentb>
<detenta>
@ -1331,6 +1393,9 @@
<value>1</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detenta>
<detentb>
@ -1343,6 +1408,9 @@
<value>1</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</detentb>
<sb>
@ -1358,7 +1426,11 @@
<property>/sim/sounde/seatbelt-sign</property>
</and>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</sb>
<ns>
<mode>once</mode>
<name>ns</name>
@ -1372,6 +1444,9 @@
<property>/sim/sounde/no-smoking-sign</property>
</and>
</condition>
<volume>
<property>/sim/current-view/internal</property>
</volume>
</ns>
<switch>
@ -1382,6 +1457,7 @@
<property>/sim/sounde/btn1</property>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.75</factor>
</volume>
</switch>
@ -1394,6 +1470,7 @@
<property>/sim/sounde/apdiscbtn</property>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.75</factor>
</volume>
</switch>
@ -1406,6 +1483,7 @@
<property>/sim/sounde/oh-btn</property>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.75</factor>
</volume>
</switch>
@ -1418,6 +1496,7 @@
<property>/sim/sounde/btn3</property>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.75</factor>
</volume>
</switch>
@ -1430,6 +1509,7 @@
<property>/sim/sounde/knb1</property>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.6</factor>
</volume>
</switch>
@ -1442,6 +1522,7 @@
<property>/sim/sounde/switch1</property>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.75</factor>
</volume>
</switch>
@ -1453,10 +1534,10 @@
<condition>
<and>
<property>/sim/sounde/flaps-click</property>
<property>/sim/current-view/internal</property>
</and>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.75</factor>
</volume>
</switch>
@ -1565,6 +1646,7 @@
<path>Aircraft/A320-family/Sounds/Cockpit/relay-battery.wav</path>
<property>/systems/electrical/sources/bat-1/contact</property>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.8</factor>
</volume>
</relay>
@ -1575,6 +1657,7 @@
<path>Aircraft/A320-family/Sounds/Cockpit/relay-battery.wav</path>
<property>/systems/electrical/sources/bat-2/contact</property>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.8</factor>
</volume>
</relay>
@ -1585,7 +1668,8 @@
<path>Aircraft/A320-family/Sounds/Cockpit/relay-external.wav</path>
<property>/systems/electrical/relay/ext-epc/contact-pos</property>
<volume>
<factor>0.6</factor>
<property>/sim/current-view/internal</property>
<factor>0.8</factor>
</volume>
</relay>
@ -1595,7 +1679,8 @@
<path>Aircraft/A320-family/Sounds/Cockpit/relay-apu.wav</path>
<property>/systems/electrical/relay/apu-glc/contact-pos</property>
<volume>
<factor>0.6</factor>
<property>/sim/current-view/internal</property>
<factor>0.8</factor>
</volume>
</relay>
@ -1634,6 +1719,7 @@
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.6</factor>
</volume>
</announcements>
@ -1649,6 +1735,7 @@
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.6</factor>
</volume>
</announcements>
@ -1664,6 +1751,7 @@
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.6</factor>
</volume>
</announcements>
@ -1679,6 +1767,7 @@
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.6</factor>
</volume>
</announcements>
@ -1694,6 +1783,7 @@
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.6</factor>
</volume>
</announcements>
@ -1709,6 +1799,7 @@
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>0.6</factor>
</volume>
</announcements>
@ -1913,9 +2004,7 @@
<property>/sim/model/autopush/enabled</property>
</and>
</condition>
<volume>
<value>0.35</value>
</volume>
<volume>0.15</volume>
</pushback>
<pushback>
@ -1928,9 +2017,7 @@
<property>/sim/model/autopush/enabled</property>
</and>
</condition>
<volume>
<value>0.15</value>
</volume>
<volume>0.05</volume>
</pushback>
</fx>
</PropertyList>

Binary file not shown.

1346
Systems/a320-fbw.xml Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -13,14 +13,14 @@
<condition>
<less-than>
<property>/engines/engine[0]/n2-actual</property>
<value>60.9</value>
<value>59.4</value>
</less-than>
</condition>
<expression>
<table>
<property>/engines/engine[0]/n2-actual</property>
<entry><ind> 0.0</ind><dep> 0.0</dep></entry>
<entry><ind> 60.9</ind><dep> 60.9</dep></entry>
<entry><ind> 59.4</ind><dep> 59.4</dep></entry>
</table>
</expression>
</input>
@ -28,14 +28,14 @@
<condition>
<greater-than-equals>
<property>/engines/engine[0]/n2-actual</property>
<value>60.9</value>
<value>59.4</value>
</greater-than-equals>
</condition>
<expression>
<table>
<property>/engines/engine[0]/n1-actual</property>
<entry><ind> 0.0</ind><dep> 0.0</dep></entry>
<entry><ind> 22.4</ind><dep> 60.9</dep></entry>
<entry><ind> 18.9</ind><dep> 59.4</dep></entry>
<entry><ind>103.8</ind><dep>101.4</dep></entry>
</table>
</expression>
@ -57,7 +57,7 @@
<table>
<property>/engines/engine[1]/n2-actual</property>
<entry><ind> 0.0</ind><dep> 0.0</dep></entry>
<entry><ind> 60.9</ind><dep> 60.9</dep></entry>
<entry><ind> 59.4</ind><dep> 59.4</dep></entry>
</table>
</expression>
</input>
@ -72,7 +72,7 @@
<table>
<property>/engines/engine[1]/n1-actual</property>
<entry><ind> 0.0</ind><dep> 0.0</dep></entry>
<entry><ind> 22.4</ind><dep> 60.9</dep></entry>
<entry><ind> 18.9</ind><dep> 59.4</dep></entry>
<entry><ind>103.8</ind><dep>101.4</dep></entry>
</table>
</expression>
@ -852,7 +852,7 @@
</condition>
<expression>
<table>
<property>/sim/sound/fake-n2[0]</property>
<property>/engines/engine[0]/n1-actual</property>
<entry><ind>14.0</ind> <dep>0.000</dep></entry>
<entry><ind>15.0</ind> <dep>0.010</dep></entry>
<entry><ind>19.0</ind> <dep>0.900</dep></entry>
@ -875,7 +875,7 @@
</condition>
<expression>
<table>
<property>/sim/sound/fake-n2[0]</property>
<property>/engines/engine[0]/n1-actual</property>
<entry><ind>19.0</ind> <dep>1.00</dep></entry>
<entry><ind>42.5</ind> <dep>1.50</dep></entry>
</table>
@ -894,11 +894,11 @@
</condition>
<expression>
<table>
<property>/sim/sound/fake-n2[0]</property>
<property>/engines/engine[0]/n1-actual</property>
<entry><ind>14.0</ind> <dep>0.000</dep></entry>
<entry><ind>15.0</ind> <dep>0.010</dep></entry>
<entry><ind>19.0</ind> <dep>0.900</dep></entry>
<entry><ind>41.7</ind> <dep>0.310</dep></entry>
<entry><ind>19.0</ind> <dep>1.000</dep></entry>
<entry><ind>41.7</ind> <dep>0.410</dep></entry>
<entry><ind>55.0</ind> <dep>0.240</dep></entry>
<entry><ind>57.2</ind> <dep>0.100</dep></entry>
<entry><ind>70.0</ind> <dep>0.018</dep></entry>
@ -919,7 +919,7 @@
</condition>
<expression>
<table>
<property>/sim/sound/fake-n2[0]</property>
<property>/engines/engine[0]/n1-actual</property>
<entry><ind>14.0</ind> <dep>0.000</dep></entry>
<entry><ind>15.0</ind> <dep>0.010</dep></entry>
<entry><ind>19.0</ind> <dep>1.000</dep></entry>
@ -1132,7 +1132,7 @@
</condition>
<expression>
<table>
<property>/sim/sound/fake-n2[1]</property>
<property>/engines/engine[1]/n1-actual</property>
<entry><ind>14.0</ind> <dep>0.000</dep></entry>
<entry><ind>15.0</ind> <dep>0.010</dep></entry>
<entry><ind>19.0</ind> <dep>0.900</dep></entry>
@ -1155,7 +1155,7 @@
</condition>
<expression>
<table>
<property>/sim/sound/fake-n2[1]</property>
<property>/engines/engine[1]/n1-actual</property>
<entry><ind>19.0</ind> <dep>1.00</dep></entry>
<entry><ind>42.5</ind> <dep>1.50</dep></entry>
</table>
@ -1174,11 +1174,11 @@
</condition>
<expression>
<table>
<property>/sim/sound/fake-n2[1]</property>
<property>/engines/engine[1]/n1-actual</property>
<entry><ind>14.0</ind> <dep>0.000</dep></entry>
<entry><ind>15.0</ind> <dep>0.010</dep></entry>
<entry><ind>19.0</ind> <dep>0.900</dep></entry>
<entry><ind>41.7</ind> <dep>0.310</dep></entry>
<entry><ind>19.0</ind> <dep>1.000</dep></entry>
<entry><ind>41.7</ind> <dep>0.410</dep></entry>
<entry><ind>55.0</ind> <dep>0.240</dep></entry>
<entry><ind>57.2</ind> <dep>0.100</dep></entry>
<entry><ind>70.0</ind> <dep>0.018</dep></entry>
@ -1199,7 +1199,7 @@
</condition>
<expression>
<table>
<property>/sim/sound/fake-n2[1]</property>
<property>/engines/engine[1]/n1-actual</property>
<entry><ind>14.0</ind> <dep>0.000</dep></entry>
<entry><ind>15.0</ind> <dep>0.010</dep></entry>
<entry><ind>19.0</ind> <dep>1.000</dep></entry>

View file

@ -51,7 +51,7 @@
<condition>
<and>
<not-equals>
<property>/controls/flight/flap-lever</property>
<property>/controls/flight/flaps-input</property>
<value>0</value>
</not-equals>
<equals>
@ -199,7 +199,7 @@
<value>0.99</value>
<property>/engines/flx-throttle</property>
</product>
<entry><ind>0.00</ind><dep> 19.7</dep></entry>
<entry><ind>0.00</ind><dep> 18.9</dep></entry>
<entry><ind>1.00</ind><dep>103.8</dep></entry>
</table>
</expression>
@ -208,7 +208,7 @@
<expression>
<table>
<property>/controls/engines/engine[0]/throttle-cmd-man</property>
<entry><ind>0.00</ind><dep> 19.7</dep></entry>
<entry><ind>0.00</ind><dep> 18.9</dep></entry>
<entry><ind>1.00</ind><dep>103.8</dep></entry>
</table>
</expression>
@ -240,7 +240,7 @@
<value>0.99</value>
<property>/engines/flx-throttle</property>
</product>
<entry><ind>0.00</ind><dep> 19.7</dep></entry>
<entry><ind>0.00</ind><dep> 18.9</dep></entry>
<entry><ind>1.00</ind><dep>103.8</dep></entry>
</table>
</expression>
@ -249,7 +249,7 @@
<expression>
<table>
<property>/controls/engines/engine[1]/throttle-cmd-man</property>
<entry><ind>0.00</ind><dep> 19.7</dep></entry>
<entry><ind>0.00</ind><dep> 18.9</dep></entry>
<entry><ind>1.00</ind><dep>103.8</dep></entry>
</table>
</expression>
@ -1065,7 +1065,7 @@
<value>0.99</value>
<property>/controls/engines/throttle-scale</property>
</product>
<entry><ind>0.00</ind><dep> 19.7</dep></entry>
<entry><ind>0.00</ind><dep> 18.9</dep></entry>
<entry><ind>1.00</ind><dep>103.8</dep></entry>
</table>
</expression>
@ -1085,7 +1085,7 @@
<value>0.95</value>
<property>/controls/engines/throttle-scale</property>
</product>
<entry><ind>0.00</ind><dep> 19.7</dep></entry>
<entry><ind>0.00</ind><dep> 18.9</dep></entry>
<entry><ind>1.00</ind><dep>103.8</dep></entry>
</table>
</expression>
@ -1105,7 +1105,7 @@
<value>0.99</value>
<property>/engines/flx-throttle</property>
</product>
<entry><ind>0.00</ind><dep> 19.7</dep></entry>
<entry><ind>0.00</ind><dep> 18.9</dep></entry>
<entry><ind>1.00</ind><dep>103.8</dep></entry>
</table>
</expression>
@ -1125,7 +1125,7 @@
<value>0.91</value>
<property>/controls/engines/throttle-scale</property>
</product>
<entry><ind>0.00</ind><dep> 19.7</dep></entry>
<entry><ind>0.00</ind><dep> 18.9</dep></entry>
<entry><ind>1.00</ind><dep>103.8</dep></entry>
</table>
</expression>
@ -1258,10 +1258,10 @@
<property>/engines/engine[0]/state</property>
<value>3</value>
</equals>
<greater-than>
<property>/engines/engine[0]/n1-actual</property>
<value>19</value>
</greater-than>
<greater-than-equals>
<property>/engines/engine[1]/n1-actual</property>
<value>18.9</value>
</greater-than-equals>
</and>
</condition>
</enable>
@ -1269,7 +1269,7 @@
<expression>
<table>
<property>/engines/engine[0]/n1-actual</property>
<entry><ind> 19.7</ind><dep>434</dep></entry>
<entry><ind> 18.9</ind><dep>434</dep></entry>
<entry><ind>110.0</ind><dep>620</dep></entry>
</table>
</expression>
@ -1288,10 +1288,10 @@
<property>/engines/engine[1]/state</property>
<value>3</value>
</equals>
<greater-than>
<greater-than-equals>
<property>/engines/engine[1]/n1-actual</property>
<value>19</value>
</greater-than>
<value>18.9</value>
</greater-than-equals>
</and>
</condition>
</enable>
@ -1299,7 +1299,7 @@
<expression>
<table>
<property>/engines/engine[1]/n1-actual</property>
<entry><ind> 19.7</ind><dep>434</dep></entry>
<entry><ind> 18.9</ind><dep>434</dep></entry>
<entry><ind>110.0</ind><dep>620</dep></entry>
</table>
</expression>

View file

@ -51,7 +51,7 @@
<condition>
<and>
<not-equals>
<property>/controls/flight/flap-lever</property>
<property>/controls/flight/flaps-input</property>
<value>0</value>
</not-equals>
<equals>

View file

@ -886,4 +886,17 @@
<max-rate-of-change>10</max-rate-of-change>
</filter>
<logic>
<!-- somewhat confusing : this input is not 'are the flaps in landing configration', but rather,
'are the flaps NOT in a landing configuration'. There is a configuration bit to flip
the sense of this, if required. -->
<input>
<less-than>
<property>/controls/flight/flaps</property>
<value>0.8</value>
</less-than>
</input>
<output>/instrumentation/mk-viii/inputs/discretes/landing-flaps</output>
</logic>
</PropertyList>

View file

@ -151,7 +151,7 @@
<property>/fdm/jsbsim/hydraulics/elevator-l/final-deg</property>
<entry><ind>-30</ind><dep>-1.03</dep></entry>
<entry><ind> 0</ind><dep> 0.00</dep></entry>
<entry><ind> 17</ind><dep> 0.63</dep></entry>
<entry><ind> 15</ind><dep> 0.63</dep></entry>
</table>
</expression>
</input>
@ -168,7 +168,7 @@
<property>/fdm/jsbsim/hydraulics/elevator-r/final-deg</property>
<entry><ind>-30</ind><dep>-1.03</dep></entry>
<entry><ind> 0</ind><dep> 0.00</dep></entry>
<entry><ind> 17</ind><dep> 0.63</dep></entry>
<entry><ind> 15</ind><dep> 0.63</dep></entry>
</table>
</expression>
</input>

View file

@ -1 +1 @@
31
34