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

A SimpleMissionItem is used to represent a single MissionItem to the ui. More...

#include <SimpleMissionItem.h>

+ Inheritance diagram for SimpleMissionItem:
+ Collaboration diagram for SimpleMissionItem:

Signals

void commandChanged (int command)
 
void friendlyEditAllowedChanged (bool friendlyEditAllowed)
 
void headingDegreesChanged (double heading)
 
void rawEditChanged (bool rawEdit)
 
void cameraSectionChanged (QObject *cameraSection)
 
void speedSectionChanged (QObject *cameraSection)
 
void altitudeFrameChanged (void)
 
void isLoiterItemChanged (void)
 
void showLoiterRadiusChanged (void)
 
void loiterRadiusChanged (double loiterRadius)
 
- Signals inherited from VisualMissionItem
void altDifferenceChanged (double altDifference)
 
void altPercentChanged (double altPercent)
 
void terrainPercentChanged (double terrainPercent)
 
void terrainCollisionChanged (bool terrainCollision)
 
void azimuthChanged (double azimuth)
 
void commandDescriptionChanged (void)
 
void commandNameChanged (void)
 
void abbreviationChanged (void)
 
void coordinateChanged (const QGeoCoordinate &coordinate)
 
void entryCoordinateChanged (const QGeoCoordinate &entryCoordinate)
 
void exitCoordinateChanged (const QGeoCoordinate &exitCoordinate)
 
void dirtyChanged (bool dirty)
 
void distanceChanged (double distance)
 
void distanceFromStartChanged (double distanceFromStart)
 
void isCurrentItemChanged (bool isCurrentItem)
 
void hasCurrentChildItemChanged (bool hasCurrentChildItem)
 
void sequenceNumberChanged (int sequenceNumber)
 
void isSimpleItemChanged (bool isSimpleItem)
 
void isTakeoffItemChanged (bool isTakeoffItem)
 
void isLandCommandChanged (void)
 
void specifiesCoordinateChanged (void)
 
void isStandaloneCoordinateChanged (void)
 
void specifiesAltitudeOnlyChanged (void)
 
void specifiedFlightSpeedChanged (void)
 
void specifiedGimbalYawChanged (void)
 
void specifiedGimbalPitchChanged (void)
 
void specifiedVehicleYawChanged (void)
 
void lastSequenceNumberChanged (int sequenceNumber)
 
void missionGimbalYawChanged (double missionGimbalYaw)
 
void missionVehicleYawChanged (double missionVehicleYaw)
 
void terrainAltitudeChanged (double terrainAltitude)
 
void terrainQueryFailedChanged (bool terrainQueryFailed)
 
void additionalTimeDelayChanged (void)
 
void boundingCubeChanged (void)
 
void readyForSaveStateChanged (void)
 
void wizardModeChanged (bool wizardMode)
 
void parentItemChanged (VisualMissionItem *parentItem)
 
void amslEntryAltChanged (double alt)
 
void amslExitAltChanged (double alt)
 
void previousVTOLModeChanged (void)
 
void currentVTOLModeChanged (void)
 Signals that this item has changed the VTOL mode (MAV_CMD_DO_VTOL_TRANSITION)
 
void exitCoordinateSameAsEntryChanged (bool exitCoordinateSameAsEntry)
 

Public Member Functions

 SimpleMissionItem (PlanMasterController *masterController, bool flyView, bool forLoad)
 
 SimpleMissionItem (PlanMasterController *masterController, bool flyView, const MissionItem &missionItem)
 
 ~SimpleMissionItem ()
 true: raw item editing with all params
 
Q_INVOKABLE void setMapCenterHintForCommandChange (QGeoCoordinate mapCenter)
 Optional sections.
 
bool scanForSections (QmlObjectListModel *visualItems, int scanIndex, PlanMasterController *masterController)
 
QString category (void) const
 
int command (void) const
 
MAV_CMD mavCommand (void) const
 
bool friendlyEditAllowed (void) const
 
bool rawEdit (void) const
 
bool specifiesAltitude (void) const
 
QGroundControlQmlGlobal::AltitudeFrame altitudeFrame (void) const
 
Factaltitude (void)
 
FactamslAltAboveTerrain (void)
 
bool isLoiterItem (void) const
 
