From a8fb1aabcaa3d1a0d81734971a720e66cad6b23c Mon Sep 17 00:00:00 2001 From: curt Date: Tue, 5 Jun 2001 22:10:33 +0000 Subject: [PATCH] - eliminated all references to BFI; use properties instead - copied DEFAULT_AP_HEADING_LOCK over from old BFI --- src/Autopilot/newauto.cxx | 65 +++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 37 deletions(-) diff --git a/src/Autopilot/newauto.cxx b/src/Autopilot/newauto.cxx index 8c7eb6f86..a808cfb01 100644 --- a/src/Autopilot/newauto.cxx +++ b/src/Autopilot/newauto.cxx @@ -38,13 +38,14 @@ #include #include #include -#include
#include
#include #include "newauto.hxx" +#define DEFAULT_AP_HEADING_LOCK FGAutopilot::FG_DG_HEADING_LOCK + FGAutopilot *current_autopilot; @@ -225,8 +226,8 @@ void FGAutopilot::init() { DGTargetHeading = sg_random() * 360.0; // Initialize target location to startup location - old_lat = FGBFI::getLatitude(); - old_lon = FGBFI::getLongitude(); + old_lat = fgGetDouble("/position/latitude"); + old_lon = fgGetDouble("/position/longitude"); // set_WayPoint( old_lon, old_lat, 0.0, "default" ); MakeTargetLatLonStr( get_TargetLatitude(), get_TargetLongitude() ); @@ -295,10 +296,6 @@ void FGAutopilot::reset() { sprintf( NewTgtAirportId, "%s", fgGetString("/sim/startup/airport-id").c_str() ); - // TargetLatitude = FGBFI::getLatitude(); - // TargetLongitude = FGBFI::getLongitude(); - // set_WayPoint( FGBFI::getLongitude(), FGBFI::getLatitude(), 0.0, "reset" ); - MakeTargetLatLonStr( get_TargetLatitude(), get_TargetLongitude() ); } @@ -347,14 +344,10 @@ int FGAutopilot::run() { // passing in the data pointer // get control settings - // double aileron = FGBFI::getAileron(); - // double elevator = FGBFI::getElevator(); - // double elevator_trim = FGBFI::getElevatorTrim(); - // double rudder = FGBFI::getRudder(); - double lat = FGBFI::getLatitude(); - double lon = FGBFI::getLongitude(); - double alt = FGBFI::getAltitude() * SG_FEET_TO_METER; + double lat = fgGetDouble("/position/latitude"); + double lon = fgGetDouble("/position/longitude"); + double alt = fgGetDouble("/position/altitude") * SG_FEET_TO_METER; #ifdef FG_FORCE_AUTO_DISENGAGE // see if somebody else has changed them @@ -496,7 +489,7 @@ int FGAutopilot::run() { // end of the line heading_mode = FG_TRUE_HEADING_LOCK; // use current heading - TargetHeading = FGBFI::getHeading(); + TargetHeading = fgGetDouble("/orientation/heading"); } } MakeTargetHeadingStr( TargetHeading ); @@ -523,7 +516,8 @@ int FGAutopilot::run() { double AileronSet; RelHeading - = NormalizeDegrees( TargetHeading - FGBFI::getHeading() ); + = NormalizeDegrees( TargetHeading + - fgGetDouble("/orientation/heading") ); // figure out how far off we are from desired heading // Now it is time to deterime how far we should be rolled. @@ -558,7 +552,8 @@ int FGAutopilot::run() { SG_LOG( SG_COCKPIT, SG_BULK, "TargetRoll: " << TargetRoll ); - RelRoll = NormalizeDegrees( TargetRoll - FGBFI::getRoll() ); + RelRoll = NormalizeDegrees( TargetRoll + - fgGetDouble("/orientation/roll") ); // Check if we are further from heading than the roll out // smooth point @@ -590,15 +585,11 @@ int FGAutopilot::run() { double prop_adj, int_adj, total_adj; if ( altitude_mode == FG_ALTITUDE_LOCK ) { - // normal altitude hold - // cout << "TargetAltitude = " << TargetAltitude - // << "Altitude = " << FGBFI::getAltitude() * SG_FEET_TO_METER - // << endl; climb_rate = ( TargetAltitude - FGSteam::get_ALT_ft() * SG_FEET_TO_METER ) * 8.0; } else if ( altitude_mode == FG_ALTITUDE_GS1 ) { double x = current_radiostack->get_nav1_gs_dist(); - double y = (FGBFI::getAltitude() + double y = (fgGetDouble("/position/altitude") - current_radiostack->get_nav1_elev()) * SG_FEET_TO_METER; double current_angle = atan2( y, x ) * SGD_RADIANS_TO_DEGREES; // cout << "current angle = " << current_angle << endl; @@ -625,7 +616,8 @@ int FGAutopilot::run() { } else if ( altitude_mode == FG_ALTITUDE_TERRAIN ) { // brain dead ground hugging with no look ahead climb_rate = - ( TargetAGL - FGBFI::getAGL()*SG_FEET_TO_METER ) * 16.0; + ( TargetAGL - fgGetDouble("/position/altitude-agl") + * SG_FEET_TO_METER ) * 16.0; // cout << "target agl = " << TargetAGL // << " current agl = " << fgAPget_agl() // << " target climb rate = " << climb_rate @@ -666,9 +658,8 @@ int FGAutopilot::run() { // << climb_rate * SG_METER_TO_FEET // << " fpm" << endl; - error = FGBFI::getVerticalSpeed() * SG_FEET_TO_METER - climb_rate; - // cout << "climb rate = " << FGBFI::getVerticalSpeed() - // << " vsi rate = " << FGSteam::get_VSI_fps() << endl; + error = fgGetDouble("/velocities/vertical-speed") + * SG_FEET_TO_METER - climb_rate; // accumulate the error under the curve ... this really should // be *= delta t @@ -792,18 +783,19 @@ void FGAutopilot::set_HeadingMode( fgAutoHeadingMode mode ) { // set autopilot to hold a zero turn (as reported by the TC) } else if ( heading_mode == FG_TRUE_HEADING_LOCK ) { // set heading hold to current heading - TargetHeading = FGBFI::getHeading(); + TargetHeading = fgGetDouble("/orientation/heading"); } else if ( heading_mode == FG_HEADING_WAYPOINT ) { if ( globals->get_route()->size() ) { double course, distance; - old_lat = FGBFI::getLatitude(); - old_lon = FGBFI::getLongitude(); + old_lat = fgGetDouble("/position/latitude"); + old_lon = fgGetDouble("/position/longitude"); waypoint = globals->get_route()->get_first(); - waypoint.CourseAndDistance( FGBFI::getLongitude(), - FGBFI::getLatitude(), - FGBFI::getLatitude() * SG_FEET_TO_METER, + waypoint.CourseAndDistance( fgGetDouble("/position/longitude"), + fgGetDouble("/position/latitude"), + fgGetDouble("/position/latitude") + * SG_FEET_TO_METER, &course, &distance ); TargetHeading = course; TargetDistance = distance; @@ -825,7 +817,6 @@ void FGAutopilot::set_HeadingMode( fgAutoHeadingMode mode ) { } else { // no more way points, default to heading lock. heading_mode = FG_TC_HEADING_LOCK; - // TargetHeading = FGBFI::getHeading(); } } @@ -840,8 +831,8 @@ void FGAutopilot::set_AltitudeMode( fgAutoAltitudeMode mode ) { alt_error_accum = 0.0; if ( altitude_mode == FG_ALTITUDE_LOCK ) { - if ( TargetAltitude < FGBFI::getAGL() * SG_FEET_TO_METER ) { - // TargetAltitude = FGBFI::getAltitude() * SG_FEET_TO_METER; + if ( TargetAltitude < fgGetDouble("/position/altitude-agl") + * SG_FEET_TO_METER ) { } if ( fgGetString("/sim/startup/units") == "feet" ) { @@ -853,7 +844,7 @@ void FGAutopilot::set_AltitudeMode( fgAutoAltitudeMode mode ) { climb_error_accum = 0.0; } else if ( altitude_mode == FG_ALTITUDE_TERRAIN ) { - TargetAGL = FGBFI::getAGL() * SG_FEET_TO_METER; + TargetAGL = fgGetDouble("/position/altitude-agl") * SG_FEET_TO_METER; if ( fgGetString("/sim/startup/units") == "feet" ) { MakeTargetAltitudeStr( TargetAGL * SG_METER_TO_FEET ); @@ -1042,7 +1033,7 @@ void FGAutopilot::set_AutoThrottleEnabled( bool value ) { auto_throttle = value; if ( auto_throttle == true ) { - TargetSpeed = FGBFI::getAirspeed(); + TargetSpeed = fgGetDouble("/velocities/airspeed"); speed_error_accum = 0.0; } -- 2.39.5