1
0
Fork 0

Fix displays on power transient

This commit is contained in:
legoboyvdlp R 2021-07-28 12:22:48 +01:00
parent f7703c0ea4
commit a4c4b37b07
5 changed files with 156 additions and 116 deletions

View file

@ -223,7 +223,7 @@ var canvas_IESI = {
iesi_init.setBoolValue(0);
me._transientVar = 0;
}
}, 0.2);
}, 0.2); # 200ms delay power transients
}
}

View file

@ -38,28 +38,38 @@ var canvas_lowerECAM_base =
getKeysTest: func() {
return ["Test_white","Test_text"];
},
off: 0,
on: 0,
powerTransient: func() {
if (systems.ELEC.Bus.ac2.getValue() >= 110) {
if (du4_offtime.getValue() + 3 < pts.Sim.Time.elapsedSec.getValue()) {
if (pts.Gear.wow[0].getValue()) {
if (!acconfig.getBoolValue() and !du4_test.getBoolValue()) {
if (!me.on) {
if (du4_offtime.getValue() + 3 < pts.Sim.Time.elapsedSec.getValue()) {
if (pts.Gear.wow[0].getValue()) {
if (!acconfig.getBoolValue() and !du4_test.getBoolValue()) {
du4_test.setValue(1);
du4_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du4_test_time.setValue(pts.Sim.Time.elapsedSec.getValue());
} else if (acconfig.getBoolValue() and !du4_test.getBoolValue()) {
du4_test.setValue(1);
du4_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du4_test_time.setValue(pts.Sim.Time.elapsedSec.getValue() - 30);
}
} else {
du4_test.setValue(1);
du4_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du4_test_time.setValue(pts.Sim.Time.elapsedSec.getValue());
} else if (acconfig.getBoolValue() and !du4_test.getBoolValue()) {
du4_test.setValue(1);
du4_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du4_test_time.setValue(pts.Sim.Time.elapsedSec.getValue() - 30);
du4_test_amount.setValue(0);
du4_test_time.setValue(-100);
}
} else {
du4_test.setValue(1);
du4_test_amount.setValue(0);
du4_test_time.setValue(-100);
}
me.off = 0;
me.on = 1;
}
} else {
du4_test.setValue(0);
du4_offtime.setValue(pts.Sim.Time.elapsedSec.getValue());
if (!me.off) {
du4_test.setValue(0);
du4_offtime.setValue(pts.Sim.Time.elapsedSec.getValue());
me.off = 1;
me.on = 0;
}
}
},
# Due to weirdness of the parents hash / me reference

View file

@ -87,62 +87,74 @@ var canvas_nd_base = {
getKeys: func() {
return [];
},
du2OffTimer: 0,
off2: 0,
on2: 0,
updateDu2: func() {
var elapsedtime = getprop("sim/time/elapsed-sec");
if (getprop("systems/electrical/bus/ac-ess-shed") >= 110) {
if (du2_offtime.getValue() + 3 < elapsedtime) {
if (wow0.getValue() == 1) {
if (getprop("systems/acconfig/autoconfig-running") != 1 and du2_test.getValue() != 1) {
if (!me.on2) {
if (du2_offtime.getValue() + 3 < elapsedtime) {
if (wow0.getValue() == 1) {
if (getprop("systems/acconfig/autoconfig-running") != 1 and du2_test.getValue() != 1) {
du2_test.setValue(1);
du2_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du2_test_time.setValue(getprop("sim/time/elapsed-sec"));
} else if (getprop("systems/acconfig/autoconfig-running") == 1 and du2_test.getValue() != 1) {
du2_test.setValue(1);
du2_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du2_test_time.setValue(getprop("sim/time/elapsed-sec") - 30);
}
} else {
du2_test.setValue(1);
du2_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du2_test_time.setValue(getprop("sim/time/elapsed-sec"));
} else if (getprop("systems/acconfig/autoconfig-running") == 1 and du2_test.getValue() != 1) {
du2_test.setValue(1);
du2_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du2_test_time.setValue(getprop("sim/time/elapsed-sec") - 30);
du2_test_amount.setValue(0);
du2_test_time.setValue(-100);
}
} else {
du2_test.setValue(1);
du2_test_amount.setValue(0);
du2_test_time.setValue(-100);
}
me.off2 = 0;
me.on2 = 1;
}
} else {
if (!me.off2) {
du2_test.setValue(0);
du2_offtime.setValue(elapsedtime);
me.off2 = 1;
me.on2 = 0;
}
me.du2OffTimer = 0;
du2_offtime.setValue(0);
} elsif (me.du2OffTimer == 0) {
du2_test.setValue(0);
me.du2OffTimer = 1;
du2_offtime.setValue(elapsedtime);
}
},
du5OffTimer: 0,
off: 0,
on: 0,
updateDu5: func() {
var elapsedtime = getprop("sim/time/elapsed-sec");
if (getprop("systems/electrical/bus/ac-2") >= 110) {
if (du5_offtime.getValue() + 3 < elapsedtime) {
if (wow0.getValue() == 1) {
if (getprop("systems/acconfig/autoconfig-running") != 1 and du5_test.getValue() != 1) {
if (!me.on) {
if (du5_offtime.getValue() + 3 < elapsedtime) {
if (wow0.getValue() == 1) {
if (getprop("systems/acconfig/autoconfig-running") != 1 and du5_test.getValue() != 1) {
du5_test.setValue(1);
du5_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du5_test_time.setValue(getprop("sim/time/elapsed-sec"));
} else if (getprop("systems/acconfig/autoconfig-running") == 1 and du5_test.getValue() != 1) {
du5_test.setValue(1);
du5_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du5_test_time.setValue(getprop("sim/time/elapsed-sec") - 30);
}
} else {
du5_test.setValue(1);
du5_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du5_test_time.setValue(getprop("sim/time/elapsed-sec"));
} else if (getprop("systems/acconfig/autoconfig-running") == 1 and du5_test.getValue() != 1) {
du5_test.setValue(1);
du5_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du5_test_time.setValue(getprop("sim/time/elapsed-sec") - 30);
du5_test_amount.setValue(0);
du5_test_time.setValue(-100);
}
} else {
du5_test.setValue(1);
du5_test_amount.setValue(0);
du5_test_time.setValue(-100);
}
me.off = 0;
me.on = 1;
}
} else {
if (!me.off) {
du5_test.setValue(0);
du5_offtime.setValue(elapsedtime);
me.off = 1;
me.on = 0;
}
me.du5OffTimer = 0;
du5_offtime.setValue(0);
} elsif (me.du5OffTimer == 0) {
du5_test.setValue(0);
me.du5OffTimer = 1;
du5_offtime.setValue(elapsedtime);
}
},
update: func() {

View file

@ -223,62 +223,74 @@ var canvas_PFD_base = {
"HDG_one","HDG_two","HDG_three","HDG_four","HDG_five","HDG_six","HDG_seven","HDG_digit_L","HDG_digit_R","HDG_error","HDG_group","HDG_frame","TRK_pointer","machError","ilsError","ils_code","ils_freq","dme_dist","dme_dist_legend","ILS_HDG_R","ILS_HDG_L",
"ILS_right","ILS_left","outerMarker","middleMarker","innerMarker","v1_group","v1_text","vr_speed","F_target","S_target","FS_targets","flap_max","clean_speed","ground","ground_ref","FPV","spdLimError","vsFMArate"];
},
du1OffTimer: 0,
off: 0,
on: 0,
updateDu1: func() {
var elapsedtime_act = elapsedtime.getValue();
if (systems.ELEC.Bus.acEss.getValue() >= 110) {
if (du1_offtime.getValue() + 3 < elapsedtime_act) {
if (wow0.getValue() == 1) {
if (acconfig.getValue() != 1 and du1_test.getValue() != 1) {
if (!me.on) {
if (du1_offtime.getValue() + 3 < elapsedtime_act) {
if (wow0.getValue() == 1) {
if (acconfig.getValue() != 1 and du1_test.getValue() != 1) {
du1_test.setValue(1);
du1_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du1_test_time.setValue(elapsedtime_act);
} else if (acconfig.getValue() == 1 and du1_test.getValue() != 1) {
du1_test.setValue(1);
du1_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du1_test_time.setValue(elapsedtime_act - 30);
}
} else {
du1_test.setValue(1);
du1_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du1_test_time.setValue(elapsedtime_act);
} else if (acconfig.getValue() == 1 and du1_test.getValue() != 1) {
du1_test.setValue(1);
du1_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du1_test_time.setValue(elapsedtime_act - 30);
du1_test_amount.setValue(0);
du1_test_time.setValue(-100);
}
} else {
du1_test.setValue(1);
du1_test_amount.setValue(0);
du1_test_time.setValue(-100);
}
me.off = 0;
me.on = 1;
}
} else {
if (!me.off) {
du1_test.setValue(0);
du1_offtime.setValue(elapsedtime_act);
me.off = 1;
me.on = 0;
}
me.du1OffTimer = 0;
du1_offtime.setValue(0);
} elsif (me.du1OffTimer == 0) {
du1_test.setValue(0);
me.du1OffTimer = 1;
du1_offtime.setValue(elapsedtime_act);
}
},
du6OffTimer: 0,
off6: 0,
on6: 0,
updateDu6: func() {
var elapsedtime_act = elapsedtime.getValue();
if (systems.ELEC.Bus.ac2.getValue() >= 110) {
if (du6_offtime.getValue() + 3 < elapsedtime_act) {
if (wow0.getValue() == 1) {
if (acconfig.getValue() != 1 and du6_test.getValue() != 1) {
if (!me.on6) {
if (du6_offtime.getValue() + 3 < elapsedtime_act) {
if (wow0.getValue() == 1) {
if (acconfig.getValue() != 1 and du6_test.getValue() != 1) {
du6_test.setValue(1);
du6_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du6_test_time.setValue(elapsedtime_act);
} else if (acconfig.getValue() == 1 and du6_test.getValue() != 1) {
du6_test.setValue(1);
du6_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du6_test_time.setValue(elapsedtime_act - 30);
}
} else {
du6_test.setValue(1);
du6_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du6_test_time.setValue(elapsedtime_act);
} else if (acconfig.getValue() == 1 and du6_test.getValue() != 1) {
du6_test.setValue(1);
du6_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du6_test_time.setValue(elapsedtime_act - 30);
du6_test_amount.setValue(0);
du6_test_time.setValue(-100);
}
} else {
du6_test.setValue(1);
du6_test_amount.setValue(0);
du6_test_time.setValue(-100);
}
me.off6 = 0;
me.on6 = 1;
}
} else {
if (!me.off6) {
du6_test.setValue(0);
du6_offtime.setValue(elapsedtime_act);
me.off6 = 1;
me.on6 = 0;
}
me.du6OffTimer = 0;
du6_offtime.setValue(0);
} elsif (me.du6OffTimer == 0) {
du6_test.setValue(0);
me.du6OffTimer = 1;
du6_offtime.setValue(elapsedtime_act);
}
},
update: func() {

View file

@ -913,32 +913,38 @@ var canvas_upperECAM = {
me["Test_text"].show();
}
},
du3OffTimer: 0,
off: 0,
on: 0,
powerTransient: func() {
if (systems.ELEC.Bus.acEss.getValue() >= 110) {
if (du3_offtime.getValue() + 3 < pts.Sim.Time.elapsedSec.getValue()) {
if (pts.Gear.wow[0].getValue()) {
if (!acconfig.getBoolValue() and !du3_test.getBoolValue()) {
if (!me.on) {
if (du3_offtime.getValue() + 3 < pts.Sim.Time.elapsedSec.getValue()) {
if (pts.Gear.wow[0].getValue()) {
if (!acconfig.getBoolValue() and !du3_test.getBoolValue()) {
du3_test.setValue(1);
du3_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du3_test_time.setValue(pts.Sim.Time.elapsedSec.getValue());
} else if (acconfig.getBoolValue() and !du3_test.getBoolValue()) {
du3_test.setValue(1);
du3_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du3_test_time.setValue(pts.Sim.Time.elapsedSec.getValue() - 30);
}
} else {
du3_test.setValue(1);
du3_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du3_test_time.setValue(pts.Sim.Time.elapsedSec.getValue());
} else if (acconfig.getBoolValue() and !du3_test.getBoolValue()) {
du3_test.setValue(1);
du3_test_amount.setValue(math.round((rand() * 5 ) + 35, 0.1));
du3_test_time.setValue(pts.Sim.Time.elapsedSec.getValue() - 30);
du3_test_amount.setValue(0);
du3_test_time.setValue(-100);
}
} else {
du3_test.setValue(1);
du3_test_amount.setValue(0);
du3_test_time.setValue(-100);
}
me.off = 0;
me.on = 1;
}
} else {
if (!me.off) {
du3_test.setValue(0);
du3_offtime.setValue(pts.Sim.Time.elapsedSec.getValue());
me.off = 1;
me.on = 0;
}
me.du3OffTimer = 0;
du3_offtime.setValue(0);
} elsif (me.du3OffTimer == 0) {
du3_test.setValue(0);
me.du3OffTimer = 1;
du3_offtime.setValue(pts.Sim.Time.elapsedSec.getValue());
}
},
updatePower: func() {