40ff13b65b
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
39 lines
1.4 KiB
Text
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);
|
|
});
|