QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
VTOLLandingComplexItem.h
Go to the documentation of this file.
1#pragma once
2
4#include "Fact.h"
5
6class VTOLLandingPatternTest;
8class MissionItem;
9
11{
12 Q_OBJECT
13
14public:
16
19
20 // Overrides from ComplexMissionItem
21 QString patternName (void) const final;
22 bool load (const QJsonObject& complexObject, int sequenceNumber, QString& errorString) final;
23 QString mapVisualQML (void) const final { return QStringLiteral("VTOLLandingPatternMapVisual.qml"); }
24
25 // Overrides from VisualMissionItem
26 void save (QJsonArray& missionItems) final;
27
28 static constexpr const char* canonicalName = QT_TR_NOOP("VTOL Landing");
29
30 static constexpr const char* settingsGroup = "VTOLLanding";
31 static constexpr const char* jsonComplexItemTypeValue = "vtolLandingPattern";
32
33private slots:
34 void _updateFlightPathSegmentsDontCallDirectly(void) override;
35
36private:
38 static bool _isValidLandItem(const MissionItem& missionItem);
39
40 // Overrides from LandingComplexItem
41 const Fact* _finalApproachAltitude (void) const final { return &_finalApproachAltitudeFact; }
42 const Fact* _useDoChangeSpeed (void) const final { return &_useDoChangeSpeedFact; }
43 const Fact* _finalApproachSpeed (void) const final { return &_finalApproachSpeedFact; }
44 const Fact* _loiterRadius (void) const final { return &_loiterRadiusFact; }
45 const Fact* _loiterClockwise (void) const final { return &_loiterClockwiseFact; }
46 const Fact* _landingAltitude (void) const final { return &_landingAltitudeFact; }
47 const Fact* _landingDistance (void) const final { return &_landingDistanceFact; }
48 const Fact* _landingHeading (void) const final { return &_landingHeadingFact; }
49 const Fact* _useLoiterToAlt (void) const final { return &_useLoiterToAltFact; }
50 const Fact* _stopTakingPhotos (void) const final { return &_stopTakingPhotosFact; }
51 const Fact* _stopTakingVideo (void) const final { return &_stopTakingVideoFact; }
52 void _calcGlideSlope (void) final;
53 MissionItem* _createLandItem (int seqNum, bool altRel, double lat, double lon, double alt, QObject* parent) final;
54
55 QMap<QString, FactMetaData*> _metaDataMap;
56
57 Fact _landingDistanceFact;
58 Fact _finalApproachAltitudeFact;
59 Fact _useDoChangeSpeedFact;
60 Fact _finalApproachSpeedFact;
61 Fact _loiterRadiusFact;
62 Fact _loiterClockwiseFact;
63 Fact _landingHeadingFact;
64 Fact _landingAltitudeFact;
65 Fact _useLoiterToAltFact;
66 Fact _stopTakingPhotosFact;
67 Fact _stopTakingVideoFact;
68
69 friend VTOLLandingPatternTest;
70};
QString errorString
A Fact is used to hold a single value within the system.
Definition Fact.h:17
int sequenceNumber(void) const final
Master controller for mission, fence, rally.
static constexpr const char * canonicalName
QString patternName(void) const final
static bool scanForItems(QmlObjectListModel *visualItems, bool flyView, PlanMasterController *masterController)
Scans the loaded items for a landing pattern complex item.
void save(QJsonArray &missionItems) final
QString mapVisualQML(void) const final
static constexpr const char * jsonComplexItemTypeValue
bool load(const QJsonObject &complexObject, int sequenceNumber, QString &errorString) final
static constexpr const char * settingsGroup
bool flyView(void) const
PlanMasterController * masterController(void)