diff --git a/Models/Instruments/ND/canvas/res/airbus_holdL.svg b/Models/Instruments/ND/canvas/res/airbus_holdL.svg new file mode 100644 index 00000000..0807b36f --- /dev/null +++ b/Models/Instruments/ND/canvas/res/airbus_holdL.svg @@ -0,0 +1,60 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/Models/Instruments/ND/canvas/res/airbus_holdR.svg b/Models/Instruments/ND/canvas/res/airbus_holdR.svg new file mode 100644 index 00000000..6c51add3 --- /dev/null +++ b/Models/Instruments/ND/canvas/res/airbus_holdR.svg @@ -0,0 +1,62 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/Nasal/Systems/APU.nas b/Nasal/Systems/APU.nas new file mode 100644 index 00000000..9033032f --- /dev/null +++ b/Nasal/Systems/APU.nas @@ -0,0 +1,67 @@ +# A3XX Auxilliary Power Unit +# Jonathan Redpath (legoboyvdlp) + +# Copyright (c) 2019 Jonathan Redpath (legoboyvdlp) + +var APU = { + state: 0, # power up, watch, starting, run, cooldown, shutdown + nRpm: 0, + fuelValve: aircraft.door.new("/controls/apu/fuel-valve", 1), + inletFlap: aircraft.door.new("/controls/apu/inlet-flap", 12), + listenSignals: 0, + start: 0, + cancelCheckFlap: 0, + new: func() { + var a = { parents:[APU] }; + return a; + }, + setState: func(num) { + me.state = num; + }, + powerOn: func() { + # apu able to receive emergency stop or start signals + me.fuelValve.open(); + me.inletFlap.open(); + me.listenSignals = 1; + settimer(me.setState(1), 3); + }, + getStartSignal: func() { + if (me.listenSignals and me.state < 2 and me.nRpm < 7) { + me.start = 1; + me.startCheckFlap(); + } elsif (me.listenSignals) { + settimer(me.getStartSignal(), 0); + } + }, + startCheckFlap: func() { + if (me.inletFlap.getpos() != 1 and me.cancelCheckFlap == 0 and me.state == 1) { + settimer(me.startCheckFlap(), 0); + } elsif (me.cancelCheckFlap) { + me.cancelCheckFlap = 0; + } else { + me.setState(2); + } + }, + getStopSignal: func() { + if (me.listenSignals) { + me.cancelCheckFlap = 1; + me.inletFlap.close(); + # wait for flap close --> power down relay output + } + }, +}; + +var APUController = { + _init: 0, + APU: nil, + init: func() { + if (!me._init) { + me.APU = APU.new(); + } + }, + loop: func() { + if (me.APU != nil) { + APU.update(); + } + }, +}; \ No newline at end of file diff --git a/Nasal/Systems/pneumatics-old.nas b/Nasal/Systems/pneumatics-old.nas new file mode 100644 index 00000000..9a88b772 --- /dev/null +++ b/Nasal/Systems/pneumatics-old.nas @@ -0,0 +1,61 @@ +# A3XX Pneumatic System +# Copyright (c) 2019 Jonathan Redpath (legoboyvdlp) + +# Local vars + +# Main class +var PNEU = { + Fail: { + apu: props.globals.getNode("systems/failures/pneumatics/apu-valve"); + bleed1: props.globals.getNode("systems/failures/pneumatics/bleed-1-valve"); + bleed2: props.globals.getNode("systems/failures/pneumatics/bleed-2-valve"); + cabinFans: props.globals.getNode("systems/failures/pneumatics/cabin-fans"); + hotAir: props.globals.getNode("systems/failures/pneumatics/hot-air"); + pack1: props.globals.getNode("systems/failures/pneumatics/pack-1-valve"); + pack2: props.globals.getNode("systems/failures/pneumatics/pack-2-valve"); + ramAir: props.globals.getNode("systems/failures/pneumatics/ram-air"); + trimValveCockpit: props.globals.getNode("systems/failures/pneumatics/trim-valve-cockpit"); + trimValveAft: props.globals.getNode("systems/failures/pneumatics/trim-valve-cabin-aft"); + trimValveFwd: props.globals.getNode("systems/failures/pneumatics/trim-valve-cabin-fwd"); + xbleed: props.globals.getNode("systems/failures/pneumatics/x-bleed-valve"); + } + Psi: { + }, + Switch: { + apu: props.globals.getNode("controls/pneumatics/switches/apu"); + bleed1: props.globals.getNode("controls/pneumatics/switches/bleed-1"); + bleed2: props.globals.getNode("controls/pneumatics/switches/bleed-2"); + blower: props.globals.getNode("controls/pneumatics/switches/blower"); + cabinFans: props.globals.getNode("controls/pneumatics/switches/cabin-fans"); + extract: props.globals.getNode("controls/pneumatics/switches/extract"); + hotAir: props.globals.getNode("controls/pneumatics/switches/hot-air"); + pack1: props.globals.getNode("controls/pneumatics/switches/pack-1"); + pack2: props.globals.getNode("controls/pneumatics/switches/pack-2"); + packFlow: props.globals.getNode("controls/pneumatics/switches/pack-flow"); + ramAir: props.globals.getNode("controls/pneumatics/switches/ram-air"); + tempCockpit: props.globals.getNode("controls/pneumatics/switches/temp-cockpit"); + tempAft: props.globals.getNode("controls/pneumatics/switches/temp-cabin-aft"); + tempFwd: props.globals.getNode("controls/pneumatics/switches/temp-cabin-fwd"); + xbleed: props.globals.getNode("controls/pneumatics/switches/x-bleed"); + }, + init: func() { + me.resetFail(); + }, + resetFail: func() { + me.Fail.apu.setBoolValue(0); + me.Fail.bleed1.setBoolValue(0); + me.Fail.bleed2.setBoolValue(0); + me.Fail.cabinFans.setBoolValue(0); + me.Fail.hotAir.setBoolValue(0); + me.Fail.pack1.setBoolValue(0); + me.Fail.pack2.setBoolValue(0); + me.Fail.ramAir.setBoolValue(0); + me.Fail.trimValveCockpit.setBoolValue(0); + me.Fail.trimValveAft.setBoolValue(0); + me.Fail.trimValveFwd.setBoolValue(0); + me.Fail.xbleed.setBoolValue(0); + }, + loop: func() { + + }, +} \ No newline at end of file diff --git a/Sounds/Cockpit/click.wav b/Sounds/Cockpit/click.wav new file mode 100644 index 00000000..6fbf64a4 Binary files /dev/null and b/Sounds/Cockpit/click.wav differ diff --git a/Sounds/GPWS/dont-sink.wav b/Sounds/GPWS/dont-sink.wav new file mode 100644 index 00000000..8bd30e8a Binary files /dev/null and b/Sounds/GPWS/dont-sink.wav differ diff --git a/Sounds/GPWS/glideslope.wav b/Sounds/GPWS/glideslope.wav new file mode 100644 index 00000000..32db115d Binary files /dev/null and b/Sounds/GPWS/glideslope.wav differ diff --git a/Sounds/GPWS/pull-up.wav b/Sounds/GPWS/pull-up.wav new file mode 100644 index 00000000..7f1ea4ad Binary files /dev/null and b/Sounds/GPWS/pull-up.wav differ diff --git a/Sounds/GPWS/sink-rate.wav b/Sounds/GPWS/sink-rate.wav new file mode 100644 index 00000000..bb5e80a4 Binary files /dev/null and b/Sounds/GPWS/sink-rate.wav differ diff --git a/Sounds/GPWS/terrain.wav b/Sounds/GPWS/terrain.wav new file mode 100644 index 00000000..89e7bdd0 Binary files /dev/null and b/Sounds/GPWS/terrain.wav differ diff --git a/Sounds/GPWS/too-low-flaps.wav b/Sounds/GPWS/too-low-flaps.wav new file mode 100644 index 00000000..f7027fe9 Binary files /dev/null and b/Sounds/GPWS/too-low-flaps.wav differ diff --git a/Sounds/GPWS/too-low-gear.wav b/Sounds/GPWS/too-low-gear.wav new file mode 100644 index 00000000..8dbde954 Binary files /dev/null and b/Sounds/GPWS/too-low-gear.wav differ diff --git a/Sounds/GPWS/too-low-terrain.wav b/Sounds/GPWS/too-low-terrain.wav new file mode 100644 index 00000000..f3bb14fb Binary files /dev/null and b/Sounds/GPWS/too-low-terrain.wav differ diff --git a/Sounds/SASA/A320_cabin.wav b/Sounds/SASA/A320_cabin.wav new file mode 100644 index 00000000..b57f9c92 Binary files /dev/null and b/Sounds/SASA/A320_cabin.wav differ diff --git a/Sounds/SASA/CFM56B/cockpit/A320_cockpit_starter.wav b/Sounds/SASA/CFM56B/cockpit/A320_cockpit_starter.wav new file mode 100644 index 00000000..ce5638c5 Binary files /dev/null and b/Sounds/SASA/CFM56B/cockpit/A320_cockpit_starter.wav differ diff --git a/Sounds/SASA/CFM56B/cockpit/A320_cockpit_startup.wav b/Sounds/SASA/CFM56B/cockpit/A320_cockpit_startup.wav new file mode 100644 index 00000000..9f389be0 Binary files /dev/null and b/Sounds/SASA/CFM56B/cockpit/A320_cockpit_startup.wav differ diff --git a/Sounds/SASA/CFM56B/external/cfm-windrush.wav b/Sounds/SASA/CFM56B/external/cfm-windrush.wav new file mode 100644 index 00000000..a43406f7 Binary files /dev/null and b/Sounds/SASA/CFM56B/external/cfm-windrush.wav differ diff --git a/Sounds/SASA/CFM56B/external/x320_cfm_starter.wav b/Sounds/SASA/CFM56B/external/x320_cfm_starter.wav new file mode 100644 index 00000000..b38a3f05 Binary files /dev/null and b/Sounds/SASA/CFM56B/external/x320_cfm_starter.wav differ diff --git a/Sounds/SASA/CFM56B/external/x320_cfm_startup.wav b/Sounds/SASA/CFM56B/external/x320_cfm_startup.wav new file mode 100644 index 00000000..772deb1e Binary files /dev/null and b/Sounds/SASA/CFM56B/external/x320_cfm_startup.wav differ diff --git a/Sounds/SASA/CFM56B/external/xstart2_rear.wav b/Sounds/SASA/CFM56B/external/xstart2_rear.wav new file mode 100644 index 00000000..51585003 Binary files /dev/null and b/Sounds/SASA/CFM56B/external/xstart2_rear.wav differ diff --git a/Sounds/SASA/CFM56B/wingaft/320_start2_2.wav b/Sounds/SASA/CFM56B/wingaft/320_start2_2.wav new file mode 100644 index 00000000..9f188cc4 Binary files /dev/null and b/Sounds/SASA/CFM56B/wingaft/320_start2_2.wav differ diff --git a/Sounds/SASA/CFM56B/wingaft/340_start1_2.wav b/Sounds/SASA/CFM56B/wingaft/340_start1_2.wav new file mode 100644 index 00000000..48b4db6d Binary files /dev/null and b/Sounds/SASA/CFM56B/wingaft/340_start1_2.wav differ diff --git a/Sounds/SASA/CFM56B/wingfwd/320_start2_2.wav b/Sounds/SASA/CFM56B/wingfwd/320_start2_2.wav new file mode 100644 index 00000000..9f188cc4 Binary files /dev/null and b/Sounds/SASA/CFM56B/wingfwd/320_start2_2.wav differ diff --git a/Sounds/SASA/CFM56B/wingfwd/340_start1_2.wav b/Sounds/SASA/CFM56B/wingfwd/340_start1_2.wav new file mode 100644 index 00000000..48b4db6d Binary files /dev/null and b/Sounds/SASA/CFM56B/wingfwd/340_start1_2.wav differ diff --git a/Sounds/SASA/Touch-Nose.wav b/Sounds/SASA/Touch-Nose.wav new file mode 100644 index 00000000..c4c0bd49 Binary files /dev/null and b/Sounds/SASA/Touch-Nose.wav differ diff --git a/Sounds/SASA/V2500/external/v2500-idleClose.wav b/Sounds/SASA/V2500/external/v2500-idleClose.wav new file mode 100644 index 00000000..aebdc755 Binary files /dev/null and b/Sounds/SASA/V2500/external/v2500-idleClose.wav differ diff --git a/Sounds/SASA/V2500/external/v2500-idleDist.wav b/Sounds/SASA/V2500/external/v2500-idleDist.wav new file mode 100644 index 00000000..f6a19063 Binary files /dev/null and b/Sounds/SASA/V2500/external/v2500-idleDist.wav differ