14 Q_MOC_INCLUDE(
"SpeedSection.h")
15 Q_MOC_INCLUDE(
"CameraSection.h")
50 Q_INVOKABLE
void setMapCenterHintForCommandChange(QGeoCoordinate mapCenter) { _mapCenterHint = mapCenter; }
62 int command (
void)
const {
return _missionItem._commandFact.cookedValue().toInt(); }
97 virtual bool load(QTextStream &loadStream);
104 bool dirty (
void)
const override {
return _dirty; }
124 QString
mapVisualQML (
void)
const override {
return QStringLiteral(
"SimpleItemMapVisual.qml"); }
125 void appendMissionItems (QList<MissionItem*>& items, QObject* missionItemParent)
final;
136 void save (QJsonArray& missionItems)
final;
151 void _setDirty (
void);
152 void _sectionDirtyChanged (
bool dirty);
153 void _sendCommandChanged (
void);
154 void _sendCoordinateChanged (
void);
155 void _sendFriendlyEditAllowedChanged (
void);
156 void _altitudeChanged (
void);
157 void _altitudeModeChanged (
void);
158 void _terrainAltChanged (
void);
159 void _updateLastSequenceNumber (
void);
160 void _rebuildFacts (
void);
161 void _rebuildTextFieldFacts (
void);
162 void _possibleAdditionalTimeDelayChanged (
void);
163 void _setDefaultsForCommand (
void);
164 void _possibleVehicleYawChanged (
void);
165 void _signalIfVTOLTransitionCommand (
void);
166 void _possibleRadiusChanged (
void);
169 void _connectSignals (
void);
170 void _setupMetaData (
void);
171 void _updateOptionalSections(
void);
172 void _rebuildNaNFacts (
void);
173 void _rebuildComboBoxFacts (
void);
176 bool _rawEdit =
false;
178 bool _ignoreDirtyChangeSignals =
false;
179 QGeoCoordinate _mapCenterHint;
183 bool _syncingHeadingDegreesAndParam4 =
false;
185 Fact _supportedCommandFact;
189 Fact _amslAltAboveTerrainFact;
213 static constexpr const char* _jsonAltitudeModeKey =
"AltitudeMode";
214 static constexpr const char* _jsonAltitudeKey =
"Altitude";
215 static constexpr const char* _jsonAMSLAltAboveTerrainKey =
"AMSLAltAboveTerrain";
222 static constexpr const struct EnumInfo_s _rgMavFrameInfo[] = {
223 {
"MAV_FRAME_GLOBAL", MAV_FRAME_GLOBAL },
224 {
"MAV_FRAME_LOCAL_NED", MAV_FRAME_LOCAL_NED },
225 {
"MAV_FRAME_MISSION", MAV_FRAME_MISSION },
226 {
"MAV_FRAME_GLOBAL_RELATIVE_ALT", MAV_FRAME_GLOBAL_RELATIVE_ALT },
227 {
"MAV_FRAME_LOCAL_ENU", MAV_FRAME_LOCAL_ENU },
228 {
"MAV_FRAME_GLOBAL_INT", MAV_FRAME_GLOBAL_INT },
229 {
"MAV_FRAME_GLOBAL_RELATIVE_ALT_INT", MAV_FRAME_GLOBAL_RELATIVE_ALT_INT },
230 {
"MAV_FRAME_LOCAL_OFFSET_NED", MAV_FRAME_LOCAL_OFFSET_NED },
231 {
"MAV_FRAME_BODY_NED", MAV_FRAME_BODY_NED },
232 {
"MAV_FRAME_BODY_OFFSET_NED", MAV_FRAME_BODY_OFFSET_NED },
233 {
"MAV_FRAME_GLOBAL_TERRAIN_ALT", MAV_FRAME_GLOBAL_TERRAIN_ALT },
234 {
"MAV_FRAME_GLOBAL_TERRAIN_ALT_INT", MAV_FRAME_GLOBAL_TERRAIN_ALT_INT },
A Fact is used to hold a single value within the system.
int sequenceNumber(void) const
Master controller for mission, fence, rally.
A SimpleMissionItem is used to represent a single MissionItem to the ui.
bool specifiesCoordinate(void) const final
void setSequenceNumber(int sequenceNumber) final
void setAzimuth(double azimuth)
QmlObjectListModel * textFieldFactsAdvanced(void)
bool specifiesAltitudeOnly(void) const final
ReadyForSaveState readyForSaveState(void) const final
bool exitCoordinateSameAsEntry(void) const final
double editableAlt(void) const final
void setCommandByIndex(int index)
bool dirty(void) const override
bool isSimpleItem(void) const final
bool friendlyEditAllowed(void) const
void rawEditChanged(bool rawEdit)
void speedSectionChanged(QObject *cameraSection)
void commandChanged(int command)
bool isStandaloneCoordinate(void) const final
void applyNewAltitude(double newAltitude) final
Adjust the altitude of the item if appropriate to the new altitude.
QmlObjectListModel * textFieldFacts(void)
void appendMissionItems(QList< MissionItem * > &items, QObject *missionItemParent) final
void isLoiterItemChanged(void)
void friendlyEditAllowedChanged(bool friendlyEditAllowed)
int sequenceNumber(void) const final
QGroundControlQmlGlobal::AltMode altitudeMode(void) const
void loiterRadiusChanged(double loiterRadius)
QGeoCoordinate entryCoordinate(void) const final
void showLoiterRadiusChanged(void)
QmlObjectListModel * nanFactsAdvanced(void)
void setDistance(double distance)
bool scanForSections(QmlObjectListModel *visualItems, int scanIndex, PlanMasterController *masterController)
bool showLoiterRadius(void) const
QmlObjectListModel * nanFacts(void)
QString abbreviation(void) const final
void setAltPercent(double altPercent)
SpeedSection * speedSection(void)
const MissionItem & missionItem(void) const
CameraSection * cameraSection(void)
void altitudeModeChanged(void)
double specifiedVehicleYaw(void) override
int lastSequenceNumber(void) const final
void setRadius(double loiterRadius)
MAV_CMD mavCommand(void) const
QString mapVisualQML(void) const override
void setAltDifference(double altDifference)
double amslEntryAlt(void) const final
bool specifiesAltitude(void) const
QGeoCoordinate exitCoordinate(void) const final
Fact * amslAltAboveTerrain(void)
bool isLandCommand(void) const final
QGeoCoordinate coordinate(void) const final
void setAltitudeMode(QGroundControlQmlGlobal::AltMode altitudeMode)
virtual bool load(QTextStream &loadStream)
QString commandDescription(void) const final
double loiterRadius(void) const
QString commandName(void) const final
void setCoordinate(const QGeoCoordinate &coordinate) override
void setCommand(int command)
double specifiedFlightSpeed(void) override
bool isLoiterItem(void) const
double amslExitAlt(void) const final
QmlObjectListModel * comboboxFactsAdvanced(void)
QString category READ category NOTIFY commandChanged(bool friendlyEditAllowed READ friendlyEditAllowed NOTIFY friendlyEditAllowedChanged) 1(bool rawEdit READ rawEdit WRITE setRawEdit NOTIFY rawEditChanged) 1(bool specifiesAltitude READ specifiesAltitude NOTIFY commandChanged) 1(Fact *altitude READ altitude CONSTANT) 1(QGroundControlQmlGlobal
< true: raw item editing with all params
double specifiedGimbalYaw(void) override
void setMissionFlightStatus(MissionController::MissionFlightStatus_t &missionFlightStatus) final
MissionItem & missionItem(void)
double specifiedGimbalPitch(void) override
void cameraSectionChanged(QObject *cameraSection)
QmlObjectListModel * comboboxFacts(void)
void setDirty(bool dirty) final
void setRawEdit(bool rawEdit)
void save(QJsonArray &missionItems) final
QString category(void) const
void headingDegreesChanged(double heading)
double additionalTimeDelay(void) const final
double altDifference(void) const
double altPercent(void) const
double distance(void) const
PlanMasterController * masterController(void)
double azimuth(void) const
bool homePosition READ homePosition CONSTANT(QGeoCoordinate coordinate READ coordinate WRITE setCoordinate NOTIFY coordinateChanged) 1(double amslEntryAlt READ amslEntryAlt NOTIFY amslEntryAltChanged) 1(double terrainAltitude READ terrainAltitude NOTIFY terrainAltitudeChanged) 1(QGeoCoordinate entryCoordinate READ entryCoordinate NOTIFY entryCoordinateChanged) 1(QGeoCoordinate exitCoordinate READ exitCoordinate NOTIFY exitCoordinateChanged) 1(double amslExitAlt READ amslExitAlt NOTIFY amslExitAltChanged) 1(bool exitCoordinateSameAsEntry READ exitCoordinateSameAsEntry NOTIFY exitCoordinateSameAsEntryChanged) 1(QString commandDescription READ commandDescription NOTIFY commandDescriptionChanged) 1(QString commandName READ commandName NOTIFY commandNameChanged) 1(QString abbreviation READ abbreviation NOTIFY abbreviationChanged) 1(bool dirty READ dirty WRITE setDirty NOTIFY dirtyChanged) 1(bool isCurrentItem READ isCurrentItem WRITE setIsCurrentItem NOTIFY isCurrentItemChanged) 1(bool hasCurrentChildItem READ hasCurrentChildItem WRITE setHasCurrentChildItem NOTIFY hasCurrentChildItemChanged) 1(int sequenceNumber READ sequenceNumber WRITE setSequenceNumber NOTIFY sequenceNumberChanged) 1(int lastSequenceNumber READ lastSequenceNumber NOTIFY lastSequenceNumberChanged) 1(bool specifiesCoordinate READ specifiesCoordinate NOTIFY specifiesCoordinateChanged) 1(bool isStandaloneCoordinate READ isStandaloneCoordinate NOTIFY isStandaloneCoordinateChanged) 1(bool specifiesAltitudeOnly READ specifiesAltitudeOnly NOTIFY specifiesAltitudeOnlyChanged) 1(bool isSimpleItem READ isSimpleItem NOTIFY isSimpleItemChanged) 1(bool isTakeoffItem READ isTakeoffItem NOTIFY isTakeoffItemChanged) 1(bool isLandCommand READ isLandCommand NOTIFY isLandCommandChanged) 1(bool isSurveyItem READ isSurveyItem) 1(QString editorQml MEMBER _editorQml CONSTANT) 1(QString mapVisualQML READ mapVisualQML CONSTANT) 1(double specifiedFlightSpeed READ specifiedFlightSpeed NOTIFY specifiedFlightSpeedChanged) 1(double specifiedGimbalYaw READ specifiedGimbalYaw NOTIFY specifiedGimbalYawChanged) 1(double specifiedGimbalPitch READ specifiedGimbalPitch NOTIFY specifiedGimbalPitchChanged) 1(double specifiedVehicleYaw READ specifiedVehicleYaw NOTIFY specifiedVehicleYawChanged) 1(double missionGimbalYaw READ missionGimbalYaw NOTIFY missionGimbalYawChanged) 1(double missionVehicleYaw READ missionVehicleYaw NOTIFY missionVehicleYawChanged) 1(bool flyView READ flyView CONSTANT) 1(bool wizardMode READ wizardMode WRITE setWizardMode NOTIFY wizardModeChanged) 1(int previousVTOLMode MEMBER _previousVTOLMode NOTIFY previousVTOLModeChanged) 1(PlanMasterController *masterController READ masterController CONSTANT) 1(ReadyForSaveState readyForSaveState READ readyForSaveState NOTIFY readyForSaveStateChanged) 1(VisualMissionItem *parentItem READ parentItem WRITE setParentItem NOTIFY parentItemChanged) 1(QmlObjectListModel *childItems READ childItems CONSTANT) 1(QGCGeoBoundingCube *boundingCube READ boundingCube NOTIFY boundingCubeChanged) 1(double altDifference READ altDifference WRITE setAltDifference NOTIFY altDifferenceChanged) 1(double altPercent READ altPercent WRITE setAltPercent NOTIFY altPercentChanged) 1(double terrainPercent READ terrainPercent WRITE setTerrainPercent NOTIFY terrainPercentChanged) 1(bool terrainCollision READ terrainCollision WRITE setTerrainCollision NOTIFY terrainCollisionChanged) 1(double azimuth READ azimuth WRITE setAzimuth NOTIFY azimuthChanged) 1(double distance READ distance WRITE setDistance NOTIFY distanceChanged) 1(double distanceFromStart READ distanceFromStart WRITE setDistanceFromStart NOTIFY distanceFromStartChanged) bool homePosition(void) const
< true: This item is being used as a home position indicator