1
0
Fork 0

Passenger oxygen system

This commit is contained in:
legoboyvdlp R 2021-07-29 13:51:23 +01:00
parent 80a299831f
commit 639f68ba36
9 changed files with 111 additions and 97 deletions

View file

@ -1059,6 +1059,7 @@
</protectors>
</OH>
<oxygen>
<cockpit-oxygen-supply-pb type="bool">0</cockpit-oxygen-supply-pb>
<cockpit-mask-1-on type="bool">0</cockpit-mask-1-on>
<cockpit-mask-2-on type="bool">0</cockpit-mask-2-on>
<cockpit-mask-3-on type="bool">0</cockpit-mask-3-on>
@ -1067,6 +1068,8 @@
<cockpit-mask-2-selector type="bool">0</cockpit-mask-2-selector>
<cockpit-mask-3-selector type="bool">0</cockpit-mask-3-selector>
<cockpit-mask-4-selector type="bool">0</cockpit-mask-4-selector>
<passenger-mask-deploy-man type="bool">0</passenger-mask-deploy-man>
<passenger-mask-reset type="bool">0</passenger-mask-reset>
</oxygen>
<pneumatics n="0">
<switches n="0">

View file

@ -323,7 +323,7 @@ var beforestart = func {
setprop("/controls/flight/elevator-trim", 0);
libraries.systemsInit();
libraries.variousReset();
setprop("/controls/oxygen/crewOxyPB", 1);
setprop("/controls/oxygen/cockpit-oxygen-supply-pb", 1);
failResetOld();
# Now the Startup!
@ -419,7 +419,7 @@ var taxi = func {
setprop("/controls/flight/elevator-trim", 0);
libraries.systemsInit();
libraries.variousReset();
setprop("/controls/oxygen/crewOxyPB", 1);
setprop("/controls/oxygen/cockpit-oxygen-supply-pb", 1);
failResetOld();
# Now the Startup!

View file

@ -378,6 +378,20 @@
<value>2183</value>
</binding>
</button>
<button>
<legend>Reset Pax Oxy Masks</legend>
<halign>center</halign>
<padding>5</padding>
<enable>
<property>/gear/gear[1]/wow</property>
</enable>
<binding>
<command>property-assign</command>
<property>/systems/oxygen/passenger-oxygen/masks-deploy</property>
<value>0</value>
</binding>
</button>
</group>
</PropertyList>

View file

@ -339,7 +339,7 @@ var input = {
cargoAft: "/sim/model/door-positions/cargoaft/position-norm",
cargoBulk: "/sim/model/door-positions/cargobulk/position-norm",
cargoFwd: "/sim/model/door-positions/cargofwd/position-norm",
oxyPB: "/controls/oxygen/crewOxyPB",
oxyPB: "/controls/oxygen/cockpit-oxygen-supply-pb",
oxyBottlePress: "/systems/oxygen/cockpit-oxygen/bottle-psi",
oxyBottleRegulLoPr: "/systems/oxygen/cockpit-oxygen/regul-lo-pr",
};

View file

@ -7502,37 +7502,13 @@
</action>
</animation-->
<animation>
<type>pick</type>
<object-name>PassOxyInd</object-name>
<object-name>PassOxyInd1S</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<condition>
<greater-than-equals>
<property>systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
</condition>
<command>property-toggle</command>
<property>controls/oxygen/masksSys</property>
</binding>
<binding>
<command>nasal</command>
<script>libraries.pushbutton();</script>
</binding>
</action>
</animation>
<animation>
<type>select</type>
<object-name>PassOxyInd1S</object-name>
<condition>
<or>
<equals>
<property>controls/oxygen/masksSys</property>
<property>/systems/oxygen/passenger-oxygen/sys-on-light</property>
<value>1</value>
</equals>
<equals>
@ -7558,7 +7534,7 @@
</greater-than-equals>
</condition>
<command>property-toggle</command>
<property>controls/oxygen/crewOxyPB</property>
<property>controls/oxygen/cockpit-oxygen-supply-pb</property>
</binding>
<binding>
<command>nasal</command>
@ -7573,7 +7549,7 @@
<condition>
<or>
<equals>
<property>controls/oxygen/crewOxyPB</property>
<property>controls/oxygen/cockpit-oxygen-supply-pb</property>
<value>0</value>
</equals>
<equals>
@ -7603,8 +7579,9 @@
</greater-than-equals>
</and>
</condition>
<command>property-toggle</command>
<property>controls/oxygen/masksDeployMan</property>
<command>property-assign</command>
<property>controls/oxygen/passenger-mask-deploy-man</property>
<value>1</value>
</binding>
<binding>
<condition>
@ -7616,17 +7593,36 @@
<command>nasal</command>
<script>libraries.pushbutton();</script>
</binding>
<binding>
<condition>
<equals>
<property>controls/OH/protectors/maskman</property>
<value>1</value>
</equals>
</condition>
<command>property-assign</command>
<property>controls/OH/protectors/maskman</property>
<value>0</value>
</binding>
<mod-up>
<binding>
<condition>
<and>
<equals>
<property>controls/OH/protectors/maskman</property>
<value>1</value>
</equals>
<greater-than-equals>
<property>systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
</and>
</condition>
<command>property-assign</command>
<property>controls/oxygen/passenger-mask-deploy-man</property>
<value>0</value>
</binding>
<binding>
<condition>
<equals>
<property>controls/OH/protectors/maskman</property>
<value>1</value>
</equals>
</condition>
<command>property-assign</command>
<property>controls/OH/protectors/maskman</property>
<value>0</value>
</binding>
</mod-up>
</action>
</animation>

View file

@ -32,7 +32,6 @@ var variousReset = func() {
setprop("/controls/CVR/gndctl", 0);
setprop("/controls/CVR/erase", 0);
setprop("/controls/switches/pneumatics/cabin-fans", 1);
setprop("/controls/oxygen/crewOxyPB", 0); # 0 = OFF 1 = AUTO
setprop("/controls/switches/emerCallLtO", 0); # ON light, flashes white for 10s
setprop("/controls/switches/emerCallLtC", 0); # CALL light, flashes amber for 10s
setprop("/controls/switches/emerCall", 0);

View file

@ -140,10 +140,8 @@ var PNEU = {
#setprop("/systems/ventilation/cabin/fans", 0); # aircon fans
#setprop("/systems/ventilation/avionics/extractvalve", "0");
#setprop("/systems/ventilation/avionics/inletvalve", "0");
setprop("/controls/oxygen/masksDeploy", 0);
setprop("/controls/oxygen/masksDeployMan", 0);
setprop("/controls/oxygen/masksReset", 0); # this is the TMR RESET pb on the maintenance panel, needs 3D model
setprop("/controls/oxygen/masksSys", 0);
setprop("/controls/oxygen/passenger-mask-deploy-man", 0);
setprop("/controls/oxygen/passenger-mask-reset", 0); # this is the TMR RESET pb on the maintenance panel, needs 3D model
},
resetFail: func() {
me.Fail.apu.setBoolValue(0);
@ -206,41 +204,5 @@ var PNEU = {
#setprop("/systems/ventilation/avionics/extractvalve", "1");
#setprop("/systems/ventilation/avionics/inletvalve", "1");
#}
# Oxygen
if (cabinalt > 13500) {
setprop("/controls/oxygen/masksDeploy", 1);
setprop("/controls/oxygen/masksSys", 1);
}
},
};
# Oxygen (Cabin)
setlistener("/controls/oxygen/masksDeployMan", func {
guard = getprop("/controls/oxygen/masksGuard");
masks = getprop("/controls/oxygen/masksDeployMan");
if (guard and masks) {
setprop("/controls/oxygen/masksDeployMan", 0);
} else if (!guard and masks) {
setprop("/controls/oxygen/masksDeployMan", 1);
setprop("/controls/oxygen/masksDeploy", 1);
setprop("/controls/oxygen/masksSys", 1);
}
}, 0, 0);
setlistener("/controls/oxygen/masksDeployMan", func {
masks = getprop("/controls/oxygen/masksDeployMan");
if (!masks) {
setprop("/controls/oxygen/masksDeployMan", 1);
}
}, 0, 0);
setlistener("/controls/oxygen/masksDeploy", func {
autoMasks = getprop("/controls/oxygen/masksDeploy");
if (!autoMasks) {
setprop("/controls/oxygen/masksDeploy", 1);
}
}, 0, 0);
};

View file

@ -1913,6 +1913,22 @@
</volume>
</announcements>
<announcements>
<name>depressurization</name>
<mode>once</mode>
<path>Aircraft/A320-family/Sounds/Announce/depressurization.wav</path>
<condition>
<equals>
<property>/systems/oxygen/passenger-oxygen/sys-on-light</property>
<value>1</value>
</equals>
</condition>
<volume>
<property>/sim/current-view/internal</property>
<factor>2.0</factor>
</volume>
</announcements>
<chime>
<name>Click</name>
<path>Aircraft/A320-family/Sounds/Cockpit/click.wav</path>

View file

@ -20,7 +20,7 @@
<switch name="/systems/oxygen/cockpit-oxygen/supply-valve-cmd">
<default value="0"/>
<test logic="AND" value="1"> <!-- solenoid valve; when not energized, it shuts -->
/controls/oxygen/crewOxyPB eq 1
/controls/oxygen/cockpit-oxygen-supply-pb eq 1
/systems/electrical/bus/dc-ess-shed ge 25
</test>
</switch>
@ -287,19 +287,43 @@
<channel name="Passenger Oxygen" execrate="8">
<!-- Chemical generators
Masks drop automatically if altitude > 14000 or 16000 if HI ALT
or MAN ON button
Taped message + SYS ON comes online
15 minutes supply
SYS ON goes off only when TIMER RESET
<switch name="/systems/oxygen/passenger-oxygen/pressure-switch">
<defualt value="0"/>
<test logic="AND" value="1">
/systems/pressurization/cabinalt ge 14000
/systems/electrical/bus/dc-ess ge 25
</test>
<!-- HI ALT 16000 -->
</switch>
Door actuators AC ESS SHED 801PP
Pressure switch for 14K feet powered by 401PP (DC ESS)
Reset + taped msg + sys on light powred by 401PP
<switch name="/systems/oxygen/passenger-oxygen/masks-deploy-cmd">
<default value="0"/>
<test logic="OR" value="1">
/systems/oxygen/passenger-oxygen/pressure-switch eq 1
/controls/oxygen/passenger-mask-deploy-man eq 1
</test>
</switch>
Regulators: below 10k zero flow
-->
<switch name="/systems/oxygen/passenger-oxygen/masks-deploy">
<default value="/systems/oxygen/passenger-oxygen/masks-deploy"/>
<test logic="AND" value="1">
/systems/oxygen/passenger-oxygen/masks-deploy-cmd eq 1
/systems/electrical/bus/ac-ess-shed ge 110
</test>
</switch>
<switch name="Sys On Light">
<default value="/systems/oxygen/passenger-oxygen/sys-on-light"/>
<test logic="OR" value="0">
/controls/oxygen/passenger-mask-reset eq 1
/systems/electrical/bus/dc-ess lt 25
</test>
<test logic="AND" value="1">
/systems/oxygen/passenger-oxygen/masks-deploy-cmd eq 1
/systems/electrical/bus/dc-ess ge 25
</test>
<output>/systems/oxygen/passenger-oxygen/sys-on-light</output>
</switch>
</channel>
</system>