1
0
Fork 0

Add improved dual failure

This commit is contained in:
Jonathan Redpath 2021-11-24 18:54:29 +00:00
parent 1799bfe630
commit d5959f0329
2 changed files with 50 additions and 23 deletions

View file

@ -3,7 +3,7 @@
# props.nas:
var dualFailNode = props.globals.initNode("/ECAM/dual-failure-enabled", 0, "BOOL");
var dualFailNode = props.globals.initNode("/ECAM/warnings/logic/eng/dual-failure", 0, "BOOL");
var apWarn = props.globals.getNode("/it-autoflight/output/ap-warning", 1);
var athrWarn = props.globals.getNode("/it-autoflight/output/athr-warning", 1);
@ -3642,19 +3642,3 @@ var messages_right_memo = func {
adirs_switch.active = 0;
}
}
setlistener("/engines/engine[0]/state", func() {
if ((state1Node.getValue() != 3 and state2Node.getValue() != 3) and !pts.Fdm.JSBsim.Position.wow.getBoolValue()) {
dualFailNode.setBoolValue(1);
} else {
dualFailNode.setBoolValue(0);
}
}, 0, 0);
setlistener("/engines/engine[1]/state", func() {
if ((state1Node.getValue() != 3 and state2Node.getValue() != 3) and !pts.Fdm.JSBsim.Position.wow.getBoolValue()) {
dualFailNode.setBoolValue(1);
} else {
dualFailNode.setBoolValue(0);
}
}, 0, 0);

View file

@ -1823,7 +1823,7 @@
<default value="0"/>
<test logic="AND" value="1">
/ECAM/timer/ground-calc eq 0
/ECAM/dual-failure-enabled eq 0
/ECAM/warnings/logic/eng/dual-failure eq 0
<test logic="OR">
<test logic="AND">
<test logic="OR">
@ -1870,7 +1870,7 @@
<default value="0"/>
<test logic="AND" value="1">
/ECAM/timer/ground-calc eq 0
/ECAM/dual-failure-enabled eq 0
/ECAM/warnings/logic/eng/dual-failure eq 0
<test logic="OR">
<test logic="AND">
<test logic="OR">
@ -2752,6 +2752,49 @@
</test>
</switch>
<switch name="/ECAM/warnings/logic/eng/dual-failure-5-sec-input">
<default value="0"/>
<test logic="AND" value="1">
/engines/engine[0]/n2-actual lt 59.4
/engines/engine[1]/n2-actual lt 59.4
</test>
</switch>
<actuator name="/ECAM/warnings/logic/eng/dual-failure-5-sec">
<input>/ECAM/warnings/logic/eng/dual-failure-5-sec-input</input>
<rate_limit sense="incr">0.5</rate_limit>
<rate_limit sense="decr">100</rate_limit>
</actuator>
<actuator name="/ECAM/warnings/logic/eng/eng-1-fire-btn-timer">
<input>/controls/engines/engine[1]/fire-btn</input>
<rate_limit sense="incr">0.1</rate_limit>
<rate_limit sense="decr">1.0</rate_limit>
</actuator>
<switch name="/ECAM/warnings/logic/eng/dual-failure">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/timer/ground-calc eq 0
<test logic="OR">
/ECAM/warnings/logic/eng/eng-1-fire-btn-timer eq 1
/controls/engines/engine[1]/fire-btn eq 0
</test>
<test logic="OR">
<test logic="AND">
/controls/engines/engine[0]/fire-btn eq 1
/controls/engines/engine[1]/fire-btn eq 1
</test>
<test logic="AND">
/controls/engines/engine[0]/cutoff-switch eq 1
/controls/engines/engine[1]/cutoff-switch eq 1
</test>
/ECAM/warnings/logic/eng/dual-failure-5-sec eq 1
</test>
</test>
</switch>
<switch name="/ECAM/warnings/logic/eng/eng-1-fail-cond-set-input">
<default value="0"/>
<test logic="OR" value="1">
@ -2818,7 +2861,7 @@
<default value="0"/>
<test logic="OR" value="1">
/engines/engine[0]/n2-actual ge 59.4
/ECAM/dual-failure-enabled eq 1
/ECAM/warnings/logic/eng/dual-failure eq 1
</test>
</switch>
@ -2826,7 +2869,7 @@
<default value="0"/>
<test logic="OR" value="1">
/engines/engine[1]/n2-actual ge 59.4
/ECAM/dual-failure-enabled eq 1
/ECAM/warnings/logic/eng/dual-failure eq 1
</test>
</switch>
@ -2891,7 +2934,7 @@
<default value="0"/>
<test logic="AND" value="1">
/ECAM/phases/timer/acconfig-running eq 0
/ECAM/dual-failure-enabled eq 0
/ECAM/warnings/logic/eng/dual-failure eq 0
<test logic="OR">
<test logic="AND">
<test logic="OR">
@ -2912,7 +2955,7 @@
<default value="0"/>
<test logic="AND" value="1">
/ECAM/phases/timer/acconfig-running eq 0
/ECAM/dual-failure-enabled eq 0
/ECAM/warnings/logic/eng/dual-failure eq 0
<test logic="OR">
<test logic="AND">
<test logic="OR">