-// Update current nav/adf radio stations based on current postition
-void FGRadioStack::search( double lon, double lat, double elev ) {
- // nav1
- FGILS ils;
- FGNav nav;
-
- if ( current_ilslist->query( lon, lat, elev, nav1_freq, &ils ) ) {
- nav1_valid = true;
- nav1_loc = true;
- nav1_dme = true;
-
- nav1_loclon = ils.get_loclon();
- nav1_loclat = ils.get_loclat();
- nav1_gslon = ils.get_gslon();
- nav1_gslat = ils.get_gslat();
- nav1_dmelon = ils.get_dmelon();
- nav1_dmelat = ils.get_dmelat();
- nav1_elev = ils.get_gselev();
- nav1_effective_range = FG_ILS_DEFAULT_RANGE;
- nav1_target_gs = ils.get_gsangle();
- nav1_radial = ils.get_locheading();
- while ( nav1_radial < 0.0 ) { nav1_radial += 360.0; }
- while ( nav1_radial > 360.0 ) { nav1_radial -= 360.0; }
- nav1_gs_x = ils.get_gs_x();
- nav1_gs_y = ils.get_gs_y();
- nav1_gs_z = ils.get_gs_z();
- nav1_dme_x = ils.get_dme_x();
- nav1_dme_y = ils.get_dme_y();
- nav1_dme_z = ils.get_dme_z();
- // cout << "Found an ils station in range" << endl;
- // cout << " id = " << ils.get_locident() << endl;
- } else if ( current_navlist->query( lon, lat, elev, nav1_freq, &nav ) ) {
- nav1_valid = true;
- nav1_loc = false;
- nav1_dme = nav.get_dme();
- nav1_loclon = nav.get_lon();
- nav1_loclat = nav.get_lat();
- nav1_elev = nav.get_elev();
- nav1_effective_range = nav.get_range();
- nav1_target_gs = 0.0;
- nav1_radial = nav1_sel_radial;
- nav1_dme_x = nav.get_x();
- nav1_dme_y = nav.get_y();
- nav1_dme_y = nav.get_z();
- // cout << "Found a vor station in range" << endl;
- // cout << " id = " << nav.get_ident() << endl;
- } else {
- nav1_valid = false;
- // cout << "not picking up vor1. :-(" << endl;
- }
-
- if ( current_ilslist->query( lon, lat, elev, nav2_freq, &ils ) ) {
- nav2_valid = true;
- nav2_loc = true;
- nav2_dme = true;