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

Master controller for mission, fence, rally. More...

#include <PlanMasterController.h>

+ Inheritance diagram for PlanMasterController:
+ Collaboration diagram for PlanMasterController:

Signals

void containsItemsChanged ()
 
void syncInProgressChanged (void)
 
void dirtyForSaveChanged (bool dirtyForSave)
 
void dirtyForUploadChanged (bool dirtyForUpload)
 
void offlineChanged (bool offlineEditing)
 
void currentPlanFileChanged (void)
 
void currentPlanFileNameChanged (void)
 
void originalPlanFileNameChanged (void)
 
void planFileRenamedChanged (void)
 
void planCreatorsChanged (QmlObjectListModel *planCreators)
 
void managerVehicleChanged (Vehicle *managerVehicle)
 
void promptForPlanUsageOnVehicleChange (void)
 
void manualCreationChanged ()
 

Public Member Functions

 PlanMasterController (QObject *parent=nullptr)
 
 ~PlanMasterController ()
 
bool flyView MEMBER _flyView (Vehicle *controllerVehicle READ controllerVehicle CONSTANT) 1(Vehicle *managerVehicle READ managerVehicle NOTIFY managerVehicleChanged) 1(MissionController *missionController READ missionController CONSTANT) 1(GeoFenceController *geoFenceController READ geoFenceController CONSTANT) 1(RallyPointController *rallyPointController READ rallyPointController CONSTANT) 1(bool offline READ offline NOTIFY offlineChanged) 1(bool containsItems READ containsItems NOTIFY containsItemsChanged) 1(bool syncInProgress READ syncInProgress NOTIFY syncInProgressChanged) 1(bool dirtyForSave READ dirtyForSave NOTIFY dirtyForSaveChanged) 1(bool dirtyForUpload READ dirtyForUpload NOTIFY dirtyForUploadChanged) 1(QString fileExtension READ fileExtension CONSTANT) 1(QString kmlFileExtension READ kmlFileExtension CONSTANT) 1(QString currentPlanFile READ currentPlanFile NOTIFY currentPlanFileChanged) 1(QString currentPlanFileName READ currentPlanFileName WRITE setCurrentPlanFileName NOTIFY currentPlanFileNameChanged) 1(QString originalPlanFileName READ originalPlanFileName NOTIFY originalPlanFileNameChanged) 1(bool planFileRenamed READ planFileRenamed NOTIFY planFileRenamedChanged) 1(QStringList loadNameFilters READ loadNameFilters CONSTANT) 1(QStringList saveNameFilters READ saveNameFilters CONSTANT) 1(QmlObjectListModel *planCreators MEMBER _planCreators NOTIFY planCreatorsChanged) 1(bool manualCreation READ manualCreation WRITE setManualCreation NOTIFY manualCreationChanged) 1 void start(void)
 < Either active vehicle or _controllerVehicle if no active vehicle
 
void startStaticActiveVehicle (Vehicle *vehicle, bool deleteWhenSendCompleted=false)
 
int readyForSaveState (void) const
 
void showPlanFromManagerVehicle (void)
 Replaces any current plan with the plan from the manager vehicle even if offline.
 
void loadFromVehicle (void)
 
void sendToVehicle (void)
 
void loadFromFile (const QString &filename)
 
void loadFromArchive (const QString &archivePath)
 
bool saveToCurrent ()
 
bool saveToFile (const QString &filename)
 
void saveToKml (const QString &filename)
 
bool saveWithCurrentName ()
 Save using the (possibly renamed) currentPlanFileName.
 
bool resolvedPlanFileExists () const
 true if a file at the renamed path already exists on disk
 
void removeAll (void)
 Removes all from controller only, synce required to remove from vehicle.
 
void removeAllFromVehicle (void)
 Removes all from vehicle and controller.
 
MissionControllermissionController (void)
 
GeoFenceControllergeoFenceController (void)
 
RallyPointControllerrallyPointController (void)
 
bool offline (void) const
 
bool containsItems (void) const
 
bool syncInProgress (void) const
 
bool dirtyForSave (void) const
 
bool dirtyForUpload (void) const
 
QString fileExtension (void) const
 
QString kmlFileExtension (void) const
 
QString currentPlanFile (void) const
 
QString currentPlanFileName (void) const
 
void setCurrentPlanFileName (const QString &name)
 
QString originalPlanFileName (void) const
 
bool planFileRenamed (void) const
 
QStringList loadNameFilters (void) const
 
QStringList saveNameFilters (void) const
 
bool isEmpty (void) const
 
bool manualCreation (void) const
 
void setFlyView (bool flyView)
 
void setManualCreation (bool manualCreation)
 
QJsonDocument saveToJson ()
 
VehiclecontrollerVehicle (void)
 
VehiclemanagerVehicle (void)
 

Static Public Member Functions

static void sendPlanToVehicle (Vehicle *vehicle, const QString &filename)
 

Static Public Attributes

static constexpr int kPlanFileVersion = 1
 
static constexpr const char * kPlanFileType = "Plan"
 
static constexpr const char * kJsonMissionObjectKey = "mission"
 
static constexpr const char * kJsonGeoFenceObjectKey = "geoFence"
 
static constexpr const char * kJsonRallyPointsObjectKey = "rallyPoints"
 

Detailed Description

Master controller for mission, fence, rally.

Definition at line 23 of file PlanMasterController.h.

Constructor & Destructor Documentation

◆ PlanMasterController()

PlanMasterController::PlanMasterController ( QObject *  parent = nullptr)

Definition at line 31 of file PlanMasterController.cc.

◆ ~PlanMasterController()

PlanMasterController::~PlanMasterController ( )

Definition at line 76 of file PlanMasterController.cc.

Member Function Documentation

◆ _flyView()

bool flyView MEMBER PlanMasterController::_flyView ( Vehicle *controllerVehicle READ controllerVehicle  CONSTANT)

< Either active vehicle or _controllerVehicle if no active vehicle

< true: controller is not connected to an active vehicle < true: Elemement is non-empty < true: Information is currently being saved/sent, false: no active save/send in progress < true: Unsaved changes to disk are present, false: no changes since last save to disk < true: Unsent changes are present, false: no changes since last upload/download sync < File extension for missions < Fully qualified path, empty if not yet saved < Editable base name, no path or extension < On-disk name when last loaded/saved < true if currentPlanFileName differs from originalPlanFileName < File filter list loading plan files < File filter list saving plan files < true: User is not using a template to create the plan Should be called immediately upon Component.onCompleted.

Parameters
CONSTANTOffline controller vehicle

◆ containsItems()

bool PlanMasterController::containsItems ( void  ) const

◆ containsItemsChanged

void PlanMasterController::containsItemsChanged ( )
signal

◆ controllerVehicle()

◆ currentPlanFile()

QString PlanMasterController::currentPlanFile ( void  ) const
inline

Definition at line 114 of file PlanMasterController.h.

◆ currentPlanFileChanged

void PlanMasterController::currentPlanFileChanged ( void  )
signal

Referenced by loadFromFile(), and saveToFile().

◆ currentPlanFileName()

QString PlanMasterController::currentPlanFileName ( void  ) const
inline

Definition at line 115 of file PlanMasterController.h.

◆ currentPlanFileNameChanged

void PlanMasterController::currentPlanFileNameChanged ( void  )
signal

◆ dirtyForSave()

bool PlanMasterController::dirtyForSave ( void  ) const
inline

Definition at line 110 of file PlanMasterController.h.

◆ dirtyForSaveChanged

void PlanMasterController::dirtyForSaveChanged ( bool  dirtyForSave)
signal

◆ dirtyForUpload()

bool PlanMasterController::dirtyForUpload ( void  ) const
inline

Definition at line 111 of file PlanMasterController.h.

◆ dirtyForUploadChanged

void PlanMasterController::dirtyForUploadChanged ( bool  dirtyForUpload)
signal

◆ fileExtension()

QString PlanMasterController::fileExtension ( void  ) const

◆ geoFenceController()

GeoFenceController * PlanMasterController::geoFenceController ( void  )
inline

Definition at line 104 of file PlanMasterController.h.

◆ isEmpty()

bool PlanMasterController::isEmpty ( void  ) const

◆ kmlFileExtension()

QString PlanMasterController::kmlFileExtension ( void  ) const

Definition at line 656 of file PlanMasterController.cc.

References AppSettings::kmlFileExtension.

Referenced by saveToKml().

◆ loadFromArchive()

void PlanMasterController::loadFromArchive ( const QString &  archivePath)

Load a plan from an archive file (.zip, .tar.gz, etc.) Extracts the archive and loads the first .plan file found.

Parameters
archivePathPath to the archive file

Definition at line 815 of file PlanMasterController.cc.

References QGCCompressionJob::extractArchive(), QGCCompressionJob::finished(), QGCCompression::isArchiveFile(), and qgcApp.

◆ loadFromFile()

◆ loadFromVehicle()

void PlanMasterController::loadFromVehicle ( void  )

◆ loadNameFilters()

QStringList PlanMasterController::loadNameFilters ( void  ) const

◆ managerVehicle()

◆ managerVehicleChanged

void PlanMasterController::managerVehicleChanged ( Vehicle managerVehicle)
signal

◆ manualCreation()

bool PlanMasterController::manualCreation ( void  ) const
inline

Definition at line 122 of file PlanMasterController.h.

Referenced by setManualCreation().

◆ manualCreationChanged

void PlanMasterController::manualCreationChanged ( )
signal

Referenced by setManualCreation().

◆ missionController()

MissionController * PlanMasterController::missionController ( void  )
inline

◆ offline()

◆ offlineChanged

void PlanMasterController::offlineChanged ( bool  offlineEditing)
signal

◆ originalPlanFileName()

QString PlanMasterController::originalPlanFileName ( void  ) const
inline

Definition at line 117 of file PlanMasterController.h.

◆ originalPlanFileNameChanged

void PlanMasterController::originalPlanFileNameChanged ( void  )
signal

Referenced by loadFromFile(), and saveToFile().

◆ planCreatorsChanged

void PlanMasterController::planCreatorsChanged ( QmlObjectListModel planCreators)
signal

◆ planFileRenamed()

bool PlanMasterController::planFileRenamed ( void  ) const

Definition at line 612 of file PlanMasterController.cc.

Referenced by loadFromFile(), saveToFile(), and setCurrentPlanFileName().

◆ planFileRenamedChanged

void PlanMasterController::planFileRenamedChanged ( void  )
signal

◆ promptForPlanUsageOnVehicleChange

void PlanMasterController::promptForPlanUsageOnVehicleChange ( void  )
signal

◆ rallyPointController()

RallyPointController * PlanMasterController::rallyPointController ( void  )
inline

Definition at line 105 of file PlanMasterController.h.

◆ readyForSaveState()

int PlanMasterController::readyForSaveState ( void  ) const
inline

Determines if the plan has all information 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 75 of file PlanMasterController.h.

References MissionController::readyForSaveState().

◆ removeAll()

◆ removeAllFromVehicle()

◆ resolvedPlanFileExists()

bool PlanMasterController::resolvedPlanFileExists ( ) const

true if a file at the renamed path already exists on disk

Definition at line 617 of file PlanMasterController.cc.

◆ saveNameFilters()

QStringList PlanMasterController::saveNameFilters ( void  ) const

Definition at line 671 of file PlanMasterController.cc.

References fileExtension().

◆ saveToCurrent()

bool PlanMasterController::saveToCurrent ( )

Definition at line 458 of file PlanMasterController.cc.

References saveToFile().

◆ saveToFile()

bool PlanMasterController::saveToFile ( const QString &  filename)

◆ saveToJson()

◆ saveToKml()

void PlanMasterController::saveToKml ( const QString &  filename)

◆ saveWithCurrentName()

bool PlanMasterController::saveWithCurrentName ( )

Save using the (possibly renamed) currentPlanFileName.

Definition at line 604 of file PlanMasterController.cc.

References saveToFile().

◆ sendPlanToVehicle()

void PlanMasterController::sendPlanToVehicle ( Vehicle vehicle,
const QString &  filename 
)
static

Sends a plan to the specified file

Parameters
[in]vehicleVehicle we are sending a plan to
[in]filenamePlan file to load

Definition at line 679 of file PlanMasterController.cc.

References loadFromFile(), sendToVehicle(), and startStaticActiveVehicle().

Referenced by Vehicle::sendPlan().

◆ sendToVehicle()

void PlanMasterController::sendToVehicle ( void  )

◆ setCurrentPlanFileName()

void PlanMasterController::setCurrentPlanFileName ( const QString &  name)

◆ setFlyView()

void PlanMasterController::setFlyView ( bool  flyView)
inline

Definition at line 124 of file PlanMasterController.h.

◆ setManualCreation()

void PlanMasterController::setManualCreation ( bool  manualCreation)

Definition at line 807 of file PlanMasterController.cc.

References manualCreation(), and manualCreationChanged().

Referenced by removeAll(), and removeAllFromVehicle().

◆ showPlanFromManagerVehicle()

void PlanMasterController::showPlanFromManagerVehicle ( void  )

Replaces any current plan with the plan from the manager vehicle even if offline.

Definition at line 794 of file PlanMasterController.cc.

References offline(), and removeAll().

◆ startStaticActiveVehicle()

void PlanMasterController::startStaticActiveVehicle ( Vehicle vehicle,
bool  deleteWhenSendCompleted = false 
)

Starts the controller using a single static active vehicle. Will not track global active vehicle changes.

Parameters
deleteWhenSendCmpleteThe PlanMasterController object should be deleted after the first send is completed.

Definition at line 93 of file PlanMasterController.cc.

References GeoFenceController::start(), MissionController::start(), and RallyPointController::start().

Referenced by sendPlanToVehicle().

◆ syncInProgress()

bool PlanMasterController::syncInProgress ( void  ) const

◆ syncInProgressChanged

void PlanMasterController::syncInProgressChanged ( void  )
signal

Member Data Documentation

◆ kJsonGeoFenceObjectKey

constexpr const char* PlanMasterController::kJsonGeoFenceObjectKey = "geoFence"
staticconstexpr

Definition at line 135 of file PlanMasterController.h.

Referenced by loadFromFile(), and saveToJson().

◆ kJsonMissionObjectKey

constexpr const char* PlanMasterController::kJsonMissionObjectKey = "mission"
staticconstexpr

Definition at line 134 of file PlanMasterController.h.

Referenced by loadFromFile(), and saveToJson().

◆ kJsonRallyPointsObjectKey

constexpr const char* PlanMasterController::kJsonRallyPointsObjectKey = "rallyPoints"
staticconstexpr

Definition at line 136 of file PlanMasterController.h.

Referenced by loadFromFile(), and saveToJson().

◆ kPlanFileType

constexpr const char* PlanMasterController::kPlanFileType = "Plan"
staticconstexpr

Definition at line 133 of file PlanMasterController.h.

Referenced by loadFromFile(), and saveToJson().

◆ kPlanFileVersion

constexpr int PlanMasterController::kPlanFileVersion = 1
staticconstexpr

Definition at line 132 of file PlanMasterController.h.

Referenced by loadFromFile(), and saveToJson().


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