diff --git a/src/MissionManager/PlanMasterController.cc b/src/MissionManager/PlanMasterController.cc index a02ee1c5fe4f09b1a957507b93c5562cc44d2c16..c872b765fd3f79fd223f993ee2be4dd3e4ac44da 100644 --- a/src/MissionManager/PlanMasterController.cc +++ b/src/MissionManager/PlanMasterController.cc @@ -82,7 +82,8 @@ void PlanMasterController::start(bool flyView) #if defined(QGC_AIRMAP_ENABLED) //-- This assumes there is one single instance of PlanMasterController in edit mode. if(!flyView) { - qgcApp()->toolbox()->airspaceManager()->flightPlan()->startFlightPlanning(this); + // Wait for signal confirming AirMap client connection before starting flight planning + connect(qgcApp()->toolbox()->airspaceManager(), &AirspaceManager::connectStatusChanged, this, &PlanMasterController::_startFlightPlanning); } #endif } @@ -271,6 +272,15 @@ void PlanMasterController::_sendRallyPointsComplete(void) } } +#if defined(QGC_AIRMAP_ENABLED) +void PlanMasterController::_startFlightPlanning(void) { + if (qgcApp()->toolbox()->airspaceManager()->connected()) { + qCDebug(PlanMasterControllerLog) << "PlanMasterController::_startFlightPlanning client connected, start flight planning"; + qgcApp()->toolbox()->airspaceManager()->flightPlan()->startFlightPlanning(this); + } +} +#endif + void PlanMasterController::sendToVehicle(void) { if (_managerVehicle->highLatencyLink()) { diff --git a/src/MissionManager/PlanMasterController.h b/src/MissionManager/PlanMasterController.h index b0df25926d95e0e544e2025ad5374de70d0cc6b0..344465a1ae64cd35fff8892ce0b3535f451a8ee8 100644 --- a/src/MissionManager/PlanMasterController.h +++ b/src/MissionManager/PlanMasterController.h @@ -111,6 +111,9 @@ private slots: void _sendMissionComplete(void); void _sendGeoFenceComplete(void); void _sendRallyPointsComplete(void); +#if defined(QGC_AIRMAP_ENABLED) + void _startFlightPlanning(void); +#endif private: void _showPlanFromManagerVehicle(void);