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