180 lines
4.9 KiB
Text
180 lines
4.9 KiB
Text
var door = aircraft.door.new("/services/deicing_truck/crane", 20);
|
|
var door3 = aircraft.door.new("/services/deicing_truck/deicing", 20);
|
|
var RAD2DEG = 57.2957795;
|
|
var DEG2RAD = 0.0174532925;
|
|
|
|
var ground_services = {
|
|
init : func {
|
|
me.UPDATE_INTERVAL = 0.1;
|
|
me.loopid = 0;
|
|
|
|
me.ice_time = 0;
|
|
|
|
# Chokes and Parking Brakes
|
|
|
|
setprop("/services/chokes/nose", 0);
|
|
setprop("/services/chokes/left", 0);
|
|
setprop("/services/chokes/right", 0);
|
|
|
|
setprop("/controls/parking-brake", 1);
|
|
|
|
# External Power
|
|
|
|
setprop("/services/ext-pwr/enable", 0);
|
|
|
|
# Catering Truck
|
|
|
|
setprop("/services/catering/scissor-deg", 0);
|
|
setprop("/sim/model/door-positions/cater_pos/position-norm", 0);
|
|
|
|
# Fuel Truck
|
|
|
|
setprop("/services/fuel-truck/enable", 0);
|
|
setprop("/services/fuel-truck/connect", 0);
|
|
setprop("/services/fuel-truck/transfer", 0);
|
|
setprop("/services/fuel-truck/clean", 0);
|
|
setprop("/services/fuel-truck/request-kg", 0);
|
|
|
|
# De-icing Truck
|
|
|
|
setprop("/services/deicing_truck/enable", 0);
|
|
setprop("/services/deicing_truck/de-ice", 0);
|
|
|
|
# Set them all to 0 if the aircraft is not stationary
|
|
|
|
if (getprop("/velocities/groundspeed-kt") > 10) {
|
|
setprop("/services/chokes/nose", 0);
|
|
setprop("/services/chokes/left", 0);
|
|
setprop("/services/chokes/right", 0);
|
|
setprop("/services/fuel-truck/enable", 0);
|
|
setprop("/services/ext-pwr/enable", 0);
|
|
setprop("/services/deicing_truck/enable", 0);
|
|
setprop("/services/catering/enable", 0);
|
|
}
|
|
|
|
me.reset();
|
|
},
|
|
update : func {
|
|
|
|
# Chokes and Parking Brakes Control
|
|
|
|
if ((getprop("/services/chokes/nose") == 1) or (getprop("/services/chokes/left") == 1) or (getprop("/services/chokes/right") == 1) or (getprop("/controls/parking-brake") == 1))
|
|
setprop("/controls/gear/brake-parking", 1);
|
|
else
|
|
setprop("/controls/gear/brake-parking", 0);
|
|
|
|
# External Power Stuff
|
|
|
|
if (getprop("/velocities/groundspeed-kt") > 10)
|
|
setprop("/services/ext-pwr/enable", 0);
|
|
|
|
if (getprop("/services/ext-pwr/enable") == 0)
|
|
setprop("controls/electric/external-power", 0);
|
|
|
|
# Catering Truck Controls
|
|
|
|
var cater_pos = getprop("/sim/model/door-positions/cater_pos/position-norm");
|
|
|
|
var scissor_deg = 3.325 * RAD2DEG * math.asin(cater_pos / (2 * 3.6612));
|
|
|
|
setprop("/services/catering/scissor-deg", scissor_deg);
|
|
|
|
|
|
# Fuel Truck Controls
|
|
|
|
if (getprop("/services/fuel-truck/enable") and getprop("/services/fuel-truck/connect")) {
|
|
|
|
if (getprop("/services/fuel-truck/transfer")) {
|
|
|
|
if (getprop("consumables/fuel/total-fuel-kg") < getprop("/services/fuel-truck/request-kg")) {
|
|
setprop("/consumables/fuel/tank/level-kg", getprop("/consumables/fuel/tank/level-kg") + 20);
|
|
setprop("/consumables/fuel/tank[1]/level-kg", getprop("/consumables/fuel/tank[1]/level-kg") + 20);
|
|
setprop("/consumables/fuel/tank[2]/level-kg", getprop("/consumables/fuel/tank[2]/level-kg") + 20);
|
|
} else {
|
|
setprop("/services/fuel-truck/transfer", 0);
|
|
screen.log.write("Re-fueling complete! Have a nice flight... :)", 1, 1, 1);
|
|
}
|
|
|
|
}
|
|
|
|
if (getprop("/services/fuel-truck/clean")) {
|
|
|
|
if (getprop("consumables/fuel/total-fuel-kg") > 90) {
|
|
|
|
setprop("/consumables/fuel/tank/level-kg", getprop("/consumables/fuel/tank/level-kg") - 80);
|
|
setprop("/consumables/fuel/tank[1]/level-kg", getprop("/consumables/fuel/tank/level-kg") - 80);
|
|
setprop("/consumables/fuel/tank[2]/level-kg", getprop("/consumables/fuel/tank/level-kg") - 80);
|
|
|
|
} else {
|
|
setprop("/services/fuel-truck/clean", 0);
|
|
screen.log.write("Finished draining the fuel tanks...", 1, 1, 1);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
# De-icing Truck
|
|
|
|
if (getprop("/services/deicing_truck/enable") and getprop("/services/deicing_truck/de-ice"))
|
|
{
|
|
|
|
if (me.ice_time == 2){
|
|
door.move(1);
|
|
print ("Lifting De-icing Crane...");
|
|
}
|
|
|
|
if (me.ice_time == 220){
|
|
door3.move(1);
|
|
print ("Starting De-icing Process...");
|
|
}
|
|
|
|
if (me.ice_time == 420){
|
|
door3.move(0);
|
|
print ("De-icing Process Completed...");
|
|
}
|
|
|
|
if (me.ice_time == 650){
|
|
door.move(0);
|
|
print ("Lowering De-icing Crane...");
|
|
}
|
|
|
|
if (me.ice_time == 900) {
|
|
screen.log.write("De-icing Completed!", 1, 1, 1);
|
|
setprop("/services/deicing_truck/de-ice", 0);
|
|
setprop("/controls/ice/wing/temp", 30);
|
|
setprop("/controls/ice/wing/eng1", 30);
|
|
setprop("/controls/ice/wing/eng2", 30);
|
|
}
|
|
|
|
} else
|
|
me.ice_time = 0;
|
|
|
|
|
|
me.ice_time += 1;
|
|
|
|
},
|
|
reset : func {
|
|
me.loopid += 1;
|
|
me._loop_(me.loopid);
|
|
},
|
|
_loop_ : func(id) {
|
|
id == me.loopid or return;
|
|
me.update();
|
|
settimer(func { me._loop_(id); }, me.UPDATE_INTERVAL);
|
|
}
|
|
};
|
|
|
|
var toggle_parkingbrakes = func {
|
|
|
|
if (getprop("/controls/parking-brake") == 1)
|
|
setprop("/controls/parking-brake", 0);
|
|
else
|
|
setprop("/controls/parking-brake", 1);
|
|
|
|
}
|
|
|
|
setlistener("sim/signals/fdm-initialized", func {
|
|
ground_services.init();
|
|
print("Ground Services ..... Initialized");
|
|
}, 0, 0);
|