|
QGroundControl
Ground Control Station for MAVLink Drones
|
#include <MissionManager.h>
Inheritance diagram for MissionManager:
Collaboration diagram for MissionManager:Public Member Functions | |
| MissionManager (Vehicle *vehicle) | |
| ~MissionManager () | |
| int | currentIndex (void) const |
| Current mission item as reported by MISSION_CURRENT. | |
| int | lastCurrentIndex (void) const |
| Last current mission item reported while in Mission flight mode. | |
| void | writeArduPilotGuidedMissionItem (const QGeoCoordinate &gotoCoord, bool altChangeOnly) |
| void | generateResumeMission (int resumeIndex) |
Public Member Functions inherited from PlanManager | |
| PlanManager (Vehicle *vehicle, MAV_MISSION_TYPE planType) | |
| ~PlanManager () | |
| bool | inProgress (void) const |
| const QList< MissionItem * > & | missionItems (void) |
| int | currentIndex (void) const |
| Current mission item as reported by MISSION_CURRENT. | |
| int | lastCurrentIndex (void) const |
| Last current mission item reported while in Mission flight mode. | |
| void | loadFromVehicle (void) |
| void | writeMissionItems (const QList< MissionItem * > &missionItems) |
| void | removeAll (void) |
Additional Inherited Members | |
Public Types inherited from PlanManager | |
| enum | ErrorCode_t { InternalError , AckTimeoutError , ProtocolError , RequestRangeError , ItemMismatchError , VehicleAckError , MissingRequestsError , MaxRetryExceeded , MissionTypeMismatch } |
| Error codes returned in error signal. More... | |
Signals inherited from PlanManager | |
| void | newMissionItemsAvailable (bool removeAllRequested) |
| void | inProgressChanged (bool inProgress) |
| void | error (int errorCode, const QString &errorMsg) |
| void | currentIndexChanged (int currentIndex) |
| void | lastCurrentIndexChanged (int lastCurrentIndex) |
| void | progressPctChanged (double progressPercentPct) |
| void | removeAllComplete (bool error) |
| void | sendComplete (bool error) |
| void | resumeMissionReady (void) |
| void | resumeMissionUploadFail (void) |
Static Public Attributes inherited from PlanManager | |
| static constexpr int | _ackTimeoutMilliseconds = 1500 |
| static constexpr int | _retryTimeoutMilliseconds = 250 |
| static constexpr int | _maxRetryCount = 5 |
| static constexpr int | kTestAckTimeoutMs = 50 |
| Ack timeout used in unit tests (much shorter for faster tests) | |
Protected Types inherited from PlanManager | |
| enum | AckType_t { AckNone , AckMissionCount , AckMissionItem , AckMissionRequest , AckMissionClearAll , AckGuidedItem } |
| enum | TransactionType_t { TransactionNone , TransactionRead , TransactionWrite , TransactionRemoveAll } |
Protected Member Functions inherited from PlanManager | |
| void | _startAckTimeout (AckType_t ack) |
| bool | _checkForExpectedAck (AckType_t receivedAck) |
| void | _readTransactionComplete (void) |
| void | _handleMissionCount (const mavlink_message_t &message) |
| void | _handleMissionItem (const mavlink_message_t &message) |
| void | _handleMissionRequest (const mavlink_message_t &message) |
| void | _handleMissionAck (const mavlink_message_t &message) |
| void | _requestNextMissionItem (void) |
| void | _clearMissionItems (void) |
| void | _sendError (ErrorCode_t errorCode, const QString &errorMsg) |
| QString | _ackTypeToString (AckType_t ackType) |
| QString | _missionResultToString (MAV_MISSION_RESULT result) |
| void | _finishTransaction (bool success, bool apmGuidedItemWrite=false) |
| void | _requestList (void) |
| Internal call to request list of mission items. May be called during a retry sequence. | |
| void | _writeMissionCount (void) |
| This begins the write sequence with the vehicle. This may be called during a retry. | |
| void | _writeMissionItemsWorker (void) |
| void | _clearAndDeleteMissionItems (void) |
| void | _clearAndDeleteWriteMissionItems (void) |
| QString | _lastMissionReqestString (MAV_MISSION_RESULT result) |
| void | _removeAllWorker (void) |
| void | _connectToMavlink (void) |
| void | _disconnectFromMavlink (void) |
| QString | _planTypeString (void) |
Protected Attributes inherited from PlanManager | |
| Vehicle * | _vehicle = nullptr |
| MAV_MISSION_TYPE | _planType |
| QTimer * | _ackTimeoutTimer = nullptr |
| AckType_t | _expectedAck |
| int | _retryCount |
| TransactionType_t | _transactionInProgress |
| bool | _resumeMission |
| QList< int > | _itemIndicesToWrite |
| List of mission items which still need to be written to vehicle. | |
| QList< int > | _itemIndicesToRead |
| List of mission items which still need to be requested from vehicle. | |
| int | _lastMissionRequest |
| Index of item last requested by MISSION_REQUEST. | |
| int | _missionItemCountToRead |
| Count of all mission items to read. | |
| QList< MissionItem * > | _missionItems |
| Set of mission items on vehicle. | |
| QList< MissionItem * > | _writeMissionItems |
| Set of mission items currently being written to vehicle. | |
| int | _currentMissionIndex |
| int | _lastCurrentIndex |
Definition at line 11 of file MissionManager.h.
| MissionManager::MissionManager | ( | Vehicle * | vehicle | ) |
Definition at line 12 of file MissionManager.cc.
References Vehicle::mavlinkMessageReceived().
| MissionManager::~MissionManager | ( | ) |
Definition at line 19 of file MissionManager.cc.
|
inline |
Current mission item as reported by MISSION_CURRENT.
Definition at line 21 of file MissionManager.h.
References PlanManager::_currentMissionIndex.
Referenced by MissionController::currentMissionIndex().
| void MissionManager::generateResumeMission | ( | int | resumeIndex | ) |
Generates a new mission which starts from the specified index. It will include all the CMD_DO items from mission start to resumeIndex in the generate mission.
Definition at line 68 of file MissionManager.cc.
References PlanManager::_clearAndDeleteWriteMissionItems(), PlanManager::_missionItems, PlanManager::_resumeMission, PlanManager::_vehicle, PlanManager::_writeMissionItems, PlanManager::_writeMissionItemsWorker(), MissionItem::command(), Vehicle::firmwarePlugin(), MissionCommandTree::getUIInfo(), PlanManager::inProgress(), MissionCommandTree::instance(), Vehicle::isOfflineEditingVehicle(), MissionCommandUIInfo::isStandaloneCoordinate(), MissionCommandUIInfo::isTakeoffCommand(), MissionItem::param3(), qgcApp, FirmwarePlugin::sendHomePositionToVehicle(), MissionItem::setIsCurrentItem(), MissionItem::setSequenceNumber(), MissionCommandUIInfo::specifiesCoordinate(), and Vehicle::vehicleClass().
Referenced by MissionController::resumeMission().
|
inline |
Last current mission item reported while in Mission flight mode.
Definition at line 24 of file MissionManager.h.
References PlanManager::_lastCurrentIndex.
Referenced by MissionController::resumeMissionIndex().
| void MissionManager::writeArduPilotGuidedMissionItem | ( | const QGeoCoordinate & | gotoCoord, |
| bool | altChangeOnly | ||
| ) |
Writes the specified set mission items to the vehicle as an ArduPilot guided mode mission item.
| gotoCoord | Coordinate to move to |
| altChangeOnly | true: only altitude change, false: lat/lon/alt change |
Definition at line 24 of file MissionManager.cc.
References PlanManager::_connectToMavlink(), PlanManager::_startAckTimeout(), PlanManager::_transactionInProgress, PlanManager::_vehicle, PlanManager::AckGuidedItem, Vehicle::defaultComponentId(), MAVLinkProtocol::getComponentId(), Vehicle::id(), PlanManager::inProgress(), PlanManager::inProgressChanged(), MAVLinkProtocol::instance(), VehicleLinkManager::primaryLink(), Vehicle::sendMessageOnLinkThreadSafe(), PlanManager::TransactionWrite, and Vehicle::vehicleLinkManager().
Referenced by APMFirmwarePlugin::guidedModeGotoLocation().