1
0
Fork 0

Expose a flag indicating if the GPS is driving the AP (to give clearer user feedback when that is the case)

This commit is contained in:
jmt 2010-03-27 12:18:51 +00:00 committed by Tim Moore
parent 1aff92ce49
commit ee8437431a
2 changed files with 8 additions and 1 deletions

View file

@ -303,6 +303,7 @@ GPS::init ()
fromFlag->alias(wp1_node->getChild("from-flag"));
// autopilot drive properties
_apDrivingFlag = fgGetNode("/autopilot/settings/gps-driving-true-heading", true);
_apTrueHeading = fgGetNode("/autopilot/settings/true-heading-deg",true);
_apTargetAltitudeFt = fgGetNode("/autopilot/settings/target-altitude-ft", true);
_apAltitudeLock = fgGetNode("/autopilot/locks/altitude", true);
@ -958,12 +959,17 @@ void GPS::updateRouteData()
void GPS::driveAutopilot()
{
if (!_config.driveAutopilot() || !_realismSimpleGps->getBoolValue()) {
_apDrivingFlag->setBoolValue(false);
return;
}
// compatability feature - allow the route-manager / GPS to drive the
// generic autopilot heading hold *in leg mode only*
if (_mode == "leg") {
bool drive = _mode == "leg";
_apDrivingFlag->setBoolValue(drive);
if (drive) {
// FIXME: we want to set desired track, not heading, here
_apTrueHeading->setDoubleValue(getWP1Bearing());
}

View file

@ -413,6 +413,7 @@ private:
SGPropertyNode_ptr _realismSimpleGps; ///< should the GPS be simple or realistic?
// autopilot drive properties
SGPropertyNode_ptr _apDrivingFlag;
SGPropertyNode_ptr _apTrueHeading;
SGPropertyNode_ptr _apTargetAltitudeFt;
SGPropertyNode_ptr _apAltitudeLock;