|
|
@ -352,7 +352,7 @@ AirMapFlightPlanManager::_endFlight() |
|
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
bool |
|
|
|
bool |
|
|
|
AirMapFlightPlanManager::_collectFlightDtata() |
|
|
|
AirMapFlightPlanManager::_collectFlightData() |
|
|
|
{ |
|
|
|
{ |
|
|
|
if(!_planController || !_planController->missionController()) { |
|
|
|
if(!_planController || !_planController->missionController()) { |
|
|
|
return false; |
|
|
|
return false; |
|
|
@ -364,17 +364,11 @@ AirMapFlightPlanManager::_collectFlightDtata() |
|
|
|
qCDebug(AirMapManagerLog) << "Not enough points for a flight plan."; |
|
|
|
qCDebug(AirMapManagerLog) << "Not enough points for a flight plan."; |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
if (_planController->missionController()->readyForSaveState() != VisualMissionItem::ReadyForSave) { |
|
|
|
// altitude reference for AirMap is takeoff altitude & all altitudes provided in the bounding cube are relative to takeoff already
|
|
|
|
qCDebug(AirMapManagerLog) << "No takeoff altitude"; |
|
|
|
_flight.takeoffCoord = _planController->missionController()->takeoffCoordinate(); |
|
|
|
return false; |
|
|
|
_flight.maxAltitudeAboveTakeoff = static_cast<float>(fmax(bc.pointNW.altitude(), bc.pointSE.altitude())); |
|
|
|
} |
|
|
|
_flight.coords = bc.polygon2D(); |
|
|
|
float maxMissionAltitude = static_cast<float>(fmax(bc.pointNW.altitude(), bc.pointSE.altitude())); |
|
|
|
_flight.bc = bc; |
|
|
|
double takeoffAltitude = _planController->missionController()->plannedHomePositionAltitude(); |
|
|
|
|
|
|
|
_flight.takeoffCoord = _planController->missionController()->takeoffCoordinate(); |
|
|
|
|
|
|
|
// altitude reference for AirMap is takeoff altitude, so adjust if altitudes specified in absolute terms
|
|
|
|
|
|
|
|
_flight.maxAltitudeAboveTakeoff = (_planController->missionController()->globalAltitudeMode() == QGroundControlQmlGlobal::AltitudeModeRelative) ? maxMissionAltitude : maxMissionAltitude - takeoffAltitude; |
|
|
|
|
|
|
|
_flight.coords = bc.polygon2D(); |
|
|
|
|
|
|
|
_flight.bc = bc; |
|
|
|
|
|
|
|
emit missionAreaChanged(); |
|
|
|
emit missionAreaChanged(); |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
@ -386,7 +380,7 @@ AirMapFlightPlanManager::_createFlightPlan() |
|
|
|
_flight.reset(); |
|
|
|
_flight.reset(); |
|
|
|
|
|
|
|
|
|
|
|
//-- Get flight data
|
|
|
|
//-- Get flight data
|
|
|
|
if(!_collectFlightDtata()) { |
|
|
|
if(!_collectFlightData()) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -574,7 +568,7 @@ AirMapFlightPlanManager::_updateFlightPlan(bool interactive) |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
//-- Get flight data
|
|
|
|
//-- Get flight data
|
|
|
|
if(!_collectFlightDtata()) { |
|
|
|
if(!_collectFlightData()) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|