1
0
Fork 0
fgdata/Nasal/contrail.nas
Richard Harrison 40ff13b65b Reposition slowdown settimer fixes.
Definitely problems in aar.nas, seaport.nas; as these were hanging off a fdm-initialized.

The others have timers that are started from a listener and as such are more suited to use maketimer rather than settimer

The modules that use the loopid technique are probably fine, but these are also more suited (and easier to understand) using a maketimer
2018-09-14 22:50:47 +02:00

39 lines
1.4 KiB
Text

#########
# contrail calculator. Based on an approxmation to the "Appleman Chart"
# y = -0.077x2 + 2.7188x - 64.36
#
########
updateContrail = func{
var pressure_Node = props.globals.getNode("environment/pressure-inhg");
var temperature_Node = props.globals.getNode("environment/temperature-degc");
var contrail_Node = props.globals.getNode("environment/contrail");
var contrail_temp_Node = props.globals.getNode("environment/contrail-temperature-degc");
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);
}
}
### Contrail
contrailTimer = maketimer(30, updateContrail);
contrailTimer.simulatedTime = 1;
_setlistener("/sim/signals/nasal-dir-initialized", func {
printlog ("debug", "init contrail");
props.globals.initNode("environment/pressure-inhg", 1, "DOUBLE");
props.globals.initNode("environment/temperature-degc", 1, "DOUBLE");
props.globals.initNode("environment/contrail", 1, "BOOL");
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);
contrailTimer.restart(30);
});