From 2214f540e28cdd4e7c6c9409b0bc549bd93129ae Mon Sep 17 00:00:00 2001 From: curt Date: Wed, 23 Oct 2002 16:27:30 +0000 Subject: [PATCH] Fixed the DG heading bug hold to work with the new DG instrumentation. It was slightly goofed up before by about the amount of the magnetic variation. --- src/Autopilot/newauto.cxx | 14 ++++++++------ src/Autopilot/newauto.hxx | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Autopilot/newauto.cxx b/src/Autopilot/newauto.cxx index a8699bf57..1e8414e2a 100644 --- a/src/Autopilot/newauto.cxx +++ b/src/Autopilot/newauto.cxx @@ -213,6 +213,9 @@ void FGAutopilot::init () altitude_agl_node = fgGetNode("/position/altitude-agl-ft", true); vertical_speed_node = fgGetNode("/velocities/vertical-speed-fps", true); heading_node = fgGetNode("/orientation/heading-deg", true); + dg_heading_node + = fgGetNode("/instrumentation/heading-indicator/indicated-heading-deg", + true); roll_node = fgGetNode("/orientation/roll-deg", true); pitch_node = fgGetNode("/orientation/pitch-deg", true); @@ -484,8 +487,10 @@ FGAutopilot::update (double dt) // heading hold if ( heading_hold == true ) { if ( heading_mode == FG_DG_HEADING_LOCK ) { - TargetHeading = DGTargetHeading + - globals->get_steam()->get_DG_err(); + double dg_error = heading_node->getDoubleValue() + - dg_heading_node->getDoubleValue(); + TargetHeading = DGTargetHeading + dg_error; + // cout << "dg_error = " << dg_error << endl; while ( TargetHeading < 0.0 ) { TargetHeading += 360.0; } while ( TargetHeading > 360.0 ) { TargetHeading -= 360.0; } MakeTargetHeadingStr( TargetHeading ); @@ -887,10 +892,7 @@ void FGAutopilot::set_HeadingMode( fgAutoHeadingMode mode ) { heading_mode = mode; if ( heading_mode == FG_DG_HEADING_LOCK ) { - // set heading hold to current heading (as read from DG) - // ... no, leave target heading along ... just use the current - // heading bug value - // DGTargetHeading = FGSteam::get_DG_deg(); + // use current heading bug value } else if ( heading_mode == FG_TC_HEADING_LOCK ) { // set autopilot to hold a zero turn (as reported by the TC) } else if ( heading_mode == FG_TRUE_HEADING_LOCK ) { diff --git a/src/Autopilot/newauto.hxx b/src/Autopilot/newauto.hxx index 4d2407016..c10ed7dff 100644 --- a/src/Autopilot/newauto.hxx +++ b/src/Autopilot/newauto.hxx @@ -124,6 +124,7 @@ private: SGPropertyNode *altitude_agl_node; SGPropertyNode *vertical_speed_node; SGPropertyNode *heading_node; + SGPropertyNode *dg_heading_node; SGPropertyNode *roll_node; SGPropertyNode *pitch_node;