diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index 1f87f6f1e2d66536b2574fc1ec4f6c2223519117..e0089123b99db13a60c964ee9dd1fe113be7077b 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -212,6 +212,17 @@ void MissionController::loadFromVehicle(void) } } +void MissionController::_warnIfTerrainFrameUsed(void) +{ + for (int i=1; i<_visualItems->count(); i++) { + SimpleMissionItem* simpleItem = qobject_cast(_visualItems->get(i)); + if (simpleItem && simpleItem->altitudeMode() == SimpleMissionItem::AltitudeTerrainFrame) { + qgcApp()->showMessage(tr("Warning: You are using MAV_FRAME_GLOBAL_TERRAIN_ALT in a mission. %1 does not support sending terrain tiles to vehicle.").arg(qgcApp()->applicationName())); + break; + } + } +} + void MissionController::sendToVehicle(void) { if (_masterController->offline()) { @@ -220,6 +231,7 @@ void MissionController::sendToVehicle(void) qCWarning(MissionControllerLog) << "MissionControllerLog::sendToVehicle called while syncInProgress"; } else { qCDebug(MissionControllerLog) << "MissionControllerLog::sendToVehicle"; + _warnIfTerrainFrameUsed(); if (_visualItems->count() == 1) { // This prevents us from sending a possibly bogus home position to the vehicle QmlObjectListModel emptyModel; diff --git a/src/MissionManager/MissionController.h b/src/MissionManager/MissionController.h index 4a2fda27cd6dd49895776a1192a7f4059be9c608..53e56d01c87b2a9f3861ed661721f2439977a4d0 100644 --- a/src/MissionManager/MissionController.h +++ b/src/MissionManager/MissionController.h @@ -257,6 +257,7 @@ private: void _addCommandTimeDelay(SimpleMissionItem* simpleItem, bool vtolInHover); void _addTimeDistance(bool vtolInHover, double hoverTime, double cruiseTime, double extraTime, double distance, int seqNum); int _insertComplexMissionItemWorker(ComplexMissionItem* complexItem, int i); + void _warnIfTerrainFrameUsed(void); private: MissionManager* _missionManager;