Passenger oxygen system
This commit is contained in:
parent
80a299831f
commit
639f68ba36
9 changed files with 111 additions and 97 deletions
|
@ -1059,6 +1059,7 @@
|
||||||
</protectors>
|
</protectors>
|
||||||
</OH>
|
</OH>
|
||||||
<oxygen>
|
<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-1-on type="bool">0</cockpit-mask-1-on>
|
||||||
<cockpit-mask-2-on type="bool">0</cockpit-mask-2-on>
|
<cockpit-mask-2-on type="bool">0</cockpit-mask-2-on>
|
||||||
<cockpit-mask-3-on type="bool">0</cockpit-mask-3-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-2-selector type="bool">0</cockpit-mask-2-selector>
|
||||||
<cockpit-mask-3-selector type="bool">0</cockpit-mask-3-selector>
|
<cockpit-mask-3-selector type="bool">0</cockpit-mask-3-selector>
|
||||||
<cockpit-mask-4-selector type="bool">0</cockpit-mask-4-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>
|
</oxygen>
|
||||||
<pneumatics n="0">
|
<pneumatics n="0">
|
||||||
<switches n="0">
|
<switches n="0">
|
||||||
|
|
|
@ -323,7 +323,7 @@ var beforestart = func {
|
||||||
setprop("/controls/flight/elevator-trim", 0);
|
setprop("/controls/flight/elevator-trim", 0);
|
||||||
libraries.systemsInit();
|
libraries.systemsInit();
|
||||||
libraries.variousReset();
|
libraries.variousReset();
|
||||||
setprop("/controls/oxygen/crewOxyPB", 1);
|
setprop("/controls/oxygen/cockpit-oxygen-supply-pb", 1);
|
||||||
failResetOld();
|
failResetOld();
|
||||||
|
|
||||||
# Now the Startup!
|
# Now the Startup!
|
||||||
|
@ -419,7 +419,7 @@ var taxi = func {
|
||||||
setprop("/controls/flight/elevator-trim", 0);
|
setprop("/controls/flight/elevator-trim", 0);
|
||||||
libraries.systemsInit();
|
libraries.systemsInit();
|
||||||
libraries.variousReset();
|
libraries.variousReset();
|
||||||
setprop("/controls/oxygen/crewOxyPB", 1);
|
setprop("/controls/oxygen/cockpit-oxygen-supply-pb", 1);
|
||||||
failResetOld();
|
failResetOld();
|
||||||
|
|
||||||
# Now the Startup!
|
# Now the Startup!
|
||||||
|
|
|
@ -378,6 +378,20 @@
|
||||||
<value>2183</value>
|
<value>2183</value>
|
||||||
</binding>
|
</binding>
|
||||||
</button>
|
</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>
|
</group>
|
||||||
|
|
||||||
</PropertyList>
|
</PropertyList>
|
||||||
|
|
|
@ -339,7 +339,7 @@ var input = {
|
||||||
cargoAft: "/sim/model/door-positions/cargoaft/position-norm",
|
cargoAft: "/sim/model/door-positions/cargoaft/position-norm",
|
||||||
cargoBulk: "/sim/model/door-positions/cargobulk/position-norm",
|
cargoBulk: "/sim/model/door-positions/cargobulk/position-norm",
|
||||||
cargoFwd: "/sim/model/door-positions/cargofwd/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",
|
oxyBottlePress: "/systems/oxygen/cockpit-oxygen/bottle-psi",
|
||||||
oxyBottleRegulLoPr: "/systems/oxygen/cockpit-oxygen/regul-lo-pr",
|
oxyBottleRegulLoPr: "/systems/oxygen/cockpit-oxygen/regul-lo-pr",
|
||||||
};
|
};
|
||||||
|
|
|
@ -7502,37 +7502,13 @@
|
||||||
</action>
|
</action>
|
||||||
</animation-->
|
</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>
|
<animation>
|
||||||
<type>select</type>
|
<type>select</type>
|
||||||
<object-name>PassOxyInd1S</object-name>
|
<object-name>PassOxyInd1S</object-name>
|
||||||
<condition>
|
<condition>
|
||||||
<or>
|
<or>
|
||||||
<equals>
|
<equals>
|
||||||
<property>controls/oxygen/masksSys</property>
|
<property>/systems/oxygen/passenger-oxygen/sys-on-light</property>
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</equals>
|
</equals>
|
||||||
<equals>
|
<equals>
|
||||||
|
@ -7558,7 +7534,7 @@
|
||||||
</greater-than-equals>
|
</greater-than-equals>
|
||||||
</condition>
|
</condition>
|
||||||
<command>property-toggle</command>
|
<command>property-toggle</command>
|
||||||
<property>controls/oxygen/crewOxyPB</property>
|
<property>controls/oxygen/cockpit-oxygen-supply-pb</property>
|
||||||
</binding>
|
</binding>
|
||||||
<binding>
|
<binding>
|
||||||
<command>nasal</command>
|
<command>nasal</command>
|
||||||
|
@ -7573,7 +7549,7 @@
|
||||||
<condition>
|
<condition>
|
||||||
<or>
|
<or>
|
||||||
<equals>
|
<equals>
|
||||||
<property>controls/oxygen/crewOxyPB</property>
|
<property>controls/oxygen/cockpit-oxygen-supply-pb</property>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</equals>
|
</equals>
|
||||||
<equals>
|
<equals>
|
||||||
|
@ -7603,8 +7579,9 @@
|
||||||
</greater-than-equals>
|
</greater-than-equals>
|
||||||
</and>
|
</and>
|
||||||
</condition>
|
</condition>
|
||||||
<command>property-toggle</command>
|
<command>property-assign</command>
|
||||||
<property>controls/oxygen/masksDeployMan</property>
|
<property>controls/oxygen/passenger-mask-deploy-man</property>
|
||||||
|
<value>1</value>
|
||||||
</binding>
|
</binding>
|
||||||
<binding>
|
<binding>
|
||||||
<condition>
|
<condition>
|
||||||
|
@ -7616,17 +7593,36 @@
|
||||||
<command>nasal</command>
|
<command>nasal</command>
|
||||||
<script>libraries.pushbutton();</script>
|
<script>libraries.pushbutton();</script>
|
||||||
</binding>
|
</binding>
|
||||||
<binding>
|
<mod-up>
|
||||||
<condition>
|
<binding>
|
||||||
<equals>
|
<condition>
|
||||||
<property>controls/OH/protectors/maskman</property>
|
<and>
|
||||||
<value>1</value>
|
<equals>
|
||||||
</equals>
|
<property>controls/OH/protectors/maskman</property>
|
||||||
</condition>
|
<value>1</value>
|
||||||
<command>property-assign</command>
|
</equals>
|
||||||
<property>controls/OH/protectors/maskman</property>
|
<greater-than-equals>
|
||||||
<value>0</value>
|
<property>systems/electrical/bus/dc-ess</property>
|
||||||
</binding>
|
<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>
|
</action>
|
||||||
</animation>
|
</animation>
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,6 @@ var variousReset = func() {
|
||||||
setprop("/controls/CVR/gndctl", 0);
|
setprop("/controls/CVR/gndctl", 0);
|
||||||
setprop("/controls/CVR/erase", 0);
|
setprop("/controls/CVR/erase", 0);
|
||||||
setprop("/controls/switches/pneumatics/cabin-fans", 1);
|
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/emerCallLtO", 0); # ON light, flashes white for 10s
|
||||||
setprop("/controls/switches/emerCallLtC", 0); # CALL light, flashes amber for 10s
|
setprop("/controls/switches/emerCallLtC", 0); # CALL light, flashes amber for 10s
|
||||||
setprop("/controls/switches/emerCall", 0);
|
setprop("/controls/switches/emerCall", 0);
|
||||||
|
|
|
@ -140,10 +140,8 @@ var PNEU = {
|
||||||
#setprop("/systems/ventilation/cabin/fans", 0); # aircon fans
|
#setprop("/systems/ventilation/cabin/fans", 0); # aircon fans
|
||||||
#setprop("/systems/ventilation/avionics/extractvalve", "0");
|
#setprop("/systems/ventilation/avionics/extractvalve", "0");
|
||||||
#setprop("/systems/ventilation/avionics/inletvalve", "0");
|
#setprop("/systems/ventilation/avionics/inletvalve", "0");
|
||||||
setprop("/controls/oxygen/masksDeploy", 0);
|
setprop("/controls/oxygen/passenger-mask-deploy-man", 0);
|
||||||
setprop("/controls/oxygen/masksDeployMan", 0);
|
setprop("/controls/oxygen/passenger-mask-reset", 0); # this is the TMR RESET pb on the maintenance panel, needs 3D model
|
||||||
setprop("/controls/oxygen/masksReset", 0); # this is the TMR RESET pb on the maintenance panel, needs 3D model
|
|
||||||
setprop("/controls/oxygen/masksSys", 0);
|
|
||||||
},
|
},
|
||||||
resetFail: func() {
|
resetFail: func() {
|
||||||
me.Fail.apu.setBoolValue(0);
|
me.Fail.apu.setBoolValue(0);
|
||||||
|
@ -206,41 +204,5 @@ var PNEU = {
|
||||||
#setprop("/systems/ventilation/avionics/extractvalve", "1");
|
#setprop("/systems/ventilation/avionics/extractvalve", "1");
|
||||||
#setprop("/systems/ventilation/avionics/inletvalve", "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);
|
|
|
@ -1913,6 +1913,22 @@
|
||||||
</volume>
|
</volume>
|
||||||
</announcements>
|
</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>
|
<chime>
|
||||||
<name>Click</name>
|
<name>Click</name>
|
||||||
<path>Aircraft/A320-family/Sounds/Cockpit/click.wav</path>
|
<path>Aircraft/A320-family/Sounds/Cockpit/click.wav</path>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<switch name="/systems/oxygen/cockpit-oxygen/supply-valve-cmd">
|
<switch name="/systems/oxygen/cockpit-oxygen/supply-valve-cmd">
|
||||||
<default value="0"/>
|
<default value="0"/>
|
||||||
<test logic="AND" value="1"> <!-- solenoid valve; when not energized, it shuts -->
|
<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
|
/systems/electrical/bus/dc-ess-shed ge 25
|
||||||
</test>
|
</test>
|
||||||
</switch>
|
</switch>
|
||||||
|
@ -287,19 +287,43 @@
|
||||||
|
|
||||||
<channel name="Passenger Oxygen" execrate="8">
|
<channel name="Passenger Oxygen" execrate="8">
|
||||||
|
|
||||||
<!-- Chemical generators
|
<switch name="/systems/oxygen/passenger-oxygen/pressure-switch">
|
||||||
Masks drop automatically if altitude > 14000 or 16000 if HI ALT
|
<defualt value="0"/>
|
||||||
or MAN ON button
|
<test logic="AND" value="1">
|
||||||
Taped message + SYS ON comes online
|
/systems/pressurization/cabinalt ge 14000
|
||||||
15 minutes supply
|
/systems/electrical/bus/dc-ess ge 25
|
||||||
SYS ON goes off only when TIMER RESET
|
</test>
|
||||||
|
<!-- HI ALT 16000 -->
|
||||||
|
</switch>
|
||||||
|
|
||||||
Door actuators AC ESS SHED 801PP
|
<switch name="/systems/oxygen/passenger-oxygen/masks-deploy-cmd">
|
||||||
Pressure switch for 14K feet powered by 401PP (DC ESS)
|
<default value="0"/>
|
||||||
Reset + taped msg + sys on light powred by 401PP
|
<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>
|
</channel>
|
||||||
|
|
||||||
</system>
|
</system>
|
||||||
|
|
Loading…
Add table
Reference in a new issue