bool showLoiterRadius (void) const
 
double loiterRadius (void) const
 
CameraSectioncameraSection (void)
 
SpeedSectionspeedSection (void)
 
QmlObjectListModeltextFieldFacts (void)
 
QmlObjectListModeltextFieldFactsAdvanced (void)
 
QmlObjectListModelnanFacts (void)
 
QmlObjectListModelnanFactsAdvanced (void)
 
QmlObjectListModelcomboboxFacts (void)
 
QmlObjectListModelcomboboxFactsAdvanced (void)
 
void setRawEdit (bool rawEdit)
 
void setAltitudeFrame (QGroundControlQmlGlobal::AltitudeFrame altitudeFrame)
 
void setCommandByIndex (int index)
 
void setCommand (int command)
 
void setAltDifference (double altDifference)
 
void setAltPercent (double altPercent)
 
void setAzimuth (double azimuth)
 
void setDistance (double distance)
 
void setRadius (double loiterRadius)
 
virtual bool load (QTextStream &loadStream)
 
virtual bool load (const QJsonObject &json, int sequenceNumber, QString &errorString)
 
MissionItemmissionItem (void)
 
const MissionItemmissionItem (void) const
 
bool dirty (void) const override
 
bool isSimpleItem (void) const final
 
bool isStandaloneCoordinate (void) const final
 
bool isLandCommand (void) const final
 
bool specifiesCoordinate (void) const final
 
bool specifiesAltitudeOnly (void) const final
 
QString commandDescription (void) const final
 
QString commandName (void) const final
 
QString abbreviation (void) const final
 
QGeoCoordinate coordinate (void) const final
 
QGeoCoordinate entryCoordinate (void) const final
 
QGeoCoordinate exitCoordinate (void) const final
 
double editableAlt (void) const final
 
double amslEntryAlt (void) const final
 
double amslExitAlt (void) const final
 
int sequenceNumber (void) const final
 
double specifiedFlightSpeed (void) override
 
double specifiedGimbalYaw (void) override
 
double specifiedGimbalPitch (void) override
 
double specifiedVehicleYaw (void) override
 
QString mapVisualQML (void) const override
 
void appendMissionItems (QList< MissionItem * > &items, QObject *missionItemParent) final
 
void applyNewAltitude (double newAltitude) final
 Adjust the altitude of the item if appropriate to the new altitude.
 
void setMissionFlightStatus (MissionFlightStatus_t &missionFlightStatus) final
 
ReadyForSaveState readyForSaveState (void) const final
 
double additionalTimeDelay (void) const final
 
bool exitCoordinateSameAsEntry (void) const final
 
void setDirty (bool dirty) final
 
void setCoordinate (const QGeoCoordinate &coordinate) override
 
void setSequenceNumber (int sequenceNumber) final
 
int lastSequenceNumber (void) const final
 
void save (QJsonArray &missionItems) final
 
- Public Member Functions inherited from VisualMissionItem
 VisualMissionItem (PlanMasterController *masterController, bool flyView)
 
 VisualMissionItem (const VisualMissionItem &other, bool flyView)
 
 ~VisualMissionItem ()
 
const VisualMissionItemoperator= (const VisualMissionItem &other)
 
bool homePosition (void) const
 < Flight path cumalative horizontal distance from home point to this item
 
double altDifference (void) const
 
double altPercent (void) const
 
double terrainPercent (void) const
 
bool terrainCollision (void) const
 
double azimuth (void) const
 
double distance (void) const
 
double distanceFromStart (void) const
 
bool isCurrentItem (void) const
 
bool hasCurrentChildItem (void) const
 
double terrainAltitude (void) const
 
bool terrainQueryFailed (void) const
 
bool flyView (void) const
 
bool wizardMode (void) const
 
VisualMissionItemparentItem (void)
 
QmlObjectListModelchildItems (void)
 
void setIsCurrentItem (bool isCurrentItem)
 
void setHasCurrentChildItem (bool hasCurrentChildItem)
 
void setAltDifference (double altDifference)
 
void setAltPercent (double altPercent)
 
void setTerrainPercent (double terrainPercent)
 
void setTerrainCollision (bool terrainCollision)
 
void setAzimuth (double azimuth)
 
void setDistance (double distance)
 
