Library globals

Source contrail.nas

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#########
# contrail calculator. Based on an approxmation to the "Appleman Chart"
# y = -0.077x2 + 2.7188x - 64.36
########

var pressure_Node = props.globals.initNode("environment/pressure-inhg", 1, "DOUBLE");
var temperature_Node = props.globals.initNode("environment/temperature-degc", 1, "DOUBLE");
var contrail_Node = props.globals.initNode("environment/contrail", 1, "BOOL");
var contrail_temp_Node = props.globals.initNode("environment/contrail-temperature-degc", 1, "DOUBLE");
var static_contrail_node = props.globals.getNode("sim/ai/aircraft/contrail", 1);
var time_node = props.globals.getNode("sim/time/elapsed-sec", 1);

updateContrail = func {
    var x = pressure_Node.getValue();
    var y = temperature_Node.getValue();
    var con_temp = -0.077 * x * x + 2.7188 * x - 64.36;
    contrail_temp_Node.setValue(con_temp);

    if (y < con_temp and y < -40) {
        contrail_Node.setValue(1);
    } else {
        contrail_Node.setValue(0);
    }
}

updateContrail(); # avoid 30 second delay on startup https://sourceforge.net/p/flightgear/codetickets/2077/

contrailTimer = maketimer(30, updateContrail);
contrailTimer.simulatedTime = 1;
contrailTimer.restart(30);