if ( current_ilslist->query( lon, lat, elev, nav1_freq,
&ils, &nav1_heading, &nav1_dist) ) {
nav1_inrange = true;
+ nav1_loc = true;
nav1_lon = ils.get_loclon();
nav1_lat = ils.get_loclat();
nav1_elev = ils.get_gselev();
// << " dist = " << nav1_dist << endl;
} else {
nav1_inrange = false;
- cout << "not picking up vor. :-(" << endl;
+ // cout << "not picking up vor. :-(" << endl;
}
// nav1
if ( current_navlist->query( lon, lat, elev, nav2_freq,
&nav, &nav2_heading, &nav2_dist) ) {
nav2_inrange = true;
+ nav2_loc = false;
nav2_lon = nav.get_lon();
nav2_lat = nav.get_lat();
nav2_elev = nav.get_elev();
// << " dist = " << nav2_dist << endl;
} else {
nav2_inrange = false;
- cout << "not picking up vor. :-(" << endl;
+ // cout << "not picking up vor. :-(" << endl;
}
// adf
// << " dist = " << junk << endl;
} else {
adf_inrange = false;
- cout << "not picking up adf. :-(" << endl;
+ // cout << "not picking up adf. :-(" << endl;
}
}
// Everything below is a transient hack; expect it to disappear
////////////////////////////////////////////////////////////////////////
+#if 0
/* KMYF ILS */
#define NAV1_LOC (1)
#define NAV1_Lat ( 32.0 + 48.94/60.0)
/* HAILE intersection */
#define ADF_Lat ( 32.0 + 46.79/60.0)
#define ADF_Lon (-117.0 - 02.70/60.0)
-
+#endif
double FGSteam::get_HackGS_deg () {
- double x = current_radiostack->get_nav1_dist();
- double y = (FGBFI::getAltitude() - current_radiostack->get_nav1_elev())
- * FEET_TO_METER;
- double angle = atan2( y, x ) * RAD_TO_DEG;
- return current_radiostack->get_nav1_target_gs() - angle;
-
#if 0
double x,y,dme;
if (0==NAV1_LOC) return 0.0;
y = FGBFI::getAltitude() - NAV1_Alt;
return 3.0 - (y/x) * 60.0 / 6000.0;
#endif
+
+ if ( current_radiostack->get_nav1_inrange() ) {
+ double x = current_radiostack->get_nav1_dist();
+ double y = (FGBFI::getAltitude() - current_radiostack->get_nav1_elev())
+ * FEET_TO_METER;
+ double angle = atan2( y, x ) * RAD_TO_DEG;
+ return current_radiostack->get_nav1_target_gs() - angle;
+ } else {
+ return 0.0;
+ }
}
r = atan2 ( x, y ) * RAD_TO_DEG - NAV1_Rad - FGBFI::getMagVar();
#endif
- r = current_radiostack->get_nav1_radial() -
- current_radiostack->get_nav1_heading() + 180.0;
- // cout << "Radial = " << current_radiostack->get_nav1_radial()
- // << " Bearing = " << current_radiostack->get_nav1_heading() << endl;
+ if ( current_radiostack->get_nav1_inrange() ) {
+ r = current_radiostack->get_nav1_radial() -
+ current_radiostack->get_nav1_heading() + 180.0;
+ // cout << "Radial = " << current_radiostack->get_nav1_radial()
+ // << " Bearing = " << current_radiostack->get_nav1_heading()
+ // << endl;
- if (r> 180.0) r-=360.0; else
- if (r<-180.0) r+=360.0;
- if ( fabs(r) > 90.0 )
- r = ( r<0.0 ? -r-180.0 : -r+180.0 );
- if (NAV1_LOC) r*=5.0;
+ if (r> 180.0) r-=360.0; else
+ if (r<-180.0) r+=360.0;
+ if ( fabs(r) > 90.0 )
+ r = ( r<0.0 ? -r-180.0 : -r+180.0 );
+ if ( current_radiostack->get_nav1_loc() ) r*=5.0;
+ } else {
+ r = 0.0;
+ }
return r;
}
r = atan2 ( x, y ) * RAD_TO_DEG - NAV2_Rad - FGBFI::getMagVar();
#endif
- r = current_radiostack->get_nav2_radial() -
- current_radiostack->get_nav2_heading() + 180.0;
- // cout << "Radial = " << current_radiostack->get_nav1_radial()
- // << " Bearing = " << current_radiostack->get_nav1_heading() << endl;
+ if ( current_radiostack->get_nav2_inrange() ) {
+ r = current_radiostack->get_nav2_radial() -
+ current_radiostack->get_nav2_heading() + 180.0;
+ // cout << "Radial = " << current_radiostack->get_nav1_radial()
+ // << " Bearing = " << current_radiostack->get_nav1_heading() << endl;
- if (r> 180.0) r-=360.0; else
- if (r<-180.0) r+=360.0;
- if ( fabs(r) > 90.0 )
- r = ( r<0.0 ? -r-180.0 : -r+180.0 );
+ if (r> 180.0) r-=360.0; else
+ if (r<-180.0) r+=360.0;
+ if ( fabs(r) > 90.0 )
+ r = ( r<0.0 ? -r-180.0 : -r+180.0 );
+ } else {
+ r = 0.0;
+ }
+
return r;
}
-double FGSteam::get_HackOBS1_deg ()
-{ return NAV1_Rad;
+double FGSteam::get_HackOBS1_deg () {
+ return current_radiostack->get_nav1_radial();
}
-double FGSteam::get_HackOBS2_deg ()
-{ return NAV2_Rad;
+double FGSteam::get_HackOBS2_deg () {
+ return current_radiostack->get_nav2_radial();
}
-double FGSteam::get_HackADF_deg ()
-{ double r;
- double x,y;
- y = 60.0 * ( ADF_Lat - FGBFI::getLatitude () );
- x = 60.0 * ( ADF_Lon - FGBFI::getLongitude() )
- * cos ( FGBFI::getLatitude () / RAD_TO_DEG );
- r = atan2 ( x, y ) * RAD_TO_DEG - FGBFI::getHeading ();
- return r;
+double FGSteam::get_HackADF_deg () {
+ double r;
+
+#if 0
+ double x,y;
+ y = 60.0 * ( ADF_Lat - FGBFI::getLatitude () );
+ x = 60.0 * ( ADF_Lon - FGBFI::getLongitude() )
+ * cos ( FGBFI::getLatitude () / RAD_TO_DEG );
+ r = atan2 ( x, y ) * RAD_TO_DEG - FGBFI::getHeading ();
+#endif
+
+ if ( current_radiostack->get_adf_inrange() ) {
+ r = current_radiostack->get_adf_heading() - FGBFI::getHeading() + 180.0;
+
+ // cout << "Radial = " << current_radiostack->get_adf_heading()
+ // << " Heading = " << FGBFI::getHeading() << endl;
+ } else {
+ r = 0.0;
+ }
+
+ return r;
}