QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
TakeoffMissionItem.h
Go to the documentation of this file.
1#pragma once
2
3#include "SimpleMissionItem.h"
4
7class Vehicle;
8
11
13{
14 Q_OBJECT
15
16public:
17 // Note: forLoad = true indicates that TakeoffMissionItem::load will be called onthe item
19 TakeoffMissionItem(MAV_CMD takeoffCmd, PlanMasterController* masterController, bool flyView, MissionSettingsItem* settingsItem, bool forLoad);
21
22 Q_PROPERTY(QGeoCoordinate launchCoordinate READ launchCoordinate WRITE _setLaunchCoordinate NOTIFY launchCoordinateChanged)
23 Q_PROPERTY(bool launchTakeoffAtSameLocation READ launchTakeoffAtSameLocation WRITE _setLaunchTakeoffAtSameLocation NOTIFY launchTakeoffAtSameLocationChanged)
24
25 QGeoCoordinate launchCoordinate(void) const;
26 bool launchTakeoffAtSameLocation(void) const { return _launchTakeoffAtSameLocation; }
27
28 static bool isTakeoffCommand(MAV_CMD command);
29 static bool isVTOLMulticopterTakeoff(Vehicle* vehicle, MAV_CMD command);
30
32
33 // Overrides from VisualMissionItem
34 void setCoordinate(const QGeoCoordinate& coordinate) override;
35 bool isTakeoffItem(void) const final { return true; }
36 QString commandDescription(void) const final;
37 QString commandName(void) const final;
38 double specifiedFlightSpeed(void) final { return std::numeric_limits<double>::quiet_NaN(); }
39 double specifiedGimbalYaw(void) final { return std::numeric_limits<double>::quiet_NaN(); }
40 double specifiedGimbalPitch(void) final { return std::numeric_limits<double>::quiet_NaN(); }
41 QString mapVisualQML(void) const override { return QStringLiteral("TakeoffItemMapVisual.qml"); }
42
43 // Overrides from SimpleMissionItem
44 bool load(QTextStream &loadStream) final;
45 bool load(const QJsonObject& json, int sequenceNumber, QString& errorString) final;
46
47 //void setDirty(bool dirty) final;
48
49signals:
50 void launchCoordinateChanged(const QGeoCoordinate& launchCoordinate);
52
53private:
54 void _init(bool forLoad);
55 void _initLaunchTakeoffAtSameLocation(void);
56 void _setLaunchCoordinate(const QGeoCoordinate& launchCoordinate);
57 void _setLaunchTakeoffAtSameLocation(bool launchTakeoffAtSameLocation);
58
59
60 MissionSettingsItem* _settingsItem;
61 bool _launchTakeoffAtSameLocation = true;
62};
QString errorString
Master controller for mission, fence, rally.
A SimpleMissionItem is used to represent a single MissionItem to the ui.
int sequenceNumber(void) const final
QGeoCoordinate coordinate(void) const final
int command(void) const
MissionItem & missionItem(void)
Takeoff mission item is a special case of a SimpleMissionItem which supports Launch Location display/...
static bool isTakeoffCommand(MAV_CMD command)
QString commandDescription(void) const final
double specifiedGimbalYaw(void) final
static bool isVTOLMulticopterTakeoff(Vehicle *vehicle, MAV_CMD command)
double specifiedGimbalPitch(void) final
QGeoCoordinate launchCoordinate(void) const
void launchCoordinateChanged(const QGeoCoordinate &launchCoordinate)
bool launchTakeoffAtSameLocation(void) const
bool isTakeoffItem(void) const final
void setCoordinate(const QGeoCoordinate &coordinate) override
bool load(QTextStream &loadStream) final
double specifiedFlightSpeed(void) final
QString mapVisualQML(void) const override
QString commandName(void) const final
void launchTakeoffAtSameLocationChanged(bool launchTakeoffAtSameLocation)
bool flyView(void) const
PlanMasterController * masterController(void)