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