56 lines
1.5 KiB
Text
56 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);
|