void setDistanceFromStart (double distanceFromStart)
 
void setWizardMode (bool wizardMode)
 
void setParentItem (VisualMissionItem *parentItem)
 
void setHomePositionSpecialCase (bool homePositionSpecialCase)
 
FlightPathSegmentsimpleFlightPathSegment (void)
 
void setSimpleFlighPathSegment (FlightPathSegment *segment)
 
void clearSimpleFlighPathSegment (void)
 
PlanMasterControllermasterController (void)
 
virtual bool isTakeoffItem (void) const
 
virtual bool isSurveyItem (void) const
 
virtual QGCGeoBoundingCubeboundingCube (void)
 
double missionGimbalYaw (void) const
 
double missionVehicleYaw (void) const
 
void setMissionVehicleYaw (double vehicleYaw)
 

Additional Inherited Members

- Public Types inherited from VisualMissionItem
enum  ReadyForSaveState { ReadyForSave , NotReadyForSaveTerrain , NotReadyForSaveData }
 
- Static Public Attributes inherited from VisualMissionItem
static constexpr const char * jsonTypeKey = "type"
 Json file attribute which specifies the item type.
 
static constexpr const char * jsonTypeSimpleItemValue = "SimpleItem"
 Item type is MISSION_ITEM.
 
static constexpr const char * jsonTypeComplexItemValue = "ComplexItem"
 Item type is Complex Item.
 
- Protected Slots inherited from VisualMissionItem
void _amslEntryAltChanged (void)
 
void _amslExitAltChanged (void)
 
- Protected Member Functions inherited from VisualMissionItem
void _setBoundingCube (QGCGeoBoundingCube bc)
 
- Protected Attributes inherited from VisualMissionItem
bool _flyView = false
 
bool _isCurrentItem = false
 
bool _hasCurrentChildItem = false
 
bool _dirty = false
 
bool _homePositionSpecialCase = false
 true: This item is being used as a ui home position indicator
 
bool _wizardMode = false
 true: Item editor is showing wizard completion panel
 
double _terrainAltitude = qQNaN()
 Altitude of terrain at coordinate position, NaN for not known.
 
bool _terrainQueryFailed = false
 true: Last terrain query failed
 
double _altDifference = 0
 Difference in altitude from previous waypoint.
 
double _altPercent = 0
 Percent of total altitude change in mission.
 
double _terrainPercent = qQNaN()
 Percent of terrain altitude for coordinate.
 
bool _terrainCollision = false
 true: item collides with terrain
 
double _azimuth = 0
 Azimuth to previous waypoint.
 
double _distance = 0
 Distance to previous waypoint.
 
double _distanceFromStart = 0
 Flight path cumalative horizontal distance from home point to this item.
 
QString _editorQml
 Qml resource for editing item.
 
double _missionGimbalYaw = qQNaN()
 
double _missionVehicleYaw = qQNaN()
 
QGCMAVLinkTypes::VehicleClass_t _previousVTOLMode = QGCMAVLinkTypes::VehicleClassGeneric
 Generic == unknown.
 
PlanMasterController_masterController = nullptr
 
MissionController_missionController = nullptr
 
Vehicle_controllerVehicle = nullptr
 
FlightPathSegment_simpleFlightPathSegment = nullptr
 The simple item flight segment (if any) which starts with this visual item.
 
VisualMissionItem_parentItem = nullptr
 
QGCGeoBoundingCube _boundingCube
 The bounding "cube" of this element.
 
QmlObjectListModel _childItems
 This is used to reference any subsequent mission items which do not specify a coordinate.
 

Detailed Description

A SimpleMissionItem is used to represent a single MissionItem to the ui.

Definition at line 12 of file SimpleMissionItem.h.

Constructor & Destructor Documentation

◆ SimpleMissionItem() [1/2]

SimpleMissionItem::SimpleMissionItem ( PlanMasterController masterController,
bool  flyView,
bool  forLoad 
)

Definition at line 25 of file SimpleMissionItem.cc.

References VisualMissionItem::_editorQml, and setDirty().

◆ SimpleMissionItem() [2/2]

◆ ~SimpleMissionItem()

SimpleMissionItem::~SimpleMissionItem ( )

true: raw item editing with all params

Altitude as specified by altitudeFrame. Not necessarily true mission item altitude Actual AMSL altitude for item if altitudeFrame is AltitudeFrameCalcAboveTerrain or AltitudeFrameTerrain

Definition at line 241 of file SimpleMissionItem.cc.

Member Function Documentation

◆ abbreviation()

QString SimpleMissionItem::abbreviation ( void  ) const
finalvirtual

Implements VisualMissionItem.

Definition at line 373 of file SimpleMissionItem.cc.

References command(), and VisualMissionItem::homePosition().

◆ additionalTimeDelay()

double SimpleMissionItem::additionalTimeDelay ( void  ) const
finalvirtual
Returns
Amount of additional time delay in seconds needed to fly this item

Implements VisualMissionItem.

Definition at line 1068 of file SimpleMissionItem.cc.

References command(), missionItem(), and MissionItem::param1().

◆ altitude()

Fact * SimpleMissionItem::altitude ( void  )
inline

Definition at line 69 of file SimpleMissionItem.h.

Referenced by MissionController::insertTakeoffItem().

◆ altitudeFrame()

QGroundControlQmlGlobal::AltitudeFrame SimpleMissionItem::altitudeFrame ( void  ) const
inline

Definition at line 68 of file SimpleMissionItem.h.

Referenced by setAltitudeFrame().

◆ altitudeFrameChanged

void SimpleMissionItem::altitudeFrameChanged ( void  )
signal

Referenced by setAltitudeFrame().

◆ amslAltAboveTerrain()

Fact * SimpleMissionItem::amslAltAboveTerrain ( void  )
inline

Definition at line 70 of file SimpleMissionItem.h.

◆ amslEntryAlt()

◆ amslExitAlt()

double SimpleMissionItem::amslExitAlt ( void  ) const
inlinefinalvirtual

Implements VisualMissionItem.

Definition at line 119 of file SimpleMissionItem.h.

References amslEntryAlt().

◆ appendMissionItems()

void SimpleMissionItem::appendMissionItems ( QList< MissionItem * > &  items,
QObject *  missionItemParent 
)
finalvirtual

Returns the mission items associated with the complex item. Caller is responsible for freeing.

Parameters
itemsList to append to
missionItemParentParent object for newly created MissionItems

Implements VisualMissionItem.

Definition at line 1013 of file SimpleMissionItem.cc.

References CameraSection::appendSectionItems(), SpeedSection::appendSectionItems(), missionItem(), and sequenceNumber().

Referenced by save().

◆ applyNewAltitude()

void SimpleMissionItem::applyNewAltitude ( double  newAltitude)
finalvirtual

◆ cameraSection()

CameraSection * SimpleMissionItem::cameraSection ( void  )
inline

Definition at line 75 of file SimpleMissionItem.h.

◆ cameraSectionChanged

void SimpleMissionItem::cameraSectionChanged ( QObject *  cameraSection)
signal

◆ category()

◆ comboboxFacts()

QmlObjectListModel * SimpleMissionItem::comboboxFacts ( void  )
inline

Definition at line 82 of file SimpleMissionItem.h.

◆ comboboxFactsAdvanced()

QmlObjectListModel * SimpleMissionItem::comboboxFactsAdvanced ( void  )
inline

Definition at line 83 of file SimpleMissionItem.h.

◆ command()

◆ commandChanged

void SimpleMissionItem::commandChanged ( int  command)
signal

◆ commandDescription()

◆ commandName()

◆ coordinate()

◆ dirty()

bool SimpleMissionItem::dirty ( void  ) const
inlineoverridevirtual

Implements VisualMissionItem.

Definition at line 105 of file SimpleMissionItem.h.

Referenced by setDirty().

◆ editableAlt()

double SimpleMissionItem::editableAlt ( void  ) const
finalvirtual

Implements VisualMissionItem.

Definition at line 1107 of file SimpleMissionItem.cc.

References MissionItem::param7().

◆ entryCoordinate()

QGeoCoordinate SimpleMissionItem::entryCoordinate ( void  ) const
inlinefinalvirtual

Implements VisualMissionItem.

Definition at line 115 of file SimpleMissionItem.h.

References coordinate().

Referenced by MissionFlightStatusCalculator::recalc().

◆ exitCoordinate()

QGeoCoordinate SimpleMissionItem::exitCoordinate ( void  ) const
inlinefinalvirtual

Implements VisualMissionItem.

Definition at line 116 of file SimpleMissionItem.h.

References coordinate().

◆ exitCoordinateSameAsEntry()

bool SimpleMissionItem::exitCoordinateSameAsEntry ( void  ) const
inlinefinalvirtual

Implements VisualMissionItem.

Definition at line 131 of file SimpleMissionItem.h.

◆ friendlyEditAllowed()

◆ friendlyEditAllowedChanged

void SimpleMissionItem::friendlyEditAllowedChanged ( bool  friendlyEditAllowed)
signal

◆ headingDegreesChanged

void SimpleMissionItem::headingDegreesChanged ( double  heading)
signal

◆ isLandCommand()

bool SimpleMissionItem::isLandCommand ( void  ) const
finalvirtual

◆ isLoiterItem()

◆ isLoiterItemChanged

void SimpleMissionItem::isLoiterItemChanged ( void  )
signal

◆ isSimpleItem()

bool SimpleMissionItem::isSimpleItem ( void  ) const
inlinefinalvirtual

Implements VisualMissionItem.

Definition at line 106 of file SimpleMissionItem.h.

◆ isStandaloneCoordinate()

◆ lastSequenceNumber()

int SimpleMissionItem::lastSequenceNumber ( void  ) const
finalvirtual

◆ load() [1/2]

◆ load() [2/2]

◆ loiterRadius()

double SimpleMissionItem::loiterRadius ( void  ) const

◆ loiterRadiusChanged

void SimpleMissionItem::loiterRadiusChanged ( double  loiterRadius)
signal

◆ mapVisualQML()

QString SimpleMissionItem::mapVisualQML ( void  ) const
inlineoverridevirtual
Returns
The QML resource file which contains the control which visualizes the item on the map.

Implements VisualMissionItem.

Reimplemented in TakeoffMissionItem.

Definition at line 125 of file SimpleMissionItem.h.

◆ mavCommand()

MAV_CMD SimpleMissionItem::mavCommand ( void  ) const
inline

◆ missionItem() [1/2]

◆ missionItem() [2/2]

const MissionItem & SimpleMissionItem::missionItem ( void  ) const
inline

Definition at line 102 of file SimpleMissionItem.h.

◆ nanFacts()

QmlObjectListModel * SimpleMissionItem::nanFacts ( void  )
inline

Definition at line 80 of file SimpleMissionItem.h.

◆ nanFactsAdvanced()

QmlObjectListModel * SimpleMissionItem::nanFactsAdvanced ( void  )
inline

Definition at line 81 of file SimpleMissionItem.h.

◆ rawEdit()

bool SimpleMissionItem::rawEdit ( void  ) const

Definition at line 677 of file SimpleMissionItem.cc.

References friendlyEditAllowed().

Referenced by setRawEdit().

◆ rawEditChanged

void SimpleMissionItem::rawEditChanged ( bool  rawEdit)
signal

Referenced by setRawEdit().

◆ readyForSaveState()

SimpleMissionItem::ReadyForSaveState SimpleMissionItem::readyForSaveState ( void  ) const
finalvirtual
Returns
Returns whether the item is ready for save and if not, why

Reimplemented from VisualMissionItem.

Definition at line 789 of file SimpleMissionItem.cc.

References VisualMissionItem::_wizardMode, VisualMissionItem::NotReadyForSaveData, VisualMissionItem::NotReadyForSaveTerrain, Fact::rawValue(), VisualMissionItem::ReadyForSave, and specifiesAltitude().

◆ save()

void SimpleMissionItem::save ( QJsonArray &  missionItems)
finalvirtual

Save the item(s) in Json format

Parameters
missionItemsCurrent set of mission items, new items should be appended to the end

Implements VisualMissionItem.

Definition at line 245 of file SimpleMissionItem.cc.

References appendMissionItems(), Fact::rawValue(), MissionItem::save(), and specifiesAltitude().

◆ scanForSections()

bool SimpleMissionItem::scanForSections ( QmlObjectListModel visualItems,
int  scanIndex,
PlanMasterController masterController 
)

Scans the loaded items for additional section settings

Parameters
visualItemsList of all visual items
scanIndexIndex to start scanning from
vehicleVehicle associated with this mission
Returns
true: section found, scanIndex updated

Definition at line 945 of file SimpleMissionItem.cc.

References CameraSection::available(), SpeedSection::available(), CameraSection::scanForSection(), and SpeedSection::scanForSection().

◆ sequenceNumber()

int SimpleMissionItem::sequenceNumber ( void  ) const
inlinefinalvirtual

◆ setAltDifference()

void SimpleMissionItem::setAltDifference ( double  altDifference)

◆ setAltitudeFrame()

void SimpleMissionItem::setAltitudeFrame ( QGroundControlQmlGlobal::AltitudeFrame  altitudeFrame)

Definition at line 1060 of file SimpleMissionItem.cc.

References altitudeFrame(), and altitudeFrameChanged().

Referenced by MissionController::insertTakeoffItem().

◆ setAltPercent()

void SimpleMissionItem::setAltPercent ( double  altPercent)

◆ setAzimuth()

void SimpleMissionItem::setAzimuth ( double  azimuth)

◆ setCommand()

◆ setCommandByIndex()

void SimpleMissionItem::setCommandByIndex ( int  index)

◆ setCoordinate()

void SimpleMissionItem::setCoordinate ( const QGeoCoordinate &  coordinate)
overridevirtual

◆ setDirty()

void SimpleMissionItem::setDirty ( bool  dirty)
finalvirtual

◆ setDistance()

void SimpleMissionItem::setDistance ( double  distance)

◆ setMapCenterHintForCommandChange()

Q_INVOKABLE void SimpleMissionItem::setMapCenterHintForCommandChange ( QGeoCoordinate  mapCenter)
inline

Optional sections.

This should be called before changing the command. It is needed if the command changes from an item which does not include a coordinate to an item which requires a coordinate. It uses this value to set that new coordinate.

Definition at line 51 of file SimpleMissionItem.h.

◆ setMissionFlightStatus()

void SimpleMissionItem::setMissionFlightStatus ( MissionFlightStatus_t missionFlightStatus)
finalvirtual

◆ setRadius()

void SimpleMissionItem::setRadius ( double  loiterRadius)

◆ setRawEdit()

void SimpleMissionItem::setRawEdit ( bool  rawEdit)

Definition at line 682 of file SimpleMissionItem.cc.

References rawEdit(), and rawEditChanged().

◆ setSequenceNumber()

void SimpleMissionItem::setSequenceNumber ( int  sequenceNumber)
finalvirtual

◆ showLoiterRadius()

◆ showLoiterRadiusChanged

void SimpleMissionItem::showLoiterRadiusChanged ( void  )
signal

◆ specifiedFlightSpeed()

double SimpleMissionItem::specifiedFlightSpeed ( void  )
overridevirtual

◆ specifiedGimbalPitch()

double SimpleMissionItem::specifiedGimbalPitch ( void  )
overridevirtual

◆ specifiedGimbalYaw()

double SimpleMissionItem::specifiedGimbalYaw ( void  )
overridevirtual

◆ specifiedVehicleYaw()

double SimpleMissionItem::specifiedVehicleYaw ( void  )
overridevirtual

Reimplemented from VisualMissionItem.

Definition at line 933 of file SimpleMissionItem.cc.

References command(), missionItem(), and MissionItem::param4().

Referenced by MissionFlightStatusCalculator::recalc().

◆ specifiesAltitude()

bool SimpleMissionItem::specifiesAltitude ( void  ) const

◆ specifiesAltitudeOnly()

◆ specifiesCoordinate()

◆ speedSection()

SpeedSection * SimpleMissionItem::speedSection ( void  )
inline

Definition at line 76 of file SimpleMissionItem.h.

◆ speedSectionChanged

void SimpleMissionItem::speedSectionChanged ( QObject *  cameraSection)
signal

◆ textFieldFacts()

QmlObjectListModel * SimpleMissionItem::textFieldFacts ( void  )
inline

Definition at line 78 of file SimpleMissionItem.h.

◆ textFieldFactsAdvanced()

QmlObjectListModel * SimpleMissionItem::textFieldFactsAdvanced ( void  )
inline

Definition at line 79 of file SimpleMissionItem.h.


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