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
6#include <QtCore/QLoggingCategory>
7
8Q_DECLARE_LOGGING_CATEGORY(VTOLLandingComplexItemLog)
9
10class VTOLLandingPatternTest;
12class MissionItem;
13
15{
16 Q_OBJECT
17
18public:
20
23
24 // Overrides from ComplexMissionItem
25 QString patternName (void) const final;
26 bool load (const QJsonObject& complexObject, int sequenceNumber, QString& errorString) final;
27 QString mapVisualQML (void) const final { return QStringLiteral("VTOLLandingPatternMapVisual.qml"); }
28
29 // Overrides from VisualMissionItem
30 void save (QJsonArray& missionItems) final;
31
32 static const QString name;
33
34 static constexpr const char* settingsGroup = "VTOLLanding";
35 static constexpr const char* jsonComplexItemTypeValue = "vtolLandingPattern";
36
37private slots:
38 void _updateFlightPathSegmentsDontCallDirectly(void) override;
39
40private:
42 static bool _isValidLandItem(const MissionItem& missionItem);
43
44 // Overrides from LandingComplexItem
45 const Fact* _finalApproachAltitude (void) const final { return &_finalApproachAltitudeFact; }
46 const Fact* _useDoChangeSpeed (void) const final { return &_useDoChangeSpeedFact; }
47 const Fact* _finalApproachSpeed (void) const final { return &_finalApproachSpeedFact; }
48 const Fact* _loiterRadius (void) const final { return &_loiterRadiusFact; }
49 const Fact* _loiterClockwise (void) const final { return &_loiterClockwiseFact; }
50 const Fact* _landingAltitude (void) const final { return &_landingAltitudeFact; }
51 const Fact* _landingDistance (void) const final { return &_landingDistanceFact; }
52 const Fact* _landingHeading (void) const final { return &_landingHeadingFact; }
53 const Fact* _useLoiterToAlt (void) const final { return &_useLoiterToAltFact; }
54 const Fact* _stopTakingPhotos (void) const final { return &_stopTakingPhotosFact; }
55 const Fact* _stopTakingVideo (void) const final { return &_stopTakingVideoFact; }
56 void _calcGlideSlope (void) final;
57 MissionItem* _createLandItem (int seqNum, bool altRel, double lat, double lon, double alt, QObject* parent) final;
58
59 QMap<QString, FactMetaData*> _metaDataMap;
60
61 Fact _landingDistanceFact;
62 Fact _finalApproachAltitudeFact;
63 Fact _useDoChangeSpeedFact;
64 Fact _finalApproachSpeedFact;
65 Fact _loiterRadiusFact;
66 Fact _loiterClockwiseFact;
67 Fact _landingHeadingFact;
68 Fact _landingAltitudeFact;
69 Fact _useLoiterToAltFact;
70 Fact _stopTakingPhotosFact;
71 Fact _stopTakingVideoFact;
72
73 friend VTOLLandingPatternTest;
74};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
QString errorString
A Fact is used to hold a single value within the system.
Definition Fact.h:19
int sequenceNumber(void) const final
Master controller for mission, fence, rally.
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)