12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # 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);
|