diff --git a/A320-main.xml b/A320-main.xml
index ef035108..4a72d646 100644
--- a/A320-main.xml
+++ b/A320-main.xml
@@ -1284,6 +1284,7 @@
0
0
0
+ 0
0
0
diff --git a/AircraftConfig/fail.xml b/AircraftConfig/fail.xml
index 7ce0a7f3..cfbe5caa 100644
--- a/AircraftConfig/fail.xml
+++ b/AircraftConfig/fail.xml
@@ -144,6 +144,16 @@
true
+
+
+ left
+ /systems/failures/fctl/ths-jam
+
+ dialog-apply
+
+ true
+
+
left
diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas
index 6ff69ac3..19a0e054 100644
--- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas
+++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas
@@ -1951,7 +1951,7 @@ var canvas_lowerECAM_fctl = {
return["TAT","SAT","GW","UTCh","UTCm","GW-weight-unit","ailL","ailR","elevL","elevR","PTcc","PT","PTupdn","elac1","elac2","sec1","sec2","sec3","ailLblue","ailRblue","elevLblue","elevRblue","rudderblue","ailLgreen","ailRgreen","elevLgreen","ruddergreen","PTgreen",
"elevRyellow","rudderyellow","PTyellow","rudder","spdbrkblue","spdbrkgreen","spdbrkyellow","spoiler1Rex","spoiler1Rrt","spoiler2Rex","spoiler2Rrt","spoiler3Rex","spoiler3Rrt","spoiler4Rex","spoiler4Rrt","spoiler5Rex","spoiler5Rrt","spoiler1Lex",
"spoiler1Lrt","spoiler2Lex","spoiler2Lrt","spoiler3Lex","spoiler3Lrt","spoiler4Lex","spoiler4Lrt","spoiler5Lex","spoiler5Lrt","spoiler1Rf","spoiler2Rf","spoiler3Rf","spoiler4Rf","spoiler5Rf","spoiler1Lf","spoiler2Lf","spoiler3Lf","spoiler4Lf",
- "spoiler5Lf","ailLscale","ailRscale","path4249","path4249-3","path4249-3-6-7","path4249-3-6-7-5","path4249-3-6"];
+ "spoiler5Lf","ailLscale","ailRscale","path4249","path4249-3","path4249-3-6-7","path4249-3-6-7-5","path4249-3-6","text4343"];
},
update: func() {
blue_psi = systems.HYD.Psi.blue.getValue();
@@ -1976,6 +1976,12 @@ var canvas_lowerECAM_fctl = {
me["PTupdn"].setColor(0.0509,0.7529,0.2941);
me["PTcc"].setColor(0.0509,0.7529,0.2941);
}
+
+ if (fbw.FBW.Failures.ths.getBoolValue()) {
+ me["text4343"].setColor(0.7333,0.3803,0);
+ } else {
+ me["text4343"].setColor(0.8078,0.8039,0.8078);
+ }
# Ailerons
me["ailL"].setTranslation(0, aileron_ind_left.getValue() * 100);
@@ -1997,13 +2003,13 @@ var canvas_lowerECAM_fctl = {
me["elevL"].setTranslation(0, elevator_ind_left.getValue() * 100);
me["elevR"].setTranslation(0, elevator_ind_right.getValue() * 100);
- if (blue_psi < 1500 and green_psi < 1500) {
+ if ((blue_psi < 1500 or (!fbw.FBW.Computers.elac1.getValue() and !fbw.FBW.Computers.sec1.getValue())) and (green_psi < 1500 or (!fbw.FBW.Computers.elac2.getValue() and !fbw.FBW.Computers.sec2.getValue()))) {
me["elevL"].setColor(0.7333,0.3803,0);
} else {
me["elevL"].setColor(0.0509,0.7529,0.2941);
}
- if (blue_psi < 1500 and yellow_psi < 1500) {
+ if ((blue_psi < 1500 or (!fbw.FBW.Computers.elac1.getValue() and !fbw.FBW.Computers.sec1.getValue())) and (yellow_psi < 1500 or (!fbw.FBW.Computers.elac2.getValue() and !fbw.FBW.Computers.sec2.getValue()))) {
me["elevR"].setColor(0.7333,0.3803,0);
} else {
me["elevR"].setColor(0.0509,0.7529,0.2941);
@@ -2288,16 +2294,22 @@ var canvas_lowerECAM_fctl = {
} else {
me["ailLblue"].setColor(0.7333,0.3803,0);
}
+ if (fbw.FBW.Computers.elac1.getValue() or fbw.FBW.Computers.sec1.getValue()) {
+ me["elevLblue"].setColor(0.0509,0.7529,0.2941);
+ me["elevRblue"].setColor(0.0509,0.7529,0.2941);
+ } else {
+ me["elevLblue"].setColor(0.7333,0.3803,0);
+ me["elevRblue"].setColor(0.7333,0.3803,0);
+ }
if (fbw.FBW.Computers.elac2.getValue()) {
me["ailRblue"].setColor(0.0509,0.7529,0.2941);
} else {
me["ailRblue"].setColor(0.7333,0.3803,0);
}
- me["elevLblue"].setColor(0.0509,0.7529,0.2941);
- me["elevRblue"].setColor(0.0509,0.7529,0.2941);
me["rudderblue"].setColor(0.0509,0.7529,0.2941);
me["spdbrkblue"].setColor(0.0509,0.7529,0.2941);
} else {
+ me["ailLblue"].setColor(0.7333,0.3803,0);
me["ailRblue"].setColor(0.7333,0.3803,0);
me["elevLblue"].setColor(0.7333,0.3803,0);
me["elevRblue"].setColor(0.7333,0.3803,0);
@@ -2306,6 +2318,12 @@ var canvas_lowerECAM_fctl = {
}
if (green_psi >= 1500) {
+ if (fbw.FBW.Computers.elac2.getValue() or fbw.FBW.Computers.sec2.getValue()) {
+ me["elevLgreen"].setColor(0.0509,0.7529,0.2941);
+ } else {
+ me["elevLgreen"].setColor(0.7333,0.3803,0);
+ }
+
if (fbw.FBW.Computers.elac2.getValue()) {
me["ailLgreen"].setColor(0.0509,0.7529,0.2941);
} else {
@@ -2316,7 +2334,6 @@ var canvas_lowerECAM_fctl = {
} else {
me["ailRgreen"].setColor(0.7333,0.3803,0);
}
- me["elevLgreen"].setColor(0.0509,0.7529,0.2941);
me["ruddergreen"].setColor(0.0509,0.7529,0.2941);
me["PTgreen"].setColor(0.0509,0.7529,0.2941);
me["spdbrkgreen"].setColor(0.0509,0.7529,0.2941);
@@ -2330,7 +2347,11 @@ var canvas_lowerECAM_fctl = {
}
if (yellow_psi >= 1500) {
- me["elevRyellow"].setColor(0.0509,0.7529,0.2941);
+ if (fbw.FBW.Computers.elac2.getValue() or fbw.FBW.Computers.sec2.getValue()) {
+ me["elevRyellow"].setColor(0.0509,0.7529,0.2941);
+ } else {
+ me["elevRyellow"].setColor(0.7333,0.3803,0);
+ }
me["rudderyellow"].setColor(0.0509,0.7529,0.2941);
me["PTyellow"].setColor(0.0509,0.7529,0.2941);
me["spdbrkyellow"].setColor(0.0509,0.7529,0.2941);
diff --git a/Nasal/FBW/it-fbw.nas b/Nasal/FBW/it-fbw.nas
index 0ae8347d..c150d965 100644
--- a/Nasal/FBW/it-fbw.nas
+++ b/Nasal/FBW/it-fbw.nas
@@ -64,6 +64,7 @@ var FBW = {
sec3: props.globals.getNode("/systems/failures/fctl/sec3"),
fac1: props.globals.getNode("/systems/failures/fctl/fac1"),
fac2: props.globals.getNode("/systems/failures/fctl/fac2"),
+ ths: props.globals.getNode("/systems/failures/fctl/ths-jam"),
spoilerl1: props.globals.getNode("/systems/failures/spoilers/spoiler-l1"),
spoilerl2: props.globals.getNode("/systems/failures/spoilers/spoiler-l2"),
spoilerl3: props.globals.getNode("/systems/failures/spoilers/spoiler-l3"),
@@ -143,6 +144,7 @@ var FBW = {
me.Failures.sec3.setBoolValue(0);
me.Failures.fac1.setBoolValue(0);
me.Failures.fac2.setBoolValue(0);
+ me.Failures.ths.setBoolValue(0);
me.Failures.spoilerl1.setBoolValue(0);
me.Failures.spoilerl2.setBoolValue(0);
me.Failures.spoilerl3.setBoolValue(0);
diff --git a/Systems/a320-fcs.xml b/Systems/a320-fcs.xml
index 9866be77..76bd273b 100644
--- a/Systems/a320-fcs.xml
+++ b/Systems/a320-fcs.xml
@@ -241,16 +241,42 @@
- /systems/hydraulic/green-psi ge 1500
- /systems/hydraulic/blue-psi ge 1500
+
+
+ /systems/fctl/elac1 eq 1
+ /systems/fctl/sec1 eq 1
+
+ /systems/hydraulic/blue-psi ge 1500
+
+
+
+ /systems/fctl/elac2 eq 1
+ /systems/fctl/sec2 eq 1
+
+ /systems/hydraulic/green-psi ge 1500
+
+
+
+ /systems/hydraulic/blue-psi ge 1500
+ /systems/hydraulic/green-psi ge 1500
+
+ /systems/failures/elevator-left eq 0
+
+ /systems/fctl/elac1 eq 0
+ /systems/fctl/sec1 eq 0
+ /systems/fctl/elac2 eq 0
+ /systems/fctl/sec2 eq 0
+
+
hydraulics/elevator-l/pressure-switch-or eq 1
/systems/failures/elevator-left eq 0
+ /it-fbw/law ne 3
-1.0
@@ -281,16 +307,42 @@
- /systems/hydraulic/yellow-psi ge 1500
- /systems/hydraulic/blue-psi ge 1500
+
+
+ /systems/fctl/elac1 eq 1
+ /systems/fctl/sec1 eq 1
+
+ /systems/hydraulic/blue-psi ge 1500
+
+
+
+ /systems/fctl/elac2 eq 1
+ /systems/fctl/sec2 eq 1
+
+ /systems/hydraulic/yellow-psi ge 1500
+
+
+
+ /systems/hydraulic/blue-psi ge 1500
+ /systems/hydraulic/yellow-psi ge 1500
+
+ /systems/failures/elevator-right eq 0
+
+ /systems/fctl/elac1 eq 0
+ /systems/fctl/sec1 eq 0
+ /systems/fctl/elac2 eq 0
+ /systems/fctl/sec2 eq 0
+
+
hydraulics/elevator-r/pressure-switch-or eq 1
/systems/failures/elevator-right eq 0
+ /it-fbw/law ne 3
-1.0
@@ -319,7 +371,10 @@
-
+
+
+ /systems/failures/fctl/ths-jam eq 1
+
/systems/hydraulic/yellow-psi ge 1500
/systems/hydraulic/green-psi ge 1500