X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FInstrumentation%2Fkr_87.cxx;h=79f45809e4907532c239ea8e82b474ea4e8da5ef;hb=e89df85817619290067d20391817b831356c4532;hp=8ea39569ca485bd7f66ea023a9b4390c56c9fd71;hpb=451bf89f704c04823e7492bae914f2504f9dbe0a;p=flightgear.git diff --git a/src/Instrumentation/kr_87.cxx b/src/Instrumentation/kr_87.cxx index 8ea39569c..79f45809e 100644 --- a/src/Instrumentation/kr_87.cxx +++ b/src/Instrumentation/kr_87.cxx @@ -30,6 +30,7 @@ #include #include #include +#include #include @@ -118,128 +119,96 @@ void FGKR_87::init () { _sgr->tie_to_listener(); } +void FGKR_87::reinit () { + _time_before_search_sec = 0; +} void FGKR_87::bind () { + _tiedProperties.setRoot(fgGetNode("/instrumentation/kr-87", true)); // internal values - fgTie("/instrumentation/kr-87/internal/valid", this, &FGKR_87::get_valid); - fgTie("/instrumentation/kr-87/internal/inrange", this, - &FGKR_87::get_inrange); - fgTie("/instrumentation/kr-87/internal/dist", this, - &FGKR_87::get_dist); - fgTie("/instrumentation/kr-87/internal/heading", this, - &FGKR_87::get_heading); + _tiedProperties.Tie("internal/valid", this, &FGKR_87::get_valid); + _tiedProperties.Tie("internal/inrange", this, + &FGKR_87::get_inrange); + _tiedProperties.Tie("internal/dist", this, + &FGKR_87::get_dist); + _tiedProperties.Tie("internal/heading", this, + &FGKR_87::get_heading); // modes - fgTie("/instrumentation/kr-87/modes/ant", this, - &FGKR_87::get_ant_mode); - fgTie("/instrumentation/kr-87/modes/stby", this, - &FGKR_87::get_stby_mode); - fgTie("/instrumentation/kr-87/modes/timer", this, - &FGKR_87::get_timer_mode); - fgTie("/instrumentation/kr-87/modes/count", this, - &FGKR_87::get_count_mode); + _tiedProperties.Tie("modes/ant", this, + &FGKR_87::get_ant_mode); + _tiedProperties.Tie("modes/stby", this, + &FGKR_87::get_stby_mode); + _tiedProperties.Tie("modes/timer", this, + &FGKR_87::get_timer_mode); + _tiedProperties.Tie("modes/count", this, + &FGKR_87::get_count_mode); // input and buttons - fgTie("/instrumentation/kr-87/inputs/rotation-deg", this, - &FGKR_87::get_rotation, &FGKR_87::set_rotation); + _tiedProperties.Tie("inputs/rotation-deg", this, + &FGKR_87::get_rotation, &FGKR_87::set_rotation); fgSetArchivable("/instrumentation/kr-87/inputs/rotation-deg"); - fgTie("/instrumentation/kr-87/inputs/power-btn", this, - &FGKR_87::get_power_btn, - &FGKR_87::set_power_btn); + _tiedProperties.Tie("inputs/power-btn", this, + &FGKR_87::get_power_btn, + &FGKR_87::set_power_btn); fgSetArchivable("/instrumentation/kr-87/inputs/power-btn"); - fgTie("/instrumentation/kr-87/inputs/audio-btn", this, - &FGKR_87::get_audio_btn, - &FGKR_87::set_audio_btn); + _tiedProperties.Tie("inputs/audio-btn", this, + &FGKR_87::get_audio_btn, + &FGKR_87::set_audio_btn); fgSetArchivable("/instrumentation/kr-87/inputs/audio-btn"); - fgTie("/instrumentation/kr-87/inputs/volume", this, - &FGKR_87::get_vol_btn, - &FGKR_87::set_vol_btn); + _tiedProperties.Tie("inputs/volume", this, + &FGKR_87::get_vol_btn, + &FGKR_87::set_vol_btn); fgSetArchivable("/instrumentation/kr-87/inputs/volume"); - fgTie("/instrumentation/kr-87/inputs/adf-btn", this, - &FGKR_87::get_adf_btn, - &FGKR_87::set_adf_btn); - fgTie("/instrumentation/kr-87/inputs/bfo-btn", this, - &FGKR_87::get_bfo_btn, - &FGKR_87::set_bfo_btn); - fgTie("/instrumentation/kr-87/inputs/frq-btn", this, - &FGKR_87::get_frq_btn, - &FGKR_87::set_frq_btn); - fgTie("/instrumentation/kr-87/inputs/flt-et-btn", this, - &FGKR_87::get_flt_et_btn, - &FGKR_87::set_flt_et_btn); - fgTie("/instrumentation/kr-87/inputs/set-rst-btn", this, - &FGKR_87::get_set_rst_btn, - &FGKR_87::set_set_rst_btn); + _tiedProperties.Tie("inputs/adf-btn", this, + &FGKR_87::get_adf_btn, + &FGKR_87::set_adf_btn); + _tiedProperties.Tie("inputs/bfo-btn", this, + &FGKR_87::get_bfo_btn, + &FGKR_87::set_bfo_btn); + _tiedProperties.Tie("inputs/frq-btn", this, + &FGKR_87::get_frq_btn, + &FGKR_87::set_frq_btn); + _tiedProperties.Tie("inputs/flt-et-btn", this, + &FGKR_87::get_flt_et_btn, + &FGKR_87::set_flt_et_btn); + _tiedProperties.Tie("inputs/set-rst-btn", this, + &FGKR_87::get_set_rst_btn, + &FGKR_87::set_set_rst_btn); // outputs - fgTie("/instrumentation/kr-87/outputs/selected-khz", this, - &FGKR_87::get_freq, &FGKR_87::set_freq); + _tiedProperties.Tie("outputs/selected-khz", this, + &FGKR_87::get_freq, &FGKR_87::set_freq); fgSetArchivable("/instrumentation/kr-87/outputs/selected-khz"); - fgTie("/instrumentation/kr-87/outputs/standby-khz", this, - &FGKR_87::get_stby_freq, &FGKR_87::set_stby_freq); + _tiedProperties.Tie("outputs/standby-khz", this, + &FGKR_87::get_stby_freq, &FGKR_87::set_stby_freq); fgSetArchivable("/instrumentation/kr-87/outputs/standby-khz"); - fgTie("/instrumentation/kr-87/outputs/needle-deg", this, - &FGKR_87::get_needle_deg); - fgTie("/instrumentation/kr-87/outputs/flight-timer", this, - &FGKR_87::get_flight_timer); - fgTie("/instrumentation/kr-87/outputs/elapsed-timer", this, - &FGKR_87::get_elapsed_timer, - &FGKR_87::set_elapsed_timer); + _tiedProperties.Tie("outputs/needle-deg", this, + &FGKR_87::get_needle_deg); + _tiedProperties.Tie("outputs/flight-timer", this, + &FGKR_87::get_flight_timer); + _tiedProperties.Tie("outputs/elapsed-timer", this, + &FGKR_87::get_elapsed_timer, + &FGKR_87::set_elapsed_timer); // annunciators - fgTie("/instrumentation/kr-87/annunciators/ant", this, - &FGKR_87::get_ant_ann ); - fgTie("/instrumentation/kr-87/annunciators/adf", this, - &FGKR_87::get_adf_ann ); - fgTie("/instrumentation/kr-87/annunciators/bfo", this, - &FGKR_87::get_bfo_ann ); - fgTie("/instrumentation/kr-87/annunciators/frq", this, - &FGKR_87::get_frq_ann ); - fgTie("/instrumentation/kr-87/annunciators/flt", this, - &FGKR_87::get_flt_ann ); - fgTie("/instrumentation/kr-87/annunciators/et", this, - &FGKR_87::get_et_ann ); + _tiedProperties.Tie("annunciators/ant", this, + &FGKR_87::get_ant_ann ); + _tiedProperties.Tie("annunciators/adf", this, + &FGKR_87::get_adf_ann ); + _tiedProperties.Tie("annunciators/bfo", this, + &FGKR_87::get_bfo_ann ); + _tiedProperties.Tie("annunciators/frq", this, + &FGKR_87::get_frq_ann ); + _tiedProperties.Tie("annunciators/flt", this, + &FGKR_87::get_flt_ann ); + _tiedProperties.Tie("annunciators/et", this, + &FGKR_87::get_et_ann ); } void FGKR_87::unbind () { - // internal values - fgUntie("/instrumentation/kr-87/internal/valid"); - fgUntie("/instrumentation/kr-87/internal/inrange"); - fgUntie("/instrumentation/kr-87/internal/dist"); - fgUntie("/instrumentation/kr-87/internal/heading"); - - // modes - fgUntie("/instrumentation/kr-87/modes/ant"); - fgUntie("/instrumentation/kr-87/modes/stby"); - fgUntie("/instrumentation/kr-87/modes/timer"); - fgUntie("/instrumentation/kr-87/modes/count"); - - // input and buttons - fgUntie("/instrumentation/kr-87/inputs/rotation-deg"); - fgUntie("/instrumentation/kr-87/inputs/power-btn"); - fgUntie("/instrumentation/kr-87/inputs/volume"); - fgUntie("/instrumentation/kr-87/inputs/adf-btn"); - fgUntie("/instrumentation/kr-87/inputs/bfo-btn"); - fgUntie("/instrumentation/kr-87/inputs/frq-btn"); - fgUntie("/instrumentation/kr-87/inputs/flt-et-btn"); - fgUntie("/instrumentation/kr-87/inputs/set-rst-btn"); - fgUntie("/instrumentation/kr-87/inputs/ident-btn"); - - // outputs - fgUntie("/instrumentation/kr-87/outputs/selected-khz"); - fgUntie("/instrumentation/kr-87/outputs/standby-khz"); - fgUntie("/instrumentation/kr-87/outputs/needle-deg"); - fgUntie("/instrumentation/kr-87/outputs/flight-timer"); - fgUntie("/instrumentation/kr-87/outputs/elapsed-timer"); - - // annunciators - fgUntie("/instrumentation/kr-87/annunciators/ant"); - fgUntie("/instrumentation/kr-87/annunciators/adf"); - fgUntie("/instrumentation/kr-87/annunciators/bfo"); - fgUntie("/instrumentation/kr-87/annunciators/frq"); - fgUntie("/instrumentation/kr-87/annunciators/flt"); - fgUntie("/instrumentation/kr-87/annunciators/et"); + _tiedProperties.Untie(); } @@ -504,7 +473,8 @@ void FGKR_87::search() { //////////////////////////////////////////////////////////////////////// - FGNavRecord *adf = globals->get_navlist()->findByFreq( freq, pos); + FGNavList::TypeFilter filter(FGPositioned::NDB); + FGNavRecord *adf = FGNavList::findByFreq( freq, pos, &filter); if ( adf != NULL ) { char sfreq[128]; snprintf( sfreq, 10, "%d", freq );