diff --git a/A320-100-CFM.xml b/A320-100-CFM.xml
index 7784988c..6e891368 100644
--- a/A320-100-CFM.xml
+++ b/A320-100-CFM.xml
@@ -212,6 +212,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
+
diff --git a/A320-200-CFM.xml b/A320-200-CFM.xml
index 17855ff5..b66a6a03 100644
--- a/A320-200-CFM.xml
+++ b/A320-200-CFM.xml
@@ -211,6 +211,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
+
diff --git a/A320-200-IAE.xml b/A320-200-IAE.xml
index 24f5355d..7a5dbb7b 100644
--- a/A320-200-IAE.xml
+++ b/A320-200-IAE.xml
@@ -211,6 +211,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
+
diff --git a/A320-main.xml b/A320-main.xml
index b8737654..1bebeaaf 100644
--- a/A320-main.xml
+++ b/A320-main.xml
@@ -1058,6 +1058,16 @@
0
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
0
@@ -1580,6 +1590,7 @@
0
+
diff --git a/A320neo-CFM.xml b/A320neo-CFM.xml
index 7570cb46..9c7a9d6e 100644
--- a/A320neo-CFM.xml
+++ b/A320neo-CFM.xml
@@ -211,6 +211,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
+
diff --git a/A320neo-PW.xml b/A320neo-PW.xml
index fa07ac97..5acd6825 100644
--- a/A320neo-PW.xml
+++ b/A320neo-PW.xml
@@ -211,6 +211,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
+
diff --git a/AircraftConfig/groundservices.xml b/AircraftConfig/groundservices.xml
index c92062a9..de0bacd7 100644
--- a/AircraftConfig/groundservices.xml
+++ b/AircraftConfig/groundservices.xml
@@ -342,6 +342,42 @@
1
+
+
+ hbox
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+ 10
+ 200
+
+ %4.0f litres
+ /systems/oxygen/cockpit-oxygen/cockpit-bottle-L
+ true
+
+
+
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM-door.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM-door.nas
index 282d77e9..05607dae 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM-door.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM-door.nas
@@ -26,7 +26,6 @@ var canvas_lowerECAMPageDoor =
obj["Cabin3LeftSlide"].hide();
obj["Cabin3RightSlide"].hide();
- obj["DOOROXY-REGUL-LO-PR"].hide();
obj["AvionicsLine1"].hide();
obj["AvionicsLine2"].hide();
obj["AvionicsLbl1"].hide();
@@ -153,16 +152,23 @@ var canvas_lowerECAMPageDoor =
obj["Cargo1Line"].hide();
}
}),
- props.UpdateManager.FromHashValue("oxyPB", nil, func(val) {
- if (val) {
- obj["DOOROXY-OxyIndicator"].setColor(0.8078,0.8039,0.8078);
- obj["DOOROXY-PR"].setColor(0.0509,0.7529,0.2941);
- obj["DOOROXY-PR"].setText("1300");
+ props.UpdateManager.FromHashList(["oxyPB","oxyBottlePress","oxyBottleRegulLoPr"], nil, func(val) {
+ if (val.oxyPB) {
+ if (val.oxyBottlePress < 300 or val.oxyBottleRegulLoPr) {
+ obj["DOOROXY-OxyIndicator"].setColor(0.7333,0.3803,0);
+ } else {
+ obj["DOOROXY-OxyIndicator"].setColor(0.8078,0.8039,0.8078);
+ }
} else {
obj["DOOROXY-OxyIndicator"].setColor(0.7333,0.3803,0);
- obj["DOOROXY-PR"].setColor(0.7333,0.3803,0);
- obj["DOOROXY-PR"].setText("0");
}
+
+ if (val.oxyBottlePress < 300) {
+ obj["DOOROXY-PR"].setColor(0.7333,0.3803,0);
+ } else {
+ obj["DOOROXY-PR"].setColor(0.0509,0.7529,0.2941);
+ }
+ obj["DOOROXY-PR"].setText(sprintf("%4.0f", math.round(val.oxyBottlePress, 10)));
}),
props.UpdateManager.FromHashValue("pressVS", nil, func(val) {
if (val > 9950) {
@@ -186,6 +192,13 @@ var canvas_lowerECAMPageDoor =
obj["DOOR-VS-Container"].hide();
}
}),
+ props.UpdateManager.FromHashValue("oxyBottleRegulLoPr", nil, func(val) {
+ if (val) {
+ obj["DOOROXY-REGUL-LO-PR"].show();
+ } else {
+ obj["DOOROXY-REGUL-LO-PR"].hide();
+ }
+ }),
];
obj.displayedGForce = 0;
@@ -327,6 +340,8 @@ var input = {
cargoBulk: "/sim/model/door-positions/cargobulk/position-norm",
cargoFwd: "/sim/model/door-positions/cargofwd/position-norm",
oxyPB: "/controls/oxygen/crewOxyPB",
+ oxyBottlePress: "/systems/oxygen/cockpit-oxygen/bottle-psi",
+ oxyBottleRegulLoPr: "/systems/oxygen/cockpit-oxygen/regul-lo-pr",
};
foreach (var name; keys(input)) {
diff --git a/Sounds/Announce/depressurization.wav b/Sounds/Announce/depressurization.wav
new file mode 100644
index 00000000..58d163d1
Binary files /dev/null and b/Sounds/Announce/depressurization.wav differ
diff --git a/Systems/a320-oxygen.xml b/Systems/a320-oxygen.xml
new file mode 100644
index 00000000..5de9b205
--- /dev/null
+++ b/Systems/a320-oxygen.xml
@@ -0,0 +1,305 @@
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/cockpit-bottle-L
+ /systems/oxygen/cockpit-oxygen/distributor-manifold-L
+
+
+
+
+
+
+
+
+
+
+ /controls/oxygen/crewOxyPB eq 1
+ /systems/electrical/bus/dc-ess-shed ge 25
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/supply-valve-cmd
+ 10
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/distributor-manifold-L
+ 15
+
+ /controls/oxygen/cockpit-mask-1-on
+
+ /systems/pressurization/cabinalt
+ /controls/oxygen/cockpit-mask-1-selector
+
+ 0 1
+ 0 0 29.5
+ 5000 0.0 31.0
+ 8000 0.17 36.4
+ 10000 0.71 36.9
+ 15000 5.60 37.9
+ 20000 15.9 38.9
+ 30000 30.4 39.9
+ 35000 40.9 40.9
+ 40000 41.9 41.9
+
+
+
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/distributor-manifold-L
+ 15
+
+ /controls/oxygen/cockpit-mask-2-on
+
+ /systems/pressurization/cabinalt
+ /controls/oxygen/cockpit-mask-2-selector
+
+ 0 1
+ 0 0 29.5
+ 5000 0.0 31.0
+ 8000 0.17 36.4
+ 10000 0.71 36.9
+ 15000 5.60 37.9
+ 20000 15.9 38.9
+ 30000 30.4 39.9
+ 35000 40.9 40.9
+ 40000 41.9 41.9
+
+
+
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/distributor-manifold-L
+ 15
+
+ /controls/oxygen/cockpit-mask-3-on
+
+ /systems/pressurization/cabinalt
+ /controls/oxygen/cockpit-mask-3-selector
+
+ 0 1
+ 0 0 29.5
+ 5000 0.0 31.0
+ 8000 0.17 36.4
+ 10000 0.71 36.9
+ 15000 5.60 37.9
+ 20000 15.9 38.9
+ 30000 30.4 39.9
+ 35000 40.9 40.9
+ 40000 41.9 41.9
+
+
+
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/distributor-manifold-L
+ 15
+
+ /controls/oxygen/cockpit-mask-4-on
+
+ /systems/pressurization/cabinalt
+ /controls/oxygen/cockpit-mask-4-selector
+
+ 0 1
+ 0 0 29.5
+ 5000 0.0 31.0
+ 8000 0.17 36.4
+ 10000 0.71 36.9
+ 15000 5.60 37.9
+ 20000 15.9 38.9
+ 30000 30.4 39.9
+ 35000 40.9 40.9
+ 40000 41.9 41.9
+
+
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/cockpit-bottle-L
+
+
+ -/systems/oxygen/cockpit-oxygen/hp-regulator-flow-rate
+ 60
+
+ simulation/channel-dt
+
+
+
+
+
+ 0.0
+ 2183.0
+
+
+
+
+
+
+ 58.58145
+
+ /systems/oxygen/cockpit-oxygen/cockpit-bottle-L
+ 0.4512568
+
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/cockpit-bottle-L
+
+ 0 0
+ 500 200
+ 1000 275
+ 2000 300
+ 2183 300
+
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/supply-valve
+
+ /systems/oxygen/cockpit-oxygen/distributor-manifold-L
+
+ 0 300
+ 14.5 170
+ 15 0
+
+
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/bottle-flow-rate
+ /systems/oxygen/cockpit-oxygen/supply-valve
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/mask-1-flow-rate
+ /systems/oxygen/cockpit-oxygen/mask-2-flow-rate
+ /systems/oxygen/cockpit-oxygen/mask-3-flow-rate
+ /systems/oxygen/cockpit-oxygen/mask-4-flow-rate
+ /systems/oxygen/cockpit-oxygen/distributor-fill-rate
+
+
+
+ 0.0
+ /systems/oxygen/cockpit-oxygen/hp-regulator-flow-rate-calc
+
+
+
+
+
+
+
+ -/systems/oxygen/cockpit-oxygen/mask-1-flow-rate
+ -/systems/oxygen/cockpit-oxygen/mask-2-flow-rate
+ -/systems/oxygen/cockpit-oxygen/mask-3-flow-rate
+ -/systems/oxygen/cockpit-oxygen/mask-4-flow-rate
+ /systems/oxygen/cockpit-oxygen/hp-regulator-flow-rate
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/distributor-manifold-L
+
+
+ /systems/oxygen/cockpit-oxygen/distributor-manifold-rate
+ 60
+
+ simulation/channel-dt
+
+
+
+
+
+ 0.0
+ 15.0
+
+
+
+
+
+
+ 75
+
+
+ /systems/oxygen/cockpit-oxygen/distributor-manifold-L
+ 1
+
+
+
+
+
+
+
+
+
+ /systems/oxygen/cockpit-oxygen/distributor-psi lt 50
+
+
+
+
+
+
+
+
+
+