From: curt Date: Fri, 12 May 2000 13:41:12 +0000 (+0000) Subject: Added magvar offset to VOR's. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=51898e3a14ce00df75f3f672bd7e7d96fdbc00e0;p=flightgear.git Added magvar offset to VOR's. --- diff --git a/src/Autopilot/newauto.cxx b/src/Autopilot/newauto.cxx index c07f5a677..664c8c7df 100644 --- a/src/Autopilot/newauto.cxx +++ b/src/Autopilot/newauto.cxx @@ -303,14 +303,11 @@ int FGAutopilot::run() { } else if ( heading_mode == FG_HEADING_NAV1 ) { double tgt_radial; double cur_radial; - if ( current_radiostack->get_nav1_loc() ) { - tgt_radial = current_radiostack->get_nav1_radial() + 180.0; - } else { - tgt_radial = current_radiostack->get_nav1_radial(); - } + tgt_radial = current_radiostack->get_nav1_radial() + + FGBFI::getMagVar(); cur_radial = current_radiostack->get_nav1_heading(); - cout << "target rad = " << tgt_radial - << " current rad = " << cur_radial + cout << "target rad (true) = " << tgt_radial + << " current rad (true) = " << cur_radial << endl; double diff = (tgt_radial - cur_radial); @@ -324,7 +321,7 @@ int FGAutopilot::run() { TargetHeading = cur_radial - diff; while ( TargetHeading < 0.0 ) { TargetHeading += 360.0; } while ( TargetHeading > 360.0 ) { TargetHeading -= 360.0; } - cout << "target course = " << TargetHeading << endl; + cout << "target course (true) = " << TargetHeading << endl; } else if ( heading_mode == FG_HEADING_WAYPOINT ) { // update target heading to waypoint diff --git a/src/Cockpit/hud.cxx b/src/Cockpit/hud.cxx index e5a0b895d..f13b5f459 100644 --- a/src/Cockpit/hud.cxx +++ b/src/Cockpit/hud.cxx @@ -1168,7 +1168,7 @@ void fgUpdateHUD( void ) { glDisable(GL_DEPTH_TEST); glDisable(GL_LIGHTING); -// #define ANTI_ALIAS_HUD + // #define ANTI_ALIAS_HUD #ifdef ANTI_ALIAS_HUD #define HUD_COLOR(r,g,b) glColor4f(r,g,b,hud_trans_alpha) glEnable(GL_LINE_SMOOTH); diff --git a/src/Cockpit/steam.cxx b/src/Cockpit/steam.cxx index f64ea5d92..15a071b29 100644 --- a/src/Cockpit/steam.cxx +++ b/src/Cockpit/steam.cxx @@ -315,7 +315,7 @@ void FGSteam::_CatchUp() > have it tumble when you exceed the usual pitch or bank limits, > put in those insidious turning errors ... for now anyway. */ - the_DG_deg = FGBFI::getHeading () - FGBFI::getMagVar (); + the_DG_deg = FGBFI::getHeading () - FGBFI::getMagVar(); /************************** Finished updates, now clear the timer @@ -338,7 +338,7 @@ double FGSteam::get_HackGS_deg () { 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; + return (current_radiostack->get_nav1_target_gs() - angle) * 5.0; } else { return 0.0; } @@ -349,8 +349,8 @@ double FGSteam::get_HackVOR1_deg () { double r; if ( current_radiostack->get_nav1_inrange() ) { - r = current_radiostack->get_nav1_heading() - - current_radiostack->get_nav1_radial(); + r = current_radiostack->get_nav1_heading() - FGBFI::getMagVar() + - current_radiostack->get_nav1_radial(); // cout << "Radial = " << current_radiostack->get_nav1_radial() // << " Bearing = " << current_radiostack->get_nav1_heading() // << endl; @@ -359,7 +359,7 @@ double FGSteam::get_HackVOR1_deg () { 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; + if ( current_radiostack->get_nav1_loc() ) r *= 5.0; } else { r = 0.0; } @@ -372,8 +372,8 @@ double FGSteam::get_HackVOR2_deg () { double r; if ( current_radiostack->get_nav2_inrange() ) { - r = current_radiostack->get_nav2_radial() - - current_radiostack->get_nav2_heading() + 180.0; + r = current_radiostack->get_nav2_heading() - FGBFI::getMagVar() + - current_radiostack->get_nav2_radial(); // cout << "Radial = " << current_radiostack->get_nav1_radial() // << " Bearing = " << current_radiostack->get_nav1_heading() << endl; @@ -403,7 +403,7 @@ double FGSteam::get_HackADF_deg () { double r; if ( current_radiostack->get_adf_inrange() ) { - r = current_radiostack->get_adf_heading() - FGBFI::getHeading() + 180.0; + r = current_radiostack->get_adf_heading() - FGBFI::getHeading(); // cout << "Radial = " << current_radiostack->get_adf_heading() // << " Heading = " << FGBFI::getHeading() << endl; diff --git a/src/Time/fg_time.cxx b/src/Time/fg_time.cxx index 39afdf439..69b29b461 100644 --- a/src/Time/fg_time.cxx +++ b/src/Time/fg_time.cxx @@ -401,6 +401,9 @@ void FGTime::update( double lon, double lat, double alt_m ) { magvar = SGMagVar( lat, lon, alt_m / 1000.0, (long)jd, field ); magdip = atan(field[5]/sqrt(field[3]*field[3]+field[4]*field[4])); + FG_LOG( FG_EVENT, FG_DEBUG, + " Current magvar = " << magvar ); + FG_LOG( FG_EVENT, FG_DEBUG, " Current lon=0.00 Sidereal Time = " << gst ); FG_LOG( FG_EVENT, FG_DEBUG,