- //calculate the bearing and range of the station from the aircraft
- geo_inverse_wgs_84(altitude_m,
- latitude_deg,
- longitude_deg,
- _transmitter_lat,
- _transmitter_lon,
- &bearing, &az2, &distance);
-
- //select the nearest valid mobile transmitter
- if ( _carrier_valid && _tanker_valid ){
- if( carrier_distance <= tanker_distance ){
- SG_LOG( SG_INSTR, SG_DEBUG, " select carrier (dist) " );
- mobile_bearing = carrier_bearing;
- mobile_distance = carrier_distance;
- mobile_elevation_ft = _carrier_elevation_ft;
- mobile_range_nm = _carrier_range_nm;
- mobile_bias = _carrier_bias;
- mobile_name = _carrier_name;
- }else{
- SG_LOG( SG_INSTR, SG_DEBUG, " select tanker (dist) " );
- mobile_bearing = tanker_bearing;
- mobile_distance = tanker_distance;
- mobile_elevation_ft = _tanker_elevation_ft;
- mobile_range_nm = _tanker_range_nm;
- mobile_bias = _tanker_bias;
- mobile_name = _tanker_name;
- }
- mobile_valid = true;
- }
- else if ( _carrier_valid && !_tanker_valid ){
- SG_LOG( SG_INSTR, SG_DEBUG, " select carrier " );
- mobile_bearing = carrier_bearing;
- mobile_distance = carrier_distance;
- mobile_elevation_ft = _carrier_elevation_ft;
- mobile_range_nm = _carrier_range_nm;
- mobile_bias = _carrier_bias;
- mobile_name = _carrier_name;
- mobile_valid = true;
- }
- else if ( !_carrier_valid && _tanker_valid ){
- SG_LOG( SG_INSTR, SG_DEBUG, " select tanker " );
- mobile_bearing = tanker_bearing;
- mobile_distance = tanker_distance;
- mobile_elevation_ft = _tanker_elevation_ft;
- mobile_range_nm = _tanker_range_nm;
- mobile_bias = _tanker_bias;
- mobile_name = _tanker_name;
- mobile_valid = true;
- }else{
- mobile_valid = false;
- }