From d0c6ab8e2dfb569a0619a3d808e01a637083c7b8 Mon Sep 17 00:00:00 2001 From: Jonathan Redpath Date: Mon, 12 Dec 2016 18:02:51 +0000 Subject: [PATCH] LGCIU failure system --- Nasal/LGCIU.nas | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/Nasal/LGCIU.nas b/Nasal/LGCIU.nas index 64713f46..5a9d36d8 100644 --- a/Nasal/LGCIU.nas +++ b/Nasal/LGCIU.nas @@ -24,6 +24,7 @@ var lgciu_one_init = func { setprop("/controls/lgciu[0]/inuse",1); #the LGCIUs switch between eachother on each gear cycle. eg if one LGCIU fails put the gear down and bring them up again to reset setprop("/controls/lgciu[0]/hasbeenret",0); #has the gear been retracted with LGCIU1? setprop("/controls/lgciu[0]/fail",0); #0 = no 1 = yes + setprop("/controls/lgciu[0]/emermanext",0); #0 = no 1 = extended can only be retracted if green hyd is available } var lgciu_two_init = func { @@ -48,6 +49,7 @@ var lgciu_two_init = func { setprop("/controls/lgciu[1]/inuse",0); #the LGCIUs switch between eachother on each gear cycle. eg if one LGCIU fails put the gear down and bring them up again to reset setprop("/controls/lgciu[1]/hasbeenret",0); #has the gear been retracted with LGCIU2? setprop("/controls/lgciu[1]/fail",0); #0 = no 1 = yes + setprop("/controls/lgciu[1]/emermanext",0); #0 = no 1 = extended can only be retracted if green hyd is available } @@ -161,11 +163,13 @@ if ((inuse1 == 1) and (isgearupordown == 0) and (hydsupp == 1)) { setprop("/controls/lgciu[0]/hasbeenret",1); #we have put gear up on lgciu no 1 setprop("/controls/lgciu[0]/inuse",1); #we want to keep active LGCIU on no 1 setprop("/controls/lgciu[0]/gearlever",0); #0 = retracted, 1 = extended +setprop("/controls/lgciu[1]/gearlever",0); #0 = retracted, 1 = extended } else { if ((inuse2 == 1) and (isgearupordown == 0) and (hydsupp == 1)) { setprop("/controls/lgciu[1]/hasbeenret",1); #we have put gear up on lgciu no 2 setprop("/controls/lgciu[1]/inuse",1); #we want to keep active LGCIU on no 2 +setprop("/controls/lgciu[0]/gearlever",0); #0 = retracted, 1 = extended setprop("/controls/lgciu[1]/gearlever",0); #0 = retracted, 1 = extended } else { } @@ -180,19 +184,53 @@ var hasbeen1 = getprop("/controls/lgciu[0]/hasbeenret"); var hasbeen2 = getprop("/controls/lgciu[1]/hasbeenret"); var isgearupordown = getprop("/controls/gear/gear-down"); var hydsupp = getprop("/controls/lgciu[0]/hyd/greensupply"); +var no1fail = getprop("/controls/lgciu[0]/fail"); +var no2fail = getprop("/controls/lgciu[1]/fail"); if ((inuse1 == 1) and (isgearupordown == 1) and (hasbeen1 == 1) and (hydsupp == 1)) { setprop("/controls/lgciu[0]/hasbeenret",0); #reset retraction sensor setprop("/controls/lgciu[0]/inuse",0); #we want to switch to no 2 after putting the gear down setprop("/controls/lgciu[1]/inuse",1); setprop("/controls/lgciu[0]/gearlever",1); #0 = retracted, 1 = extended -} else { -if ((inuse2 == 1) and (isgearupordown == 1) and (hasbeen2 == 1) and (hydsupp == 1)) { +setprop("/controls/lgciu[1]/gearlever",1); #0 = retracted, 1 = extended +} else if ((inuse2 == 1) and (isgearupordown == 1) and (hasbeen2 == 1) and (hydsupp == 1)) { setprop("/controls/lgciu[1]/hasbeenret",0); #reset retraction sensor setprop("/controls/lgciu[0]/inuse",1); #we want to switch to no 1 after putting the gear down setprop("/controls/lgciu[1]/inuse",0); +setprop("/controls/lgciu[0]/gearlever",1); #0 = retracted, 1 = extended +setprop("/controls/lgciu[1]/gearlever",1); #0 = retracted, 1 = extended +} else if ((inuse1 == 1) and isgearupordown == 1) and (hasbeen1 == 1) and (hydsupp ==1) and (no2fail == 1) { +setprop("/controls/lgciu[0]/hasbeenret",0); #reset retraction sensor +setprop("/controls/lgciu[0]/inuse",1); #we want to switch to no 2 after putting the gear down but we cant because it is failed +setprop("/controls/lgciu[1]/inuse",0); +setprop("/controls/lgciu[0]/gearlever",1); #0 = retracted, 1 = extended +setprop("/controls/lgciu[1]/gearlever",1); #0 = retracted, 1 = extended +} else if ((inuse1 == 2) and isgearupordown == 1) and (hasbeen2 == 1) and (hydsupp ==1) and (no1fail == 1) { +setprop("/controls/lgciu[0]/hasbeenret",0); #reset retraction sensor +setprop("/controls/lgciu[1]/inuse",1); #we want to switch to no 1 after putting the gear down but we cant because it is failed +setprop("/controls/lgciu[0]/inuse",0); +setprop("/controls/lgciu[0]/gearlever",1); #0 = retracted, 1 = extended setprop("/controls/lgciu[1]/gearlever",1); #0 = retracted, 1 = extended -} else { -} } }); +# No 1 failed +setlistener("/controls/lgciu[0]/fail", func { +var no1fail = getprop("/controls/lgciu[0]/fail"); +if (no1fail == 1) { +setprop("/controls/lgciu[0]/inuse",0); +setprop("/controls/lgciu[1]/inuse",1); +} else { +print("LGCIU No 1... Serviceable!"); +} +}); + +# No 2 failed +setlistener("/controls/lgciu[1]/fail", func { +var no2fail = getprop("/controls/lgciu[1]/fail"); +if (no2fail == 1) { +setprop("/controls/lgciu[1]/inuse",0); +setprop("/controls/lgciu[0]/inuse",1); +} else { +print("LGCIU No 2... Serviceable!"); +} +});