1
0
Fork 0

Optimization

This commit is contained in:
legoboyvdlp R 2020-11-26 19:24:42 +00:00
parent d803796f6b
commit b75fbce2a1
3 changed files with 46 additions and 50 deletions

View file

@ -36,6 +36,10 @@ var tr2_v = 0;
var tr2_a = 0;
var essTramps = 0;
var essTrvolts = 0;
var elac1Node = 0;
var elac2Node = 0;
var sec1Node = 0;
var sec2Node = 0;
# Conversion factor pounds to kilogram
LBS2KGS = 0.4535924;
@ -1957,6 +1961,10 @@ var canvas_lowerECAM_fctl = {
blue_psi = systems.HYD.Psi.blue.getValue();
green_psi = systems.HYD.Psi.green.getValue();
yellow_psi = systems.HYD.Psi.yellow.getValue();
elac1Node = fbw.FBW.Computers.elac1.getValue();
elac2Node = fbw.FBW.Computers.elac2.getValue();
sec1Node = fbw.FBW.Computers.sec1.getValue();
sec2Node = fbw.FBW.Computers.sec2.getValue();
# Pitch Trim
me["PT"].setText(sprintf("%2.1f", math.round(elevator_trim_deg.getValue(), 0.1)));
@ -1987,13 +1995,13 @@ var canvas_lowerECAM_fctl = {
me["ailL"].setTranslation(0, aileron_ind_left.getValue() * 100);
me["ailR"].setTranslation(0, aileron_ind_right.getValue() * (-100));
if ((blue_psi < 1500 or !fbw.FBW.Computers.elac1.getValue()) and (green_psi < 1500 or !fbw.FBW.Computers.elac2.getValue())) {
if ((blue_psi < 1500 or !elac1Node) and (green_psi < 1500 or !elac2Node)) {
me["ailL"].setColor(0.7333,0.3803,0);
} else {
me["ailL"].setColor(0.0509,0.7529,0.2941);
}
if ((green_psi < 1500 or !fbw.FBW.Computers.elac1.getValue()) and (blue_psi < 1500 or !fbw.FBW.Computers.elac2.getValue())) {
if ((green_psi < 1500 or !elac1Node) and (blue_psi < 1500 or !elac2Node)) {
me["ailR"].setColor(0.7333,0.3803,0);
} else {
me["ailR"].setColor(0.0509,0.7529,0.2941);
@ -2003,13 +2011,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 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()))) {
if ((blue_psi < 1500 or (!elac1Node and !sec1Node)) and (green_psi < 1500 or (!elac2Node and !sec2Node))) {
me["elevL"].setColor(0.7333,0.3803,0);
} else {
me["elevL"].setColor(0.0509,0.7529,0.2941);
}
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()))) {
if ((blue_psi < 1500 or (!elac1Node and !sec1Node)) and (yellow_psi < 1500 or (!elac2Node and !sec2Node))) {
me["elevR"].setColor(0.7333,0.3803,0);
} else {
me["elevR"].setColor(0.0509,0.7529,0.2941);
@ -2247,34 +2255,34 @@ var canvas_lowerECAM_fctl = {
}
# Flight Computers
if (fbw.FBW.Computers.elac1.getValue()) {
if (elac1Node) {
me["elac1"].setColor(0.0509,0.7529,0.2941);
me["path4249"].setColor(0.0509,0.7529,0.2941);
} else if (!fbw.FBW.Computers.elac1.getValue() or fbw.FBW.Failures.elac1.getValue()) {
} else if (!elac1Node or fbw.FBW.Failures.elac1.getValue()) {
me["elac1"].setColor(0.7333,0.3803,0);
me["path4249"].setColor(0.7333,0.3803,0);
}
if (fbw.FBW.Computers.elac2.getValue()) {
if (elac2Node) {
me["elac2"].setColor(0.0509,0.7529,0.2941);
me["path4249-3"].setColor(0.0509,0.7529,0.2941);
} else if (!fbw.FBW.Computers.elac2.getValue() or fbw.FBW.Failures.elac2.getValue()) {
} else if (!elac2Node or fbw.FBW.Failures.elac2.getValue()) {
me["elac2"].setColor(0.7333,0.3803,0);
me["path4249-3"].setColor(0.7333,0.3803,0);
}
if (fbw.FBW.Computers.sec1.getValue()) {
if (sec1Node) {
me["sec1"].setColor(0.0509,0.7529,0.2941);
me["path4249-3-6-7"].setColor(0.0509,0.7529,0.2941);
} else if (!fbw.FBW.Computers.sec1.getValue() or fbw.FBW.Failures.sec1.getValue()) {
} else if (!sec1Node or fbw.FBW.Failures.sec1.getValue()) {
me["sec1"].setColor(0.7333,0.3803,0);
me["path4249-3-6-7"].setColor(0.7333,0.3803,0);
}
if (fbw.FBW.Computers.sec2.getValue()) {
if (sec2Node) {
me["sec2"].setColor(0.0509,0.7529,0.2941);
me["path4249-3-6-7-5"].setColor(0.0509,0.7529,0.2941);
} else if (!fbw.FBW.Computers.sec2.getValue() or fbw.FBW.Failures.sec2.getValue()) {
} else if (!sec2Node or fbw.FBW.Failures.sec2.getValue()) {
me["sec2"].setColor(0.7333,0.3803,0);
me["path4249-3-6-7-5"].setColor(0.7333,0.3803,0);
}
@ -2289,19 +2297,19 @@ var canvas_lowerECAM_fctl = {
# Hydraulic Indicators
if (blue_psi >= 1500) {
if (fbw.FBW.Computers.elac1.getValue()) {
if (elac1Node) {
me["ailLblue"].setColor(0.0509,0.7529,0.2941);
} else {
me["ailLblue"].setColor(0.7333,0.3803,0);
}
if (fbw.FBW.Computers.elac1.getValue() or fbw.FBW.Computers.sec1.getValue()) {
if (elac1Node or sec1Node) {
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()) {
if (elac2Node) {
me["ailRblue"].setColor(0.0509,0.7529,0.2941);
} else {
me["ailRblue"].setColor(0.7333,0.3803,0);
@ -2318,18 +2326,18 @@ var canvas_lowerECAM_fctl = {
}
if (green_psi >= 1500) {
if (fbw.FBW.Computers.elac2.getValue() or fbw.FBW.Computers.sec2.getValue()) {
if (elac2Node or sec2Node) {
me["elevLgreen"].setColor(0.0509,0.7529,0.2941);
} else {
me["elevLgreen"].setColor(0.7333,0.3803,0);
}
if (fbw.FBW.Computers.elac2.getValue()) {
if (elac2Node) {
me["ailLgreen"].setColor(0.0509,0.7529,0.2941);
} else {
me["ailLgreen"].setColor(0.7333,0.3803,0);
}
if (fbw.FBW.Computers.elac1.getValue()) {
if (elac1Node) {
me["ailRgreen"].setColor(0.0509,0.7529,0.2941);
} else {
me["ailRgreen"].setColor(0.7333,0.3803,0);
@ -2347,7 +2355,7 @@ var canvas_lowerECAM_fctl = {
}
if (yellow_psi >= 1500) {
if (fbw.FBW.Computers.elac2.getValue() or fbw.FBW.Computers.sec2.getValue()) {
if (elac2Node or sec2Node) {
me["elevRyellow"].setColor(0.0509,0.7529,0.2941);
} else {
me["elevRyellow"].setColor(0.7333,0.3803,0);

View file

@ -72,6 +72,9 @@ var FWC = {
altChg: props.globals.getNode("/it-autoflight/input/alt-is-changing", 1),
};
var gnd = nil;
var gndTimer = nil;
var phaseLoop = func() {
if ((systems.ELEC.Bus.acEss.getValue() < 110 and systems.ELEC.Bus.ac2.getValue() < 110) or pts.Acconfig.running.getBoolValue()) { return; }
if (pts.Sim.Replay.replayActive.getBoolValue()) { return; }
@ -84,7 +87,8 @@ var phaseLoop = func() {
eng2n1 = pts.Engines.Engine.n1Actual[1].getValue();
master1 = pts.Controls.Engines.Engine.cutoffSw[0].getBoolValue();
master2 = pts.Controls.Engines.Engine.cutoffSw[1].getBoolValue();
gnd = FWC.Logic.gnd.getBoolValue();
gndTimer = FWC.Timer.gnd.getValue();
FWC.Flipflop.recallReset.setValue(0);
# Various things
@ -102,13 +106,13 @@ var phaseLoop = func() {
FWC.Flipflop.phase10Set.setBoolValue(0);
}
if (FWC.Timer.gnd.getValue() == 1 and pts.Controls.Engines.Engine.firePb[0].getBoolValue()) {
if (gndTimer == 1 and pts.Controls.Engines.Engine.firePb[0].getBoolValue()) {
FWC.Flipflop.phase10Reset.setBoolValue(1);
} else {
FWC.Flipflop.phase10Reset.setBoolValue(0);
}
if ((FWC.Logic.gnd.getBoolValue() and FWC.Timer.eng1and2Off.getValue() and myPhase == 9) and FWC.Flipflop.phase10Output.getBoolValue()) {
if ((gnd and FWC.Timer.eng1and2Off.getValue() and myPhase == 9) and FWC.Flipflop.phase10Output.getBoolValue()) {
FWC.Monostable.phase1.setBoolValue(1); # true for 300 sec then false
} else {
FWC.Monostable.phase1.setBoolValue(0);
@ -121,7 +125,7 @@ var phaseLoop = func() {
FWC.Flipflop.phase2Set.setBoolValue(0);
}
if (!FWC.Monostable.m80kt.getBoolValue() and myPhase != 9 and ((!FWC.Monostable.phase9Output.getBoolValue() and FWC.Timer.gnd.getValue() == 1) or (!FWC.Monostable.toPowerOutput.getBoolValue() and FWC.Timer.gnd.getValue() == 1))) {
if (!FWC.Monostable.m80kt.getBoolValue() and myPhase != 9 and ((!FWC.Monostable.phase9Output.getBoolValue() and gndTimer == 1) or (!FWC.Monostable.toPowerOutput.getBoolValue() and gndTimer == 1))) {
FWC.Flipflop.phase2Reset.setBoolValue(1);
} else {
FWC.Flipflop.phase2Reset.setBoolValue(0);
@ -130,33 +134,33 @@ var phaseLoop = func() {
gear_agl_cur = pts.Position.gearAglFt.getValue();
# Phase 5 monostable
if (FWC.toPower.getBoolValue() and (!FWC.Logic.feet1500.getBoolValue() and !FWC.Logic.gnd.getBoolValue() and FWC.Timer.gnd2Sec.getValue() != 1)) {
if (FWC.toPower.getBoolValue() and (!FWC.Logic.feet1500.getBoolValue() and !gnd and FWC.Timer.gnd2Sec.getValue() != 1)) {
FWC.Monostable.phase5.setBoolValue(1);
} else {
FWC.Monostable.phase5.setBoolValue(0);
}
# Phase 7 monostable
if (!FWC.toPower.getBoolValue() and !FWC.Logic.feet1500.getBoolValue() and !FWC.Logic.feet800.getBoolValue() and !FWC.Logic.gnd.getBoolValue() and FWC.Timer.gnd2Sec.getValue() != 1) {
if (!FWC.toPower.getBoolValue() and !FWC.Logic.feet1500.getBoolValue() and !FWC.Logic.feet800.getBoolValue() and !gnd and FWC.Timer.gnd2Sec.getValue() != 1) {
FWC.Monostable.phase7.setBoolValue(1);
} else {
FWC.Monostable.phase7.setBoolValue(0);
}
# Actual Phases
if ((FWC.Logic.gnd.getBoolValue() and FWC.Timer.eng1and2Off.getValue() and myPhase != 9) and !FWC.Monostable.phase1Output.getBoolValue()) {
if ((gnd and FWC.Timer.eng1and2Off.getValue() and myPhase != 9) and !FWC.Monostable.phase1Output.getBoolValue()) {
setPhase(1);
}
if (FWC.Timer.eng1or2Output.getBoolValue() and (FWC.Logic.gnd.getBoolValue() and !FWC.toPower.getBoolValue() and !FWC.speed80.getBoolValue()) and !FWC.Flipflop.phase2Output.getBoolValue()) {
if (FWC.Timer.eng1or2Output.getBoolValue() and (gnd and !FWC.toPower.getBoolValue() and !FWC.speed80.getBoolValue()) and !FWC.Flipflop.phase2Output.getBoolValue()) {
setPhase(2);
}
if (FWC.Timer.eng1or2Output.getBoolValue() and (FWC.Timer.gnd.getValue() == 1 and FWC.toPower.getBoolValue()) and !FWC.speed80.getBoolValue()) {
if (FWC.Timer.eng1or2Output.getBoolValue() and (gndTimer == 1 and FWC.toPower.getBoolValue()) and !FWC.speed80.getBoolValue()) {
setPhase(3);
}
if ((FWC.Timer.gnd.getValue() == 1 and FWC.toPower.getBoolValue()) and FWC.speed80.getBoolValue()) {
if ((gndTimer == 1 and FWC.toPower.getBoolValue()) and FWC.speed80.getBoolValue()) {
setPhase(4);
}
@ -164,7 +168,7 @@ var phaseLoop = func() {
setPhase(5);
}
if (!FWC.Logic.gnd.getValue() and FWC.Timer.gnd2SecHalf.getValue() != 1 and (!FWC.Monostable.phase5.getBoolValue() or !FWC.Monostable.phase5Output.getBoolValue()) and (!FWC.Monostable.phase7.getBoolValue() or !FWC.Monostable.phase7Output.getBoolValue())) {
if (!gnd and FWC.Timer.gnd2SecHalf.getValue() != 1 and (!FWC.Monostable.phase5.getBoolValue() or !FWC.Monostable.phase5Output.getBoolValue()) and (!FWC.Monostable.phase7.getBoolValue() or !FWC.Monostable.phase7Output.getBoolValue())) {
setPhase(6);
}
@ -172,15 +176,15 @@ var phaseLoop = func() {
setPhase(7);
}
if (!FWC.toPower.getBoolValue() and FWC.speed80.getBoolValue() and (FWC.Logic.gnd.getBoolValue() or FWC.Timer.gnd2Sec.getValue == 1)) {
if (!FWC.toPower.getBoolValue() and FWC.speed80.getBoolValue() and (gnd or FWC.Timer.gnd2Sec.getValue == 1)) {
setPhase(8);
}
if (FWC.Flipflop.phase2Output.getBoolValue() and (FWC.Logic.gnd.getBoolValue() and !FWC.toPower.getBoolValue() and !FWC.speed80.getBoolValue()) and FWC.Timer.eng1or2.getBoolValue()) {
if (FWC.Flipflop.phase2Output.getBoolValue() and (gnd and !FWC.toPower.getBoolValue() and !FWC.speed80.getBoolValue()) and FWC.Timer.eng1or2.getBoolValue()) {
setPhase(9);
}
if ((FWC.Logic.gnd.getBoolValue() and FWC.Timer.eng1and2Off.getValue() and myPhase == 9) and FWC.Monostable.phase1Output.getBoolValue()) {
if ((gnd and FWC.Timer.eng1and2Off.getValue() and myPhase == 9) and FWC.Monostable.phase1Output.getBoolValue()) {
setPhase(10);
}

View file

@ -30,23 +30,7 @@ var execLoop = func
emesary.GlobalTransmitter.NotifyAll(notifications.frameNotification);
notifications.frameNotification.FrameCount = notifications.frameNotification.FrameCount + 1;
if (notifications.frameNotification.frame_rate < 5) {
frame_inc = 0.25;#4 Hz
} elsif (notifications.frameNotification.frame_rate < 10) {
frame_inc = 0.125;#8 Hz
} elsif (notifications.frameNotification.frame_rate < 15) {
frame_inc = 0.10;#10 Hz
} elsif (notifications.frameNotification.frame_rate < 20) {
frame_inc = 0.075;#13.3 Hz
} elsif (notifications.frameNotification.frame_rate < 25) {
frame_inc = 0.05;#20 Hz
} elsif (notifications.frameNotification.frame_rate < 40) {
frame_inc = 0.0333;#30 Hz
} else {
frame_inc = 0.02;#50 Hz
}
frame_inc = 0.0333; #30 Hz
if (frame_inc != cur_frame_inc) {
cur_frame_inc = frame_inc;
}