/**************************************************************************** * * (c) 2009-2016 QGROUNDCONTROL PROJECT * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * ****************************************************************************/ #ifndef MissionController_H #define MissionController_H #include "PlanElementController.h" #include "QmlObjectListModel.h" #include "Vehicle.h" #include "QGCLoggingCategory.h" #include "MavlinkQmlSingleton.h" #include class CoordinateVector; class VisualMissionItem; class MissionItem; class MissionSettingsItem; Q_DECLARE_LOGGING_CATEGORY(MissionControllerLog) typedef QPair VisualItemPair; typedef QHash CoordVectHashTable; class MissionController : public PlanElementController { Q_OBJECT public: MissionController(QObject* parent = NULL); ~MissionController(); typedef struct { double maxTelemetryDistance; double totalDistance; double totalTime; double hoverDistance; double hoverTime; double cruiseDistance; double cruiseTime; double cruiseSpeed; double hoverSpeed; double vehicleSpeed; //& rgMissionItems, QObject* missionItemParent); void _setPlannedHomePositionFromFirstCoordinate(void); // Overrides from PlanElementController void _activeVehicleBeingRemoved(void) final; void _activeVehicleSet(void) final; private: QmlObjectListModel* _visualItems; MissionSettingsItem* _settingsItem; QmlObjectListModel _waypointLines; CoordVectHashTable _linesTable; bool _firstItemsFromVehicle; bool _missionItemsRequested; bool _queuedSend; MissionFlightStatus_t _missionFlightStatus; QString _surveyMissionItemName; QString _fwLandingMissionItemName; static const char* _settingsGroup; // Json file keys for persistence static const char* _jsonFileTypeValue; static const char* _jsonFirmwareTypeKey; static const char* _jsonVehicleTypeKey; static const char* _jsonCruiseSpeedKey; static const char* _jsonHoverSpeedKey; static const char* _jsonItemsKey; static const char* _jsonPlannedHomePositionKey; static const char* _jsonParamsKey; // Deprecated V1 format keys static const char* _jsonMavAutopilotKey; static const char* _jsonComplexItemsKey; static const int _missionFileVersion; }; #endif