Make the DUs consume power... property only for now, and various elec fixes
This commit is contained in:
parent
dae9c0c3fa
commit
d705366b0d
1 changed files with 73 additions and 4 deletions
|
@ -13,6 +13,9 @@ var dc_amps_std = 150;
|
||||||
var ac_hz_std = 400;
|
var ac_hz_std = 400;
|
||||||
var ac1_src = "XX";
|
var ac1_src = "XX";
|
||||||
var ac2_src = "XX";
|
var ac2_src = "XX";
|
||||||
|
var power_consumption = nil;
|
||||||
|
var screen_power_consumption = nil;
|
||||||
|
var screens = nil;
|
||||||
|
|
||||||
setlistener("/sim/signals/fdm-initialized", func {
|
setlistener("/sim/signals/fdm-initialized", func {
|
||||||
var galley_sw = getprop("/controls/electrical/switches/galley");
|
var galley_sw = getprop("/controls/electrical/switches/galley");
|
||||||
|
@ -37,6 +40,7 @@ setlistener("/sim/signals/fdm-initialized", func {
|
||||||
var ac1 = getprop("/systems/electrical/bus/ac1");
|
var ac1 = getprop("/systems/electrical/bus/ac1");
|
||||||
var ac2 = getprop("/systems/electrical/bus/ac2");
|
var ac2 = getprop("/systems/electrical/bus/ac2");
|
||||||
var ac_ess = getprop("/systems/electrical/bus/ac-ess");
|
var ac_ess = getprop("/systems/electrical/bus/ac-ess");
|
||||||
|
var ac_ess_shed = getprop("/systems/electrical/bus/ac-ess-shed");
|
||||||
var dc1 = getprop("/systems/electrical/bus/dc1");
|
var dc1 = getprop("/systems/electrical/bus/dc1");
|
||||||
var dc2 = getprop("/systems/electrical/bus/dc2");
|
var dc2 = getprop("/systems/electrical/bus/dc2");
|
||||||
var dcbat = getprop("/systems/electrical/bus/dcbat");
|
var dcbat = getprop("/systems/electrical/bus/dcbat");
|
||||||
|
@ -58,8 +62,44 @@ setlistener("/sim/signals/fdm-initialized", func {
|
||||||
var bat1_volts = getprop("/systems/electrical/battery1-volts");
|
var bat1_volts = getprop("/systems/electrical/battery1-volts");
|
||||||
var bat2_volts = getprop("/systems/electrical/battery2-volts");
|
var bat2_volts = getprop("/systems/electrical/battery2-volts");
|
||||||
var replay = getprop("/sim/replay/replay-state");
|
var replay = getprop("/sim/replay/replay-state");
|
||||||
|
var wow = getprop("/gear/gear[1]/wow");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
# Power Consumption, cockpit screens
|
||||||
|
# According to pprune, each LCD uses 60W. Will assume that it reduces linearly to ~50 watts when dimmed, and to 0 watts when off
|
||||||
|
|
||||||
|
var screen = {
|
||||||
|
name: "",
|
||||||
|
type: "", # LCD or CRT, will be used later when we have CRTs
|
||||||
|
max_watts: 0,
|
||||||
|
dim_watts: 0,
|
||||||
|
dim_prop: "",
|
||||||
|
elec_prop: "",
|
||||||
|
power_consumption: func() {
|
||||||
|
var dim_prop = me.dim_prop;
|
||||||
|
if (getprop(me.dim_prop) != 0) {
|
||||||
|
screen_power_consumption = (50 + (10 * getprop(dim_prop)));
|
||||||
|
} else {
|
||||||
|
screen_power_consumption = 0;
|
||||||
|
}
|
||||||
|
return screen_power_consumption;
|
||||||
|
},
|
||||||
|
new: func(name,type,max_watts,dim_watts,dim_prop,elec_prop) {
|
||||||
|
var s = {parents:[screen]};
|
||||||
|
|
||||||
|
s.name = name;
|
||||||
|
s.type = type;
|
||||||
|
s.max_watts = max_watts;
|
||||||
|
s.dim_watts = dim_watts;
|
||||||
|
s.dim_prop = dim_prop;
|
||||||
|
s.elec_prop = elec_prop;
|
||||||
|
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
# Main Elec System
|
||||||
|
|
||||||
var ELEC = {
|
var ELEC = {
|
||||||
init: func() {
|
init: func() {
|
||||||
setprop("/controls/switches/annun-test", 0);
|
setprop("/controls/switches/annun-test", 0);
|
||||||
|
@ -90,6 +130,7 @@ var ELEC = {
|
||||||
setprop("/systems/electrical/bus/gen1-hz", 0);
|
setprop("/systems/electrical/bus/gen1-hz", 0);
|
||||||
setprop("/systems/electrical/bus/gen2-hz", 0);
|
setprop("/systems/electrical/bus/gen2-hz", 0);
|
||||||
setprop("/systems/electrical/bus/ac-ess", 0);
|
setprop("/systems/electrical/bus/ac-ess", 0);
|
||||||
|
setprop("/systems/electrical/bus/ac-ess-shed", 0);
|
||||||
setprop("/systems/electrical/extra/ext-volts", 0);
|
setprop("/systems/electrical/extra/ext-volts", 0);
|
||||||
setprop("/systems/electrical/extra/apu-volts", 0);
|
setprop("/systems/electrical/extra/apu-volts", 0);
|
||||||
setprop("/systems/electrical/extra/gen1-volts", 0);
|
setprop("/systems/electrical/extra/gen1-volts", 0);
|
||||||
|
@ -145,6 +186,14 @@ var ELEC = {
|
||||||
setprop("/systems/electrical/outputs/taxi-lights", 0);
|
setprop("/systems/electrical/outputs/taxi-lights", 0);
|
||||||
setprop("/systems/electrical/outputs/transponder", 0);
|
setprop("/systems/electrical/outputs/transponder", 0);
|
||||||
setprop("/systems/electrical/outputs/turn-coordinator", 0);
|
setprop("/systems/electrical/outputs/turn-coordinator", 0);
|
||||||
|
|
||||||
|
screens = [screen.new("DU1","LCD",60,50,"/controls/lighting/DU/du1","/systems/electrical/bus/ac-ess"),
|
||||||
|
screen.new("DU2","LCD",60,50,"/controls/lighting/DU/du2","/systems/electrical/bus/ac-ess-shed"),
|
||||||
|
screen.new("DU3","LCD",60,50,"/controls/lighting/DU/du3","/systems/electrical/bus/ac-ess"),
|
||||||
|
screen.new("DU4","LCD",60,50,"/controls/lighting/DU/du4","/systems/electrical/bus/ac2"),
|
||||||
|
screen.new("DU5","LCD",60,50,"/controls/lighting/DU/du5","/systems/electrical/bus/ac2"),
|
||||||
|
screen.new("DU6","LCD",60,50,"/controls/lighting/DU/du6","/systems/electrical/bus/ac2")];
|
||||||
|
|
||||||
},
|
},
|
||||||
loop: func() {
|
loop: func() {
|
||||||
galley_sw = getprop("/controls/electrical/switches/galley");
|
galley_sw = getprop("/controls/electrical/switches/galley");
|
||||||
|
@ -167,6 +216,7 @@ var ELEC = {
|
||||||
ac1 = getprop("/systems/electrical/bus/ac1");
|
ac1 = getprop("/systems/electrical/bus/ac1");
|
||||||
ac2 = getprop("/systems/electrical/bus/ac2");
|
ac2 = getprop("/systems/electrical/bus/ac2");
|
||||||
ac_ess = getprop("/systems/electrical/bus/ac-ess");
|
ac_ess = getprop("/systems/electrical/bus/ac-ess");
|
||||||
|
ac_ess_shed = getprop("/systems/electrical/bus/ac-ess-shed");
|
||||||
dc1 = getprop("/systems/electrical/bus/dc1");
|
dc1 = getprop("/systems/electrical/bus/dc1");
|
||||||
dc2 = getprop("/systems/electrical/bus/dc2");
|
dc2 = getprop("/systems/electrical/bus/dc2");
|
||||||
dcbat = getprop("/systems/electrical/bus/dcbat");
|
dcbat = getprop("/systems/electrical/bus/dcbat");
|
||||||
|
@ -186,6 +236,7 @@ var ELEC = {
|
||||||
gen1_fail = getprop("/systems/failures/elec-gen1");
|
gen1_fail = getprop("/systems/failures/elec-gen1");
|
||||||
gen2_fail = getprop("/systems/failures/elec-gen2");
|
gen2_fail = getprop("/systems/failures/elec-gen2");
|
||||||
replay = getprop("/sim/replay/replay-state");
|
replay = getprop("/sim/replay/replay-state");
|
||||||
|
wow = getprop("/gear/gear[1]/wow");
|
||||||
|
|
||||||
if (extpwr_on and gen_ext_sw) {
|
if (extpwr_on and gen_ext_sw) {
|
||||||
setprop("/systems/electrical/gen-ext", 1);
|
setprop("/systems/electrical/gen-ext", 1);
|
||||||
|
@ -363,14 +414,20 @@ var ELEC = {
|
||||||
ac1 = getprop("/systems/electrical/bus/ac1");
|
ac1 = getprop("/systems/electrical/bus/ac1");
|
||||||
ac2 = getprop("/systems/electrical/bus/ac2");
|
ac2 = getprop("/systems/electrical/bus/ac2");
|
||||||
|
|
||||||
if (!ac_ess_fail and (ac1 >= 110 or ac2 >= 110)) {
|
if ((ac_ess_fail or (ac1 <= 110 or ac2 <= 110)) or (ias > 50 and getprop("/controls/hydraulic/rat-deployed") == 1 and (ac1 == 0) and (ac2 == 0) and wow)) {
|
||||||
setprop("/systems/electrical/bus/ac-ess", ac_volt_std);
|
|
||||||
} else {
|
|
||||||
setprop("/systems/electrical/bus/ac-ess", 0);
|
setprop("/systems/electrical/bus/ac-ess", 0);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/electrical/bus/ac-ess", ac_volt_std);
|
||||||
}
|
}
|
||||||
|
|
||||||
ac_ess = getprop("/systems/electrical/bus/ac-ess");
|
ac_ess = getprop("/systems/electrical/bus/ac-ess");
|
||||||
|
|
||||||
|
if (ac1 == 0 and ac2 == 0 and emergen == 0) {
|
||||||
|
setprop("/systems/electrical/bus/ac-ess-shed", 0);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/electrical/bus/ac-ess-shed", ac_volt_std);
|
||||||
|
}
|
||||||
|
|
||||||
if (ac_ess >= 110 and !gallery_fail) {
|
if (ac_ess >= 110 and !gallery_fail) {
|
||||||
if (galley_sw == 1 and !galley_shed) {
|
if (galley_sw == 1 and !galley_shed) {
|
||||||
setprop("/systems/electrical/bus/galley", ac_volt_std);
|
setprop("/systems/electrical/bus/galley", ac_volt_std);
|
||||||
|
@ -393,7 +450,7 @@ var ELEC = {
|
||||||
setprop("/controls/electrical/switches/emer-gen", 1);
|
setprop("/controls/electrical/switches/emer-gen", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ias < 100) {
|
if (ias < 100 or (ac1 == 1) or (ac2 == 1)) {
|
||||||
setprop("/controls/electrical/switches/emer-gen", 0);
|
setprop("/controls/electrical/switches/emer-gen", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -572,6 +629,15 @@ var ELEC = {
|
||||||
} else {
|
} else {
|
||||||
setprop("/systems/electrical/gen2-fault", 0);
|
setprop("/systems/electrical/gen2-fault", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach(var screena; screens) {
|
||||||
|
power_consumption = screena.power_consumption();
|
||||||
|
if (getprop(screena.elec_prop) != 0) {
|
||||||
|
setprop("/systems/electrical/DU/" ~ screena.name ~ "/watts",power_consumption);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/electrical/DU/" ~ screena.name ~ "/watts",0);
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -591,3 +657,6 @@ var decharge2 = maketimer(69, func {
|
||||||
bat2_volts = getprop("/systems/electrical/battery2-volts");
|
bat2_volts = getprop("/systems/electrical/battery2-volts");
|
||||||
setprop("/systems/electrical/battery2-volts", bat2_volts - 0.1);
|
setprop("/systems/electrical/battery2-volts", bat2_volts - 0.1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in a new issue