disable nav, logo, turnoff, and taxi when there is no power to the respective buses. Make all exterior lighting consume power
This commit is contained in:
parent
fe82a2bcef
commit
e92ba6e14c
2 changed files with 86 additions and 14 deletions
|
@ -16,6 +16,9 @@ var ac2_src = "XX";
|
||||||
var power_consumption = nil;
|
var power_consumption = nil;
|
||||||
var screen_power_consumption = nil;
|
var screen_power_consumption = nil;
|
||||||
var screens = nil;
|
var screens = nil;
|
||||||
|
var lpower_consumption = nil;
|
||||||
|
var light_power_consumption = nil;
|
||||||
|
var lights = 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");
|
||||||
|
@ -98,11 +101,41 @@ var screen = {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Power Consumption, lights
|
||||||
|
# from docs found on google
|
||||||
|
|
||||||
|
var light = {
|
||||||
|
name: "",
|
||||||
|
max_watts: 0,
|
||||||
|
control_prop: "",
|
||||||
|
elec_prop: "",
|
||||||
|
power_consumption: func() {
|
||||||
|
|
||||||
|
if (getprop(me.control_prop) != 0 and getprop(me.elec_prop) != 0) {
|
||||||
|
light_power_consumption = me.max_watts;
|
||||||
|
} else {
|
||||||
|
light_power_consumption = 0;
|
||||||
|
}
|
||||||
|
return light_power_consumption;
|
||||||
|
},
|
||||||
|
new: func(name,max_watts,control_prop,elec_prop) {
|
||||||
|
var l = {parents:[light]};
|
||||||
|
|
||||||
|
l.name = name;
|
||||||
|
l.max_watts = max_watts;
|
||||||
|
l.control_prop = control_prop;
|
||||||
|
l.elec_prop = elec_prop;
|
||||||
|
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
# Main Elec System
|
# Main Elec System
|
||||||
|
|
||||||
var ELEC = {
|
var ELEC = {
|
||||||
init: func() {
|
init: func() {
|
||||||
setprop("/controls/switches/annun-test", 0);
|
setprop("/controls/switches/annun-test", 0);
|
||||||
|
setprop("/systems/electrical/nav-lights-power", 0);
|
||||||
setprop("/controls/electrical/switches/galley", 1);
|
setprop("/controls/electrical/switches/galley", 1);
|
||||||
setprop("/controls/electrical/switches/idg1", 0);
|
setprop("/controls/electrical/switches/idg1", 0);
|
||||||
setprop("/controls/electrical/switches/idg2", 0);
|
setprop("/controls/electrical/switches/idg2", 0);
|
||||||
|
@ -188,11 +221,31 @@ var ELEC = {
|
||||||
setprop("/systems/electrical/outputs/turn-coordinator", 0);
|
setprop("/systems/electrical/outputs/turn-coordinator", 0);
|
||||||
|
|
||||||
screens = [screen.new(name: "DU1", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du1", elec_prop:"systems/electrical/bus/ac-ess"),
|
screens = [screen.new(name: "DU1", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du1", elec_prop:"systems/electrical/bus/ac-ess"),
|
||||||
screen.new(name: "DU2", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du2", elec_prop:"systems/electrical/bus/ac-ess"),
|
screen.new(name: "DU2", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du2", elec_prop:"systems/electrical/bus/ac-ess-shed"),
|
||||||
screen.new(name: "DU3", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du3", elec_prop:"systems/electrical/bus/ac-ess"),
|
screen.new(name: "DU3", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du3", elec_prop:"systems/electrical/bus/ac-ess"),
|
||||||
screen.new(name: "DU4", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du4", elec_prop:"systems/electrical/bus/ac-ess"),
|
screen.new(name: "DU4", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du4", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
screen.new(name: "DU5", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du5", elec_prop:"systems/electrical/bus/ac-ess"),
|
screen.new(name: "DU5", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du5", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
screen.new(name: "DU6", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du6", elec_prop:"systems/electrical/bus/ac-ess")];
|
screen.new(name: "DU6", type:"LCD", max_watts:60, dim_watts:50, dim_prop:"controls/lighting/DU/du6", elec_prop:"systems/electrical/bus/ac2")];
|
||||||
|
|
||||||
|
lights = [light.new(name: "logo-left", max_watts:31.5, control_prop:"sim/model/lights/logo-lights", elec_prop:"systems/electrical/bus/ac1"),
|
||||||
|
light.new(name: "logo-right", max_watts:31.5, control_prop:"sim/model/lights/logo-lights", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
|
light.new(name: "upper-beacon", max_watts:40, control_prop:"sim/model/lights/beacon/state", elec_prop:"systems/electrical/bus/ac1"),
|
||||||
|
light.new(name: "lower-beacon", max_watts:40, control_prop:"sim/model/lights/beacon/state", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
|
light.new(name: "strobe-left", max_watts:38, control_prop:"sim/model/lights/strobe/state", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
|
light.new(name: "strobe-right", max_watts:38, control_prop:"sim/model/lights/strobe/state", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
|
light.new(name: "tail-strobe", max_watts:12, control_prop:"sim/model/lights/tailstrobe/state", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
|
light.new(name: "tail-strobe-ctl", max_watts:30, control_prop:"sim/model/lights/tailstrobe/state", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
|
light.new(name: "tail-nav", max_watts:12, control_prop:"sim/model/lights/nav-lights", elec_prop:"systems/electrical/nav-lights-power"),
|
||||||
|
light.new(name: "left-nav", max_watts:12, control_prop:"sim/model/lights/nav-lights", elec_prop:"systems/electrical/nav-lights-power"),
|
||||||
|
light.new(name: "right-nav", max_watts:12, control_prop:"sim/model/lights/nav-lights", elec_prop:"systems/electrical/nav-lights-power"),
|
||||||
|
light.new(name: "left-land", max_watts:39, control_prop:"controls/lighting/landing-lights[1]", elec_prop:"systems/electrical/bus/ac1"),
|
||||||
|
light.new(name: "right-land", max_watts:39, control_prop:"controls/lighting/landing-lights[2]", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
|
light.new(name: "left-taxi", max_watts:31, control_prop:"sim/model/lights/nose-lights", elec_prop:"systems/electrical/bus/ac1"),
|
||||||
|
light.new(name: "right-taxi", max_watts:31, control_prop:"sim/model/lights/nose-lights", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
|
light.new(name: "left-turnoff", max_watts:21, control_prop:"controls/lighting/leftturnoff", elec_prop:"systems/electrical/bus/ac1"),
|
||||||
|
light.new(name: "right-turnoff", max_watts:21, control_prop:"controls/lighting/rightturnoff", elec_prop:"systems/electrical/bus/ac2"),
|
||||||
|
light.new(name: "left-wing", max_watts:24, control_prop:"controls/lighting/wing-lights", elec_prop:"systems/electrical/bus/ac1"),
|
||||||
|
light.new(name: "right-wing", max_watts:24, control_prop:"controls/lighting/wing-lights", elec_prop:"systems/electrical/bus/ac2")];
|
||||||
|
|
||||||
},
|
},
|
||||||
loop: func() {
|
loop: func() {
|
||||||
|
@ -638,6 +691,15 @@ var ELEC = {
|
||||||
setprop("/systems/electrical/DU/" ~ screena.name ~ "/watts", 0);
|
setprop("/systems/electrical/DU/" ~ screena.name ~ "/watts", 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach(var lighta; lights) {
|
||||||
|
power_consumption = lighta.power_consumption();
|
||||||
|
if (getprop(screena.elec_prop) != 0 and getprop(lighta.control_prop) != 0) {
|
||||||
|
setprop("/systems/electrical/light/" ~ lighta.name ~ "/watts", power_consumption);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/electrical/light/" ~ lighta.name ~ "/watts", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -34,11 +34,11 @@ setprop("/engines/engine[1]/oil-qt-actual", qty2);
|
||||||
# Lights #
|
# Lights #
|
||||||
##########
|
##########
|
||||||
var beacon_switch = props.globals.getNode("/controls/switches/beacon", 2);
|
var beacon_switch = props.globals.getNode("/controls/switches/beacon", 2);
|
||||||
var beacon = aircraft.light.new("/sim/model/lights/beacon", [0.16, 1], "/controls/lighting/beacon");
|
var beacon = aircraft.light.new("/sim/model/lights/beacon", [0.1, 1], "/controls/lighting/beacon");
|
||||||
var strobe_switch = props.globals.getNode("/controls/switches/strobe", 2);
|
var strobe_switch = props.globals.getNode("/controls/switches/strobe", 2);
|
||||||
var strobe = aircraft.light.new("/sim/model/lights/strobe", [0.05, 0.06, 0.05, 1], "/controls/lighting/strobe");
|
var strobe = aircraft.light.new("/sim/model/lights/strobe", [0.05, 0.06, 0.05, 1], "/controls/lighting/strobe");
|
||||||
var tail_strobe_switch = props.globals.getNode("/controls/switches/tailstrobe", 2);
|
var tail_strobe_switch = props.globals.getNode("/controls/switches/tailstrobe", 2);
|
||||||
var tail_strobe = aircraft.light.new("/sim/model/lights/tailstrobe", [0.11, 1], "/controls/lighting/strobe");
|
var tail_strobe = aircraft.light.new("/sim/model/lights/tailstrobe", [0.1, 1], "/controls/lighting/strobe");
|
||||||
var logo_lights = getprop("/sim/model/lights/logo-lights");
|
var logo_lights = getprop("/sim/model/lights/logo-lights");
|
||||||
var nav_lights = props.globals.getNode("/sim/model/lights/nav-lights");
|
var nav_lights = props.globals.getNode("/sim/model/lights/nav-lights");
|
||||||
var wow = getprop("/gear/gear[2]/wow");
|
var wow = getprop("/gear/gear[2]/wow");
|
||||||
|
@ -365,9 +365,9 @@ var lightsLoop = maketimer(0.2, func {
|
||||||
|
|
||||||
# nose lights
|
# nose lights
|
||||||
|
|
||||||
if (settingT == 0.5 and gear > 0.9) {
|
if (settingT == 0.5 and gear > 0.9 and (getprop("/systems/electrical/bus/ac1") > 0 or getprop("/systems/electrical/bus/ac2") > 0)) {
|
||||||
setprop("/sim/model/lights/nose-lights", 0.85);
|
setprop("/sim/model/lights/nose-lights", 0.85);
|
||||||
} else if (settingT == 1 and gear > 0.9) {
|
} else if (settingT == 1 and gear > 0.9 and (getprop("/systems/electrical/bus/ac1") > 0 or getprop("/systems/electrical/bus/ac2") > 0)) {
|
||||||
setprop("/sim/model/lights/nose-lights", 1);
|
setprop("/sim/model/lights/nose-lights", 1);
|
||||||
} else {
|
} else {
|
||||||
setprop("/sim/model/lights/nose-lights", 0);
|
setprop("/sim/model/lights/nose-lights", 0);
|
||||||
|
@ -378,11 +378,15 @@ var lightsLoop = maketimer(0.2, func {
|
||||||
left_turnoff_light = props.globals.getNode("/controls/lighting/leftturnoff");
|
left_turnoff_light = props.globals.getNode("/controls/lighting/leftturnoff");
|
||||||
right_turnoff_light = props.globals.getNode("/controls/lighting/rightturnoff");
|
right_turnoff_light = props.globals.getNode("/controls/lighting/rightturnoff");
|
||||||
|
|
||||||
if (settingTurnoff == 1 and gear > 0.9) {
|
if (settingTurnoff == 1 and gear > 0.9 and getprop("/systems/electrical/bus/ac1") > 0) {
|
||||||
left_turnoff_light.setBoolValue(1);
|
left_turnoff_light.setBoolValue(1);
|
||||||
right_turnoff_light.setBoolValue(1);
|
|
||||||
} else {
|
} else {
|
||||||
left_turnoff_light.setBoolValue(0);
|
left_turnoff_light.setBoolValue(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settingTurnoff == 1 and gear > 0.9 and getprop("/systems/electrical/bus/ac2") > 0) {
|
||||||
|
right_turnoff_light.setBoolValue(1);
|
||||||
|
} else {
|
||||||
right_turnoff_light.setBoolValue(0);
|
right_turnoff_light.setBoolValue(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,9 +397,15 @@ var lightsLoop = maketimer(0.2, func {
|
||||||
wow = getprop("/gear/gear[2]/wow");
|
wow = getprop("/gear/gear[2]/wow");
|
||||||
slats = getprop("/controls/flight/slats");
|
slats = getprop("/controls/flight/slats");
|
||||||
|
|
||||||
|
if (getprop("/systems/electrical/bus/ac1") > 0 or getprop("/systems/electrical/bus/ac2") > 0) {
|
||||||
|
setprop("/systems/electrical/nav-lights-power", 1);
|
||||||
|
} else {
|
||||||
|
setprop("/systems/electrical/nav-lights-power", 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (setting == 0 and logo_lights == 1) {
|
if (setting == 0 and logo_lights == 1) {
|
||||||
logo_lights.setBoolValue(0);
|
logo_lights.setBoolValue(0);
|
||||||
} else if (setting == 1 or setting == 2) {
|
} else if (setting == 1 or setting == 2 and (getprop("/systems/electrical/bus/ac1") > 0 or getprop("/systems/electrical/bus/ac2") > 0)) {
|
||||||
if ((wow) or (!wow and slats > 0)) {
|
if ((wow) or (!wow and slats > 0)) {
|
||||||
logo_lights.setBoolValue(1);
|
logo_lights.setBoolValue(1);
|
||||||
} else {
|
} else {
|
||||||
|
@ -405,7 +415,7 @@ var lightsLoop = maketimer(0.2, func {
|
||||||
logo_lights.setBoolValue(0);
|
logo_lights.setBoolValue(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (setting == 1 or setting == 2) {
|
if (setting == 1 or setting == 2 and (getprop("/systems/electrical/bus/ac1") > 0 or getprop("/systems/electrical/bus/ac2") > 0 or getprop("/systems/electrical/bus/dc1") > 0 or getprop("/systems/electrical/bus/dc2") > 0)) {
|
||||||
nav_lights.setBoolValue(1);
|
nav_lights.setBoolValue(1);
|
||||||
} else {
|
} else {
|
||||||
nav_lights.setBoolValue(0);
|
nav_lights.setBoolValue(0);
|
||||||
|
|
Reference in a new issue