]> git.mxchange.org Git - flightgear.git/commitdiff
Fixed [simple] terrain following altitude hold mode to work again.
authorcurt <curt>
Fri, 31 Aug 2001 18:07:23 +0000 (18:07 +0000)
committercurt <curt>
Fri, 31 Aug 2001 18:07:23 +0000 (18:07 +0000)
src/Autopilot/newauto.hxx
src/FDM/JSBSim.cxx
src/FDM/LaRCsim.cxx
src/Main/fg_props.cxx

index 87b6d7545fe8cd050a86d3bcbdb7a293fb6d0e1b..22af68a6144dcda9497f58e91bd11c51d52da0d6 100644 (file)
@@ -176,6 +176,8 @@ public:
     inline void set_TargetDistance( double val ) { TargetDistance = val; }
     inline double get_TargetAltitude() const { return TargetAltitude; }
     inline void set_TargetAltitude( double val ) { TargetAltitude = val; }
+    inline double get_TargetAGL() const { return TargetAGL; }
+    inline void set_TargetAGL( double val ) { TargetAGL = val; }
     inline double get_TargetClimbRate() const { return TargetClimbRate; }
     inline void set_TargetClimbRate( double val ) { TargetClimbRate = val; }
 
index 4786bd6626838c8b8dc7468466bd0d7a1fc7b3bb..406ce3a42bd6f9e85704d2ab475c03980029b1cf 100644 (file)
@@ -381,6 +381,8 @@ bool FGJSBsim::copy_from_JSBsim() {
                      Position->GetLongitude(),
                      Position->Geth() );
 
+    _set_Altitude_AGL( Position->GetDistanceAGL() );
+
     _set_Euler_Angles( Rotation->Getphi(),
                        Rotation->Gettht(),
                        Rotation->Getpsi() );
index da2ee815992089a813bdf09979957d3912729b07..be54fb09638b1f416b6b49b3d8ab6c152f33c88d 100644 (file)
@@ -469,7 +469,7 @@ bool FGLaRCsim::copy_from_LaRCsim() {
     _set_Geodetic_Position( Latitude, tmp_lon, Altitude );
     _set_Euler_Angles( Phi, Theta, Psi );
 
-    _set_Altitude_AGL( Altitude-Runway_altitude );
+    _set_Altitude_AGL( Altitude - Runway_altitude );
 
     // Miscellaneous quantities
     _set_T_Local_to_Body(T_local_to_body_m);
index 396aa66e205b69032e7056f85e0edfe7e1d2d86b..a2b34155a343c547df2f1f79b23cb3d6ebc49b1d 100644 (file)
@@ -571,6 +571,12 @@ setAPTerrainLock (bool lock)
 {
   current_autopilot->set_AltitudeMode(FGAutopilot::FG_ALTITUDE_TERRAIN);
   current_autopilot->set_AltitudeEnabled(lock);
+  current_autopilot->set_TargetAGL(
+      current_aircraft.fdm_state->get_Altitude_AGL() * SG_FEET_TO_METER
+    );
+  cout << "Target AGL = "
+       << current_aircraft.fdm_state->get_Altitude_AGL() * SG_FEET_TO_METER
+       << endl;
 }
 
 
@@ -1030,6 +1036,8 @@ fgInitProps ()
   fgSetArchivable("/autopilot/locks/glide-slope");
   fgTie("/autopilot/locks/terrain", getAPTerrainLock, setAPTerrainLock);
   fgSetArchivable("/autopilot/locks/terrain");
+  fgTie("/autopilot/settings/agl-ft", getAPAltitude, setAPAltitude);
+  fgSetArchivable("/autopilot/settings/agl-ft");
   fgTie("/autopilot/settings/climb-rate-fpm", getAPClimb, setAPClimb, false);
   fgSetArchivable("/autopilot/settings/climb-rate-fpm");
   fgTie("/autopilot/locks/heading", getAPHeadingLock, setAPHeadingLock);
@@ -1195,7 +1203,7 @@ FGAndCondition::FGAndCondition ()
 
 FGAndCondition::~FGAndCondition ()
 {
-  for (int i = 0; i < _conditions.size(); i++)
+  for (unsigned int i = 0; i < _conditions.size(); i++)
     delete _conditions[i];
 }
 
@@ -1228,7 +1236,7 @@ FGOrCondition::FGOrCondition ()
 
 FGOrCondition::~FGOrCondition ()
 {
-  for (int i = 0; i < _conditions.size(); i++)
+  for (unsigned int i = 0; i < _conditions.size(); i++)
     delete _conditions[i];
 }