QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
MissionController Class Reference

#include <MissionController.h>

+ Inheritance diagram for MissionController:
+ Collaboration diagram for MissionController:

Public Types

enum  SendToVehiclePreCheckState { SendToVehiclePreCheckStateOk , SendToVehiclePreCheckStateNoActiveVehicle , SendToVehiclePreCheckStateFirwmareVehicleMismatch , SendToVehiclePreCheckStateActiveMission }
 
using MissionFlightStatus_t = ::MissionFlightStatus_t
 Default to use for newly created items.
 

Signals

void visualItemsReset (void)
 
void splitSegmentChanged (void)
 
void newItemsFromVehicle (void)
 
void missionTotalDistanceChanged (double missionTotalDistance)
 
void missionPlannedDistanceChanged (double missionPlannedDistance)
 
void missionTimeChanged (void)
 
void missionHoverDistanceChanged (double missionHoverDistance)
 
void missionHoverTimeChanged (void)
 
void missionCruiseDistanceChanged (double missionCruiseDistance)
 
void missionCruiseTimeChanged (void)
 
void missionMaxTelemetryChanged (double missionMaxTelemetry)
 
void complexMissionItemsChanged (void)
 
void resumeMissionIndexChanged (void)
 
void resumeMissionReady (void)
 
void resumeMissionUploadFail (void)
 
void batteryChangePointChanged (int batteryChangePoint)
 
void batteriesRequiredChanged (int batteriesRequired)
 
void plannedHomePositionChanged (QGeoCoordinate plannedHomePosition)
 
void homePositionSetChanged (void)
 
void progressPctChanged (double progressPct)
 
void currentMissionIndexChanged (int currentMissionIndex)
 
void planViewStateChanged (void)
 All plan-view properties are recomputed together in setCurrentPlanViewSeqNum, so one signal covers them all.
 
void takeoffMissionItemChanged (void)
 
void missionBoundingCubeChanged (void)
 
void hasLandItemChanged (void)
 
void multipleLandPatternsAllowedChanged (void)
 
void minAMSLAltitudeChanged (double minAMSLAltitude)
 
void maxAMSLAltitudeChanged (double maxAMSLAltitude)
 
void recalcTerrainProfile (void)
 
void _recalcMissionFlightStatusSignal (void)
 
void _recalcFlightPathSegmentsSignal (void)
 
void globalAltitudeFrameChanged (void)
 
- Signals inherited from PlanElementController
void supportedChanged (bool supported)
 
void containsItemsChanged ()
 
void syncInProgressChanged (bool syncInProgress)
 
void dirtyChanged (bool dirty)
 
void sendComplete (void)
 
void removeAllComplete (void)
 

Public Member Functions

 MissionController (PlanMasterController *masterController, QObject *parent=nullptr)
 
 ~MissionController ()
 
Q_INVOKABLE void removeVisualItem (int viIndex)
 
Q_INVOKABLE int visualItemIndexForObject (QObject *object) const
 Returns the visual item index for the given VisualMissionItem object, or -1 if not found.
 
Q_INVOKABLE void setHomePosition (QGeoCoordinate coordinate)
 Set the planned home position from a map click.
 
Q_INVOKABLE VisualMissionIteminsertSimpleMissionItem (QGeoCoordinate coordinate, int visualItemIndex, bool makeCurrentItem=false)
 
Q_INVOKABLE VisualMissionIteminsertTakeoffItem (QGeoCoordinate coordinate, int visualItemIndex, bool makeCurrentItem=false)
 
Q_INVOKABLE VisualMissionIteminsertLandItem (QGeoCoordinate coordinate, int visualItemIndex, bool makeCurrentItem=false)
 
Q_INVOKABLE VisualMissionIteminsertROIMissionItem (QGeoCoordinate coordinate, int visualItemIndex, bool makeCurrentItem=false)
 
Q_INVOKABLE VisualMissionIteminsertCancelROIMissionItem (int visualItemIndex, bool makeCurrentItem=false)
 
Q_INVOKABLE VisualMissionIteminsertComplexMissionItem (QString itemName, QGeoCoordinate mapCenterCoordinate, int visualItemIndex, bool makeCurrentItem=false)
 
Q_INVOKABLE VisualMissionIteminsertComplexMissionItemFromKMLOrSHP (QString itemName, QString file, int visualItemIndex, bool makeCurrentItem=false)
 
Q_INVOKABLE void resumeMission (int resumeIndex)
 
Q_INVOKABLE void applyDefaultMissionAltitude (void)
 Updates the altitudes of the items in the current mission to the new default altitude.
 
Q_INVOKABLE void setCurrentPlanViewSeqNum (int sequenceNumber, bool force)
 
Q_INVOKABLE void repositionMission (const QGeoCoordinate &newHome, bool repositionTakeoffItems=true, bool repositionLandingItems=true)
 
Q_INVOKABLE void offsetMission (double eastMeters, double northMeters, double upMeters=0.0, bool offsetTakeoffItems=false, bool offsetLandingItems=false)
 
Q_INVOKABLE void rotateMission (double degreesCW, bool rotateTakeoffItems=false, bool rotateLandingItems=false)
 
Q_INVOKABLE SendToVehiclePreCheckState sendToVehiclePreCheck (void)
 
int readyForSaveState (void) const
 
bool loadTextFile (QFile &file, QString &errorString)
 
QGCGeoBoundingCubetravelBoundingCube ()
 
QGeoCoordinate takeoffCoordinate ()
 
bool supported (void) const final
 true: controller is waiting for the current load to complete
 
void start (bool flyView) final
 Should be called immediately upon Component.onCompleted.
 
void save (QJsonObject &json) final
 
bool load (const QJsonObject &json, QString &errorString) final
 
void loadFromVehicle (void) final
 
void sendToVehicle (void) final
 
void removeAll (void) final
 Removes all from controller only.
 
void removeAllFromVehicle (void) final
 
bool syncInProgress (void) const final
 
bool dirty (void) const final
 
void setDirty (bool dirty) final
 
bool containsItems (void) const final
 
bool showPlanFromManagerVehicle (void) final
 
void addMissionToKML (KMLPlanDomDocument &planKML)
 
QmlObjectListModelvisualItems (void)
 
QmlObjectTreeModelvisualItemsTree (void)
 
QPersistentModelIndex planFileGroupIndex (void) const
 
QPersistentModelIndex defaultsGroupIndex (void) const
 
QPersistentModelIndex missionGroupIndex (void) const
 
QPersistentModelIndex fenceGroupIndex (void) const
 
QPersistentModelIndex rallyGroupIndex (void) const
 
QPersistentModelIndex transformGroupIndex (void) const
 
QmlObjectListModelsimpleFlightPathSegments (void)
 
QmlObjectListModeldirectionArrows (void)
 
QVariantList complexMissionItems (void) const
 
QGeoCoordinate plannedHomePosition (void) const
 
bool homePositionSet (void) const
 
VisualMissionItemcurrentPlanViewItem (void) const
 
TakeoffMissionItemtakeoffMissionItem (void) const
 
double progressPct (void) const
 
bool isInsertTakeoffValid (void) const
 
bool multipleLandPatternsAllowed (void) const
 
double minAMSLAltitude (void) const
 
double maxAMSLAltitude (void) const
 
int currentMissionIndex (void) const
 
int resumeMissionIndex (void) const
 
int currentPlanViewSeqNum (void) const
 
int currentPlanViewVIIndex (void) const
 
double missionTotalDistance (void) const
 
double missionPlannedDistance (void) const
 
double missionTime (void) const
 
double missionHoverDistance (void) const
 
double missionHoverTime (void) const
 
double missionCruiseDistance (void) const
 
double missionCruiseTime (void) const
 
double missionMaxTelemetry (void) const
 
int batteryChangePoint (void) const
 -1 for not supported, 0 for not needed
 
int batteriesRequired (void) const
 -1 for not supported
 
bool isFirstLandingComplexItem (const LandingComplexItem *item) const
 
bool isEmpty (void) const
 
QGroundControlQmlGlobal::AltitudeFrame globalAltitudeFrame (void)
 
QGroundControlQmlGlobal::AltitudeFrame globalAltitudeFrameDefault (void)
 
void setGlobalAltitudeFrame (QGroundControlQmlGlobal::AltitudeFrame altFrame)
 
- Public Member Functions inherited from PlanElementController
 PlanElementController (PlanMasterController *masterController, QObject *parent=nullptr)
 
 ~PlanElementController ()
 true: unsaved/sent changes are present, false: no changes since last save/send
 
PlanMasterControllermasterController (void)
 

Static Public Member Functions

static void sendItemsToVehicle (Vehicle *vehicle, QmlObjectListModel *visualMissionItems)
 Sends the mission items to the specified vehicle.
 

Static Public Attributes

static constexpr int kPlanFileGroupRow = 0
 
static constexpr int kDefaultsGroupRow = 1
 
static constexpr int kMissionGroupRow = 2
 
static constexpr int kFenceGroupRow = 3
 
static constexpr int kRallyGroupRow = 4
 
static constexpr int kTransformGroupRow = 5
 
static constexpr int kGroupCount = 6
 

Additional Inherited Members

- Protected Attributes inherited from PlanElementController
PlanMasterController_masterController
 
bool _flyView
 

Detailed Description

Definition at line 36 of file MissionController.h.

Member Typedef Documentation

◆ MissionFlightStatus_t

Default to use for newly created items.

Definition at line 50 of file MissionController.h.

Member Enumeration Documentation

◆ SendToVehiclePreCheckState

Enumerator
SendToVehiclePreCheckStateOk 
SendToVehiclePreCheckStateNoActiveVehicle 
SendToVehiclePreCheckStateFirwmareVehicleMismatch 
SendToVehiclePreCheckStateActiveMission 

Definition at line 209 of file MissionController.h.

Constructor & Destructor Documentation

◆ MissionController()

◆ ~MissionController()

MissionController::~MissionController ( )

Definition at line 66 of file MissionController.cc.

Member Function Documentation

◆ _recalcFlightPathSegmentsSignal

void MissionController::_recalcFlightPathSegmentsSignal ( void  )
signal

◆ _recalcMissionFlightStatusSignal

void MissionController::_recalcMissionFlightStatusSignal ( void  )
signal

Referenced by MissionController().

◆ addMissionToKML()

void MissionController::addMissionToKML ( KMLPlanDomDocument planKML)

Definition at line 234 of file MissionController.cc.

References KMLPlanDomDocument::addMission().

Referenced by PlanMasterController::saveToKml().

◆ applyDefaultMissionAltitude()

void MissionController::applyDefaultMissionAltitude ( void  )

Updates the altitudes of the items in the current mission to the new default altitude.

Definition at line 1847 of file MissionController.cc.

References VisualMissionItem::applyNewAltitude(), QmlObjectListModel::count(), and QmlObjectListModel::value().

◆ batteriesRequired()

int MissionController::batteriesRequired ( void  ) const
inline

-1 for not supported

Definition at line 288 of file MissionController.h.

References MissionFlightStatus_t::batteriesRequired.

◆ batteriesRequiredChanged

void MissionController::batteriesRequiredChanged ( int  batteriesRequired)
signal

◆ batteryChangePoint()

int MissionController::batteryChangePoint ( void  ) const
inline

-1 for not supported, 0 for not needed

Definition at line 287 of file MissionController.h.

References MissionFlightStatus_t::batteryChangePoint.

◆ batteryChangePointChanged

void MissionController::batteryChangePointChanged ( int  batteryChangePoint)
signal

◆ complexMissionItems()

QVariantList MissionController::complexMissionItems ( void  ) const

◆ complexMissionItemsChanged

void MissionController::complexMissionItemsChanged ( void  )
signal

◆ containsItems()

bool MissionController::containsItems ( void  ) const
finalvirtual

Implements PlanElementController.

Definition at line 1796 of file MissionController.cc.

References QmlObjectListModel::count().

Referenced by PlanMasterController::containsItems().

◆ currentMissionIndex()

int MissionController::currentMissionIndex ( void  ) const

◆ currentMissionIndexChanged

void MissionController::currentMissionIndexChanged ( int  currentMissionIndex)
signal

◆ currentPlanViewItem()

VisualMissionItem * MissionController::currentPlanViewItem ( void  ) const
inline

Definition at line 265 of file MissionController.h.

◆ currentPlanViewSeqNum()

int MissionController::currentPlanViewSeqNum ( void  ) const
inline

Definition at line 275 of file MissionController.h.

◆ currentPlanViewVIIndex()

int MissionController::currentPlanViewVIIndex ( void  ) const
inline

Definition at line 276 of file MissionController.h.

◆ defaultsGroupIndex()

QPersistentModelIndex MissionController::defaultsGroupIndex ( void  ) const
inline

Definition at line 255 of file MissionController.h.

◆ directionArrows()

QmlObjectListModel * MissionController::directionArrows ( void  )
inline

Definition at line 261 of file MissionController.h.

◆ dirty()

bool MissionController::dirty ( void  ) const
finalvirtual

Implements PlanElementController.

Definition at line 1750 of file MissionController.cc.

References ObjectItemModelBase::dirty().

Referenced by setDirty().

◆ fenceGroupIndex()

QPersistentModelIndex MissionController::fenceGroupIndex ( void  ) const
inline

Definition at line 257 of file MissionController.h.

◆ globalAltitudeFrame()

QGroundControlQmlGlobal::AltitudeFrame MissionController::globalAltitudeFrame ( void  )

Definition at line 2392 of file MissionController.cc.

Referenced by insertComplexMissionItem().

◆ globalAltitudeFrameChanged

void MissionController::globalAltitudeFrameChanged ( void  )
signal

Referenced by setGlobalAltitudeFrame().

◆ globalAltitudeFrameDefault()

QGroundControlQmlGlobal::AltitudeFrame MissionController::globalAltitudeFrameDefault ( void  )

◆ hasLandItemChanged

void MissionController::hasLandItemChanged ( void  )
signal

◆ homePositionSet()

bool MissionController::homePositionSet ( void  ) const

Definition at line 1835 of file MissionController.cc.

References MissionSettingsItem::coordinate().

◆ homePositionSetChanged

void MissionController::homePositionSetChanged ( void  )
signal

◆ insertCancelROIMissionItem()

VisualMissionItem * MissionController::insertCancelROIMissionItem ( int  visualItemIndex,
bool  makeCurrentItem = false 
)

Add a new Cancel ROI mission item to the list

Parameters
visualItemIndexindex to insert at, -1 for end of list
makeCurrentItemtrue: Make this item the current item
Returns
Newly created item

Definition at line 379 of file MissionController.cc.

References Vehicle::firmwarePlugin(), SimpleMissionItem::missionItem(), SimpleMissionItem::setCommand(), MissionItem::setParam1(), FirmwarePlugin::supportedMissionCommands(), and QGCMAVLinkTypes::VehicleClassGeneric.

◆ insertComplexMissionItem()

VisualMissionItem * MissionController::insertComplexMissionItem ( QString  itemName,
QGeoCoordinate  mapCenterCoordinate,
int  visualItemIndex,
bool  makeCurrentItem = false 
)

Add a new complex mission item to the list

Parameters
itemNameName of complex item to create (canonicalName from complexMissionItems)
mapCenterCoordinatecoordinate for current center of map
visualItemIndexindex to insert at, -1 for end of list
makeCurrentItemtrue: Make this item the current item
Returns
Newly created item

Definition at line 390 of file MissionController.cc.

References PlanElementController::_flyView, PlanElementController::_masterController, QGroundControlQmlGlobal::AltitudeFrameMixed, ComplexMissionItem::applyPreviousAltitudeFrame(), QGCCorePlugin::createComplexMissionItem(), globalAltitudeFrame(), QGCCorePlugin::instance(), and VisualMissionItem::setCoordinate().

Referenced by CorridorScanPlanCreator::createPlan(), StructureScanPlanCreator::createPlan(), SurveyPlanCreator::createPlan(), and insertLandItem().

◆ insertComplexMissionItemFromKMLOrSHP()

VisualMissionItem * MissionController::insertComplexMissionItemFromKMLOrSHP ( QString  itemName,
QString  file,
int  visualItemIndex,
bool  makeCurrentItem = false 
)

Add a new complex mission item to the list

Parameters
itemNameName of complex item to create (canonicalName from complexMissionItems)
filekml or shp file to load from shape from
coordinateCoordinate for item
visualItemIndexindex to insert at, -1 for end of list
makeCurrentItemtrue: Make this item the current item
Returns
Newly created item

Definition at line 411 of file MissionController.cc.

References PlanElementController::_flyView, PlanElementController::_masterController, QGCCorePlugin::createComplexMissionItem(), and QGCCorePlugin::instance().

◆ insertLandItem()

VisualMissionItem * MissionController::insertLandItem ( QGeoCoordinate  coordinate,
int  visualItemIndex,
bool  makeCurrentItem = false 
)

Add a new land item to the list

Parameters
coordinateCoordinate for item
visualItemIndexindex to insert at, -1 for end of list
makeCurrentItemtrue: Make this item the current item
Returns
Newly created item

Definition at line 355 of file MissionController.cc.

References FixedWingLandingComplexItem::canonicalName, VTOLLandingComplexItem::canonicalName, Vehicle::fixedWing(), insertComplexMissionItem(), and Vehicle::vtol().

Referenced by CorridorScanPlanCreator::createPlan(), StructureScanPlanCreator::createPlan(), and SurveyPlanCreator::createPlan().

◆ insertROIMissionItem()

VisualMissionItem * MissionController::insertROIMissionItem ( QGeoCoordinate  coordinate,
int  visualItemIndex,
bool  makeCurrentItem = false 
)

Add a new ROI mission item to the list

Parameters
coordinateCoordinate for item
visualItemIndexindex to insert at, -1 for end of list
makeCurrentItemtrue: Make this item the current item
Returns
Newly created item

Definition at line 368 of file MissionController.cc.

References Vehicle::firmwarePlugin(), SimpleMissionItem::missionItem(), SimpleMissionItem::setCommand(), MissionItem::setParam1(), FirmwarePlugin::supportedMissionCommands(), and QGCMAVLinkTypes::VehicleClassGeneric.

◆ insertSimpleMissionItem()

VisualMissionItem * MissionController::insertSimpleMissionItem ( QGeoCoordinate  coordinate,
int  visualItemIndex,
bool  makeCurrentItem = false 
)

Add a new simple mission item to the list

Parameters
coordinateCoordinate for item
visualItemIndexindex to insert at, -1 for end of list
makeCurrentItemtrue: Make this item the current item
Returns
Newly created item

Definition at line 309 of file MissionController.cc.

◆ insertTakeoffItem()

VisualMissionItem * MissionController::insertTakeoffItem ( QGeoCoordinate  coordinate,
int  visualItemIndex,
bool  makeCurrentItem = false 
)

◆ isEmpty()

bool MissionController::isEmpty ( void  ) const

Definition at line 2353 of file MissionController.cc.

References QmlObjectListModel::count().

Referenced by PlanMasterController::isEmpty().

◆ isFirstLandingComplexItem()

bool MissionController::isFirstLandingComplexItem ( const LandingComplexItem item) const

◆ isInsertTakeoffValid()

bool MissionController::isInsertTakeoffValid ( void  ) const

◆ load()

bool MissionController::load ( const QJsonObject &  json,
QString &  errorString 
)
finalvirtual

Implements PlanElementController.

Definition at line 820 of file MissionController.cc.

References errorString.

Referenced by PlanMasterController::loadFromFile().

◆ loadFromVehicle()

◆ loadTextFile()

bool MissionController::loadTextFile ( QFile &  file,
QString &  errorString 
)

◆ maxAMSLAltitude()

double MissionController::maxAMSLAltitude ( void  ) const
inline

Definition at line 271 of file MissionController.h.

◆ maxAMSLAltitudeChanged

void MissionController::maxAMSLAltitudeChanged ( double  maxAMSLAltitude)
signal

◆ minAMSLAltitude()

double MissionController::minAMSLAltitude ( void  ) const
inline

Definition at line 270 of file MissionController.h.

◆ minAMSLAltitudeChanged

void MissionController::minAMSLAltitudeChanged ( double  minAMSLAltitude)
signal

◆ missionBoundingCubeChanged

void MissionController::missionBoundingCubeChanged ( void  )
signal

◆ missionCruiseDistance()

double MissionController::missionCruiseDistance ( void  ) const
inline

Definition at line 283 of file MissionController.h.

References MissionFlightStatus_t::cruiseDistance.

◆ missionCruiseDistanceChanged

void MissionController::missionCruiseDistanceChanged ( double  missionCruiseDistance)
signal

◆ missionCruiseTime()

double MissionController::missionCruiseTime ( void  ) const
inline

Definition at line 284 of file MissionController.h.

References MissionFlightStatus_t::cruiseTime.

◆ missionCruiseTimeChanged

void MissionController::missionCruiseTimeChanged ( void  )
signal

◆ missionGroupIndex()

QPersistentModelIndex MissionController::missionGroupIndex ( void  ) const
inline

Definition at line 256 of file MissionController.h.

◆ missionHoverDistance()

double MissionController::missionHoverDistance ( void  ) const
inline

Definition at line 281 of file MissionController.h.

References MissionFlightStatus_t::hoverDistance.

◆ missionHoverDistanceChanged

void MissionController::missionHoverDistanceChanged ( double  missionHoverDistance)
signal

◆ missionHoverTime()

double MissionController::missionHoverTime ( void  ) const
inline

Definition at line 282 of file MissionController.h.

References MissionFlightStatus_t::hoverTime.

◆ missionHoverTimeChanged

void MissionController::missionHoverTimeChanged ( void  )
signal

◆ missionMaxTelemetry()

double MissionController::missionMaxTelemetry ( void  ) const
inline

Definition at line 285 of file MissionController.h.

References MissionFlightStatus_t::maxTelemetryDistance.

◆ missionMaxTelemetryChanged

void MissionController::missionMaxTelemetryChanged ( double  missionMaxTelemetry)
signal

◆ missionPlannedDistance()

double MissionController::missionPlannedDistance ( void  ) const
inline

Definition at line 279 of file MissionController.h.

References MissionFlightStatus_t::plannedDistance.

◆ missionPlannedDistanceChanged

void MissionController::missionPlannedDistanceChanged ( double  missionPlannedDistance)
signal

Referenced by MissionController().

◆ missionTime()

double MissionController::missionTime ( void  ) const
inline

Definition at line 280 of file MissionController.h.

References MissionFlightStatus_t::totalTime.

◆ missionTimeChanged

void MissionController::missionTimeChanged ( void  )
signal

◆ missionTotalDistance()

double MissionController::missionTotalDistance ( void  ) const
inline

Definition at line 278 of file MissionController.h.

References MissionFlightStatus_t::totalDistance.

◆ missionTotalDistanceChanged

void MissionController::missionTotalDistanceChanged ( double  missionTotalDistance)
signal

◆ multipleLandPatternsAllowed()

bool MissionController::multipleLandPatternsAllowed ( void  ) const

◆ multipleLandPatternsAllowedChanged

void MissionController::multipleLandPatternsAllowedChanged ( void  )
signal

Referenced by MissionController().

◆ newItemsFromVehicle

void MissionController::newItemsFromVehicle ( void  )
signal

◆ offsetMission()

void MissionController::offsetMission ( double  eastMeters,
double  northMeters,
double  upMeters = 0.0,
bool  offsetTakeoffItems = false,
bool  offsetLandingItems = false 
)

Offsets all mission items which specify a coordinate by the specified ENU amounts in meters. Home altitude remains unchanged.

Parameters
eastMetersDistance to offset items to the east, in meters
northMetersDistance to offset items to the north, in meters
upMetersDistance to offset items upwards, in meters
offsetTakeoffItemsIf true, items identified as takeoff items (isTakeoffItem) will be offset
offsetLandingItemsIf true, items identified as landing items (isLandCommand) will be offset

Definition at line 2144 of file MissionController.cc.

References VisualMissionItem::applyNewAltitude(), VisualMissionItem::coordinate(), QmlObjectListModel::count(), VisualMissionItem::editableAlt(), QmlObjectListModel::get(), VisualMissionItem::isLandCommand(), VisualMissionItem::isStandaloneCoordinate(), VisualMissionItem::isTakeoffItem(), VisualMissionItem::setCoordinate(), setDirty(), VisualMissionItem::specifiesAltitudeOnly(), and VisualMissionItem::specifiesCoordinate().

◆ planFileGroupIndex()

QPersistentModelIndex MissionController::planFileGroupIndex ( void  ) const
inline

Definition at line 254 of file MissionController.h.

◆ plannedHomePosition()

◆ plannedHomePositionChanged

void MissionController::plannedHomePositionChanged ( QGeoCoordinate  plannedHomePosition)
signal

◆ planViewStateChanged

void MissionController::planViewStateChanged ( void  )
signal

All plan-view properties are recomputed together in setCurrentPlanViewSeqNum, so one signal covers them all.

Referenced by setCurrentPlanViewSeqNum().

◆ progressPct()

double MissionController::progressPct ( void  ) const
inline

Definition at line 267 of file MissionController.h.

◆ progressPctChanged

void MissionController::progressPctChanged ( double  progressPct)
signal

◆ rallyGroupIndex()

QPersistentModelIndex MissionController::rallyGroupIndex ( void  ) const
inline

Definition at line 258 of file MissionController.h.

◆ readyForSaveState()

int MissionController::readyForSaveState ( void  ) const

Determines if the mission has all data needed to be saved or sent to the vehicle. IMPORTANT NOTE: The return value is a VisualMissionItem::ReadForSaveState value. It is an int here to work around a nightmare of circular header dependency problems.

Definition at line 855 of file MissionController.cc.

References QmlObjectListModel::count(), QmlObjectListModel::get(), VisualMissionItem::ReadyForSave, and VisualMissionItem::readyForSaveState().

Referenced by PlanMasterController::readyForSaveState().

◆ recalcTerrainProfile

◆ removeAll()

void MissionController::removeAll ( void  )
finalvirtual

Removes all from controller only.

Implements PlanElementController.

Definition at line 578 of file MissionController.cc.

References setDirty().

Referenced by PlanMasterController::removeAll().

◆ removeAllFromVehicle()

void MissionController::removeAllFromVehicle ( void  )
finalvirtual

Removes all from vehicle and controller Signals removeAllComplete when done

Implements PlanElementController.

Definition at line 1801 of file MissionController.cc.

References PlanElementController::_masterController, PlanMasterController::offline(), PlanManager::removeAll(), and syncInProgress().

Referenced by PlanMasterController::removeAllFromVehicle().

◆ removeVisualItem()

◆ repositionMission()

void MissionController::repositionMission ( const QGeoCoordinate &  newHome,
bool  repositionTakeoffItems = true,
bool  repositionLandingItems = true 
)

Repositions all mission items which specify a coordinate around a new home coordinate. Requires a valid planned home position; otherwise the mission is not modified and a warning is logged.

Parameters
newHomeNew coordinate for the home item
repositionTakeoffItemsIf true, items identified as takeoff items (isTakeoffItem) will be repositioned
repositionLandingItemsIf true, items identified as landing items (isLandCommand) will be repositioned

Definition at line 2102 of file MissionController.cc.

References VisualMissionItem::coordinate(), MissionSettingsItem::coordinate(), QmlObjectListModel::count(), QmlObjectListModel::get(), VisualMissionItem::isLandCommand(), VisualMissionItem::isStandaloneCoordinate(), VisualMissionItem::isTakeoffItem(), VisualMissionItem::setCoordinate(), setDirty(), and VisualMissionItem::specifiesCoordinate().

◆ resumeMission()

void MissionController::resumeMission ( int  resumeIndex)

◆ resumeMissionIndex()

◆ resumeMissionIndexChanged

void MissionController::resumeMissionIndexChanged ( void  )
signal

◆ resumeMissionReady

void MissionController::resumeMissionReady ( void  )
signal

◆ resumeMissionUploadFail

void MissionController::resumeMissionUploadFail ( void  )
signal

◆ rotateMission()

void MissionController::rotateMission ( double  degreesCW,
bool  rotateTakeoffItems = false,
bool  rotateLandingItems = false 
)

Rotates all mission items which specify a coordinate around the up axis of the home position. Complex items are rotated by moving their reference coordinate: their geometry and orientation are not modified. Requires a valid planned home position; otherwise the mission is not modified and a warning is logged.

Parameters
degreesCWAngle to rotate items by, in degrees clockwise
rotateTakeoffItemsIf true, items identified as takeoff items (isTakeoffItem) will be rotated
rotateLandingItemsIf true, items identified as landing items (isLandCommand) will be rotated

Definition at line 2205 of file MissionController.cc.

References VisualMissionItem::coordinate(), MissionSettingsItem::coordinate(), QmlObjectListModel::count(), QmlObjectListModel::get(), VisualMissionItem::isLandCommand(), VisualMissionItem::isStandaloneCoordinate(), VisualMissionItem::isTakeoffItem(), VisualMissionItem::setCoordinate(), setDirty(), and VisualMissionItem::specifiesCoordinate().

◆ save()

◆ sendItemsToVehicle()

void MissionController::sendItemsToVehicle ( Vehicle vehicle,
QmlObjectListModel visualMissionItems 
)
static

Sends the mission items to the specified vehicle.

Definition at line 244 of file MissionController.cc.

References Vehicle::missionManager(), and PlanManager::writeMissionItems().

Referenced by sendToVehicle().

◆ sendToVehicle()

void MissionController::sendToVehicle ( void  )
finalvirtual

Sends the current plan element to the vehicle Signals sendComplete when done

Implements PlanElementController.

Definition at line 182 of file MissionController.cc.

References PlanElementController::_masterController, QmlObjectListModel::count(), PlanMasterController::offline(), sendItemsToVehicle(), setDirty(), and syncInProgress().

Referenced by PlanMasterController::sendToVehicle().

◆ sendToVehiclePreCheck()

◆ setCurrentPlanViewSeqNum()

◆ setDirty()

void MissionController::setDirty ( bool  dirty)
finalvirtual

◆ setGlobalAltitudeFrame()

void MissionController::setGlobalAltitudeFrame ( QGroundControlQmlGlobal::AltitudeFrame  altFrame)

Definition at line 2406 of file MissionController.cc.

References globalAltitudeFrameChanged().

Referenced by loadTextFile().

◆ setHomePosition()

void MissionController::setHomePosition ( QGeoCoordinate  coordinate)

Set the planned home position from a map click.

Definition at line 1840 of file MissionController.cc.

References MissionSettingsItem::setCoordinate().

◆ showPlanFromManagerVehicle()

bool MissionController::showPlanFromManagerVehicle ( void  )
finalvirtual

◆ simpleFlightPathSegments()

QmlObjectListModel * MissionController::simpleFlightPathSegments ( void  )
inline

Definition at line 260 of file MissionController.h.

◆ splitSegmentChanged

void MissionController::splitSegmentChanged ( void  )
signal

◆ start()

void MissionController::start ( bool  flyView)
finalvirtual

◆ supported()

bool MissionController::supported ( void  ) const
inlinefinalvirtual

true: controller is waiting for the current load to complete

Implements PlanElementController.

Definition at line 233 of file MissionController.h.

◆ syncInProgress()

bool MissionController::syncInProgress ( void  ) const
finalvirtual

◆ takeoffCoordinate()

QGeoCoordinate MissionController::takeoffCoordinate ( )
inline

Definition at line 230 of file MissionController.h.

◆ takeoffMissionItem()

TakeoffMissionItem * MissionController::takeoffMissionItem ( void  ) const
inline

◆ takeoffMissionItemChanged

void MissionController::takeoffMissionItemChanged ( void  )
signal

◆ transformGroupIndex()

QPersistentModelIndex MissionController::transformGroupIndex ( void  ) const
inline

Definition at line 259 of file MissionController.h.

◆ travelBoundingCube()

QGCGeoBoundingCube * MissionController::travelBoundingCube ( )
inline

Definition at line 229 of file MissionController.h.

◆ visualItemIndexForObject()

int MissionController::visualItemIndexForObject ( QObject *  object) const

Returns the visual item index for the given VisualMissionItem object, or -1 if not found.

Definition at line 480 of file MissionController.cc.

References QmlObjectListModel::indexOf().

◆ visualItems()

QmlObjectListModel * MissionController::visualItems ( void  )
inline

Definition at line 252 of file MissionController.h.

Referenced by TerrainProfile::setMissionController().

◆ visualItemsReset

void MissionController::visualItemsReset ( void  )
signal

◆ visualItemsTree()

QmlObjectTreeModel * MissionController::visualItemsTree ( void  )
inline

Definition at line 253 of file MissionController.h.

Member Data Documentation

◆ kDefaultsGroupRow

constexpr int MissionController::kDefaultsGroupRow = 1
staticconstexpr

Definition at line 299 of file MissionController.h.

◆ kFenceGroupRow

constexpr int MissionController::kFenceGroupRow = 3
staticconstexpr

Definition at line 301 of file MissionController.h.

◆ kGroupCount

constexpr int MissionController::kGroupCount = 6
staticconstexpr

Definition at line 304 of file MissionController.h.

◆ kMissionGroupRow

constexpr int MissionController::kMissionGroupRow = 2
staticconstexpr

Definition at line 300 of file MissionController.h.

◆ kPlanFileGroupRow

constexpr int MissionController::kPlanFileGroupRow = 0
staticconstexpr

Definition at line 298 of file MissionController.h.

◆ kRallyGroupRow

constexpr int MissionController::kRallyGroupRow = 4
staticconstexpr

Definition at line 302 of file MissionController.h.

◆ kTransformGroupRow

constexpr int MissionController::kTransformGroupRow = 5
staticconstexpr

Definition at line 303 of file MissionController.h.


The documentation for this class was generated from the following files: