1
0
Fork 0
fgdata/Aircraft/Instruments-3d/chronograph/chronograph.nas
2009-05-18 19:25:31 +00:00

55 lines
1.5 KiB
Text

# Chronograph #############
# One button elapsed counter
var chrono_onoff = props.globals.getNode("instrumentation/clock/chronometer-on",1);
var reset_state = props.globals.getNode("instrumentation/clock/reset-state",1);
var elapsed_sec = props.globals.getNode("instrumentation/clock/elapsed-sec", 1);
var indicated_sec = props.globals.getNode("instrumentation/clock/indicated-sec");
aircraft.data.add("/instrumentation/clock/offset-sec");
chrono_onoff.setBoolValue( 0 );
reset_state.setBoolValue( 1 );
elapsed_sec.setValue( 0 );
var offset = 0;
var click = func {
var on = chrono_onoff.getBoolValue();
var reset = reset_state.getBoolValue();
if ( ! on ) {
if ( ! reset ) {
# Had been former started and stoped, now, has to be reset.
offset = 0;
elapsed_sec.setValue( 0 );
reset_state.setBoolValue( 1 );
} else {
# Is not started but allready reset, start it.
chrono_onoff.setBoolValue( 1 );
reset_state.setBoolValue( 0 );
offset = indicated_sec.getValue();
}
} else {
# Stop it.
chrono_onoff.setBoolValue( 0 );
reset_state.setBoolValue( 0 );
}
}
var update_chrono = func {
var on = chrono_onoff.getBoolValue();
if ( on ) {
var i_sec = indicated_sec.getValue();
var e_sec = i_sec - offset;
elapsed_sec.setValue( e_sec );
}
}
# Comment the following if update_chrono() is launched from a
# centralized loop in order to save some CPU cycles.
var chrono_loop = func {
update_chrono();
settimer(chrono_loop, 0.1);
}
settimer(chrono_loop, 0.5);