6#include <QtCore/QElapsedTimer>
8#include <QtCore/QObject>
9#include <QtCore/QPointer>
10#include <QtCore/QSharedPointer>
11#include <QtCore/QTime>
12#include <QtCore/QTimer>
13#include <QtCore/QVariantList>
14#include <QtPositioning/QGeoCoordinate>
15#include <QtQmlIntegration/QtQmlIntegration>
72class RequestMessageTest;
73class RetryableRequestMessageStateTest;
74class SendMavCommandWithHandlerTest;
75class SendMavCommandWithSignallingTest;
89 Q_MOC_INCLUDE(
"Actuators.h")
90 Q_MOC_INCLUDE(
"AutoPilotPlugin.h")
91 Q_MOC_INCLUDE(
"Autotune.h")
92 Q_MOC_INCLUDE(
"GimbalController.h")
93 Q_MOC_INCLUDE(
"LinkInterface.h")
94 Q_MOC_INCLUDE(
"MAVLinkLogManager.h")
95 Q_MOC_INCLUDE(
"ParameterManager.h")
96 Q_MOC_INCLUDE(
"QGCMapCircle.h")
97 Q_MOC_INCLUDE(
"QmlObjectListModel.h")
98 Q_MOC_INCLUDE(
"RemoteIDManager.h")
99 Q_MOC_INCLUDE(
"TrajectoryPoints.h")
100 Q_MOC_INCLUDE(
"VehicleLinkManager.h")
101 Q_MOC_INCLUDE(
"VehicleObjectAvoidance.h")
102 Q_MOC_INCLUDE(
"VehicleSupports.h")
103 Q_MOC_INCLUDE(
"VehicleGPSFactGroup.h")
108#ifdef QGC_UNITTEST_BUILD
109 friend class SendMavCommandWithSignallingTest;
110 friend class SendMavCommandWithHandlerTest;
111 friend class RequestMessageTest;
112 friend class RetryableRequestMessageStateTest;
122 QObject* parent =
nullptr);
133 QObject* parent =
nullptr);
144 Q_PROPERTY(
int id READ
id CONSTANT)
154 Q_PROPERTY(
TrajectoryPoints* trajectoryPoints MEMBER _trajectoryPoints CONSTANT)
306 Q_INVOKABLE
bool guidedModeGotoLocation(
const QGeoCoordinate& gotoCoord,
double forwardFlightLoiterRadius = 0.0f);
328 Q_INVOKABLE
void guidedModeOrbit(
const QGeoCoordinate& centerCoord,
double radius,
double amslAltitude);
334 Q_INVOKABLE
bool guidedModeROI(
const QGeoCoordinate ¢erCoord,
double relativeAltitudeMeters);
371 Q_INVOKABLE
void sendPlan(QString planFile);
380 Q_INVOKABLE
int versionCompare(
int major,
int minor,
int patch)
const;
386 Q_INVOKABLE
void motorTest(
int motor,
int percent,
int timeoutSecs,
bool showError);
401 Q_INVOKABLE
void sendParamMapRC(
const QString& paramName,
double scale,
double centerValue,
int tuningID,
double minValue,
double maxValue);
413 Q_INVOKABLE
void doSetHome(
const QGeoCoordinate& coord);
437 void sendJoystickDataThreadSafe (
float roll,
float pitch,
float yaw,
float thrust, quint16 buttons, quint16 buttons2,
float pitchExtension,
float rollExtension,
float aux1,
float aux2,
float aux3,
float aux4,
float aux5,
float aux6);
440 void sendJoystickAuxRcOverrideThreadSafe(
const std::array<uint16_t, kAuxRcOverrideChannelCount> &channelValues,
const std::array<bool, kAuxRcOverrideChannelCount> &channelEnabled,
bool useRcOverride);
443 int id()
const{
return _systemID; }
467 bool armed ()
const{
return _armed; }
478 void pairRX(
int rxType,
int rxSubType);
504 void requestDataStream(MAV_DATA_STREAM stream, uint16_t rate,
bool sendMultiple =
true);
510 float latitude () {
return static_cast<float>(_coordinate.latitude()); }
511 float longitude () {
return static_cast<float>(_coordinate.longitude()); }
512 bool px4Firmware ()
const {
return _firmwareType == MAV_AUTOPILOT_PX4; }
513 bool apmFirmware ()
const {
return _firmwareType == MAV_AUTOPILOT_ARDUPILOTMEGA; }
531 uint32_t
effectiveCustomMode ()
const {
return _has_custom_mode_user_intention ? _custom_mode_user_intention : _custom_mode; }
557 bool requiresGpsFix ()
const {
return static_cast<bool>(_onboardControlSensorsPresent & MAV_SYS_STATUS_SENSOR_GPS); }
561 bool hilMode ()
const {
return _base_mode & MAV_MODE_FLAG_HIL_ENABLED; }
612 void sendMavCommand(
int compId, MAV_CMD command,
bool showError,
float param1 = 0.0f,
float param2 = 0.0f,
float param3 = 0.0f,
float param4 = 0.0f,
float param5 = 0.0f,
float param6 = 0.0f,
float param7 = 0.0f);
613 void sendMavCommandDelayed(
int compId, MAV_CMD command,
bool showError,
int milliseconds,
float param1 = 0.0f,
float param2 = 0.0f,
float param3 = 0.0f,
float param4 = 0.0f,
float param5 = 0.0f,
float param6 = 0.0f,
float param7 = 0.0f);
614 void sendMavCommandInt(
int compId, MAV_CMD command, MAV_FRAME frame,
bool showError,
float param1,
float param2,
float param3,
float param4,
double param5,
double param6,
float param7);
633 Q_INVOKABLE
void sendCommand(
int compId,
int command,
bool showError,
double param1 = 0.0,
double param2 = 0.0,
double param3 = 0.0,
double param4 = 0.0,
double param5 = 0.0,
double param6 = 0.0,
double param7 = 0.0);
642 int compId, MAV_CMD command,
643 float param1 = 0.0f,
float param2 = 0.0f,
float param3 = 0.0f,
float param4 = 0.0f,
float param5 = 0.0f,
float param6 = 0.0f,
float param7 = 0.0f);
650 int compId, MAV_CMD command, MAV_FRAME frame,
651 float param1 = 0.0f,
float param2 = 0.0f,
float param3 = 0.0f,
float param4 = 0.0f,
double param5 = 0.0f,
double param6 = 0.0f,
float param7 = 0.0f);
656 std::function<
void()> lambda,
657 int compId, MAV_CMD command,
659 float param1 = 0.0f,
float param2 = 0.0f,
float param3 = 0.0f,
float param4 = 0.0f,
float param5 = 0.0f,
float param6 = 0.0f,
float param7 = 0.0f);
664 std::function<
void()> lambda,
665 int compId, MAV_CMD command, MAV_FRAME frame,
667 float param1 = 0.0f,
float param2 = 0.0f,
float param3 = 0.0f,
float param4 = 0.0f,
double param5 = 0.0,
double param6 = 0.0,
float param7 = 0.0f);
689 void setFirmwareVersion(
int majorVersion,
int minorVersion,
int patchVersion, FIRMWARE_VERSION_TYPE versionType = FIRMWARE_VERSION_TYPE_OFFICIAL);
762 void setActuatorsMetadata(uint8_t compid,
const QString& metadataJsonFileName,
const QJsonDocument& metadataJson);
835 void mavlinkLogData (
Vehicle* vehicle, uint8_t target_system, uint8_t target_component, uint16_t sequence, uint8_t first_message, QByteArray data,
bool acked);
843 void mavCommandResult (
int vehicleId,
int targetComponent,
int command,
int ackResult,
int failureCode);
846 void mavlinkSerialControl (uint8_t device, uint8_t flags, uint16_t timeout, uint32_t baudrate, QByteArray data);
857 void logEntry (uint32_t time_utc, uint32_t size, uint16_t
id, uint16_t num_logs, uint16_t last_log_num);
858 void logData (uint32_t ofs, uint16_t
id, uint8_t count,
const uint8_t* data);
862 void _sendMessageMultipleNext ();
863 void _parametersReady (
bool parametersReady);
864 void _handleFlightModeChanged (
const QString&
flightMode);
865 void _announceArmedChanged (
bool armed);
866 void _updateAirborne();
867 void _offlineCruiseSpeedSettingChanged (QVariant value);
868 void _offlineHoverSpeedSettingChanged (QVariant value);
869 void _prearmErrorTimeout ();
870 void _firstMissionLoadComplete ();
871 void _firstGeoFenceLoadComplete ();
872 void _firstRallyPointLoadComplete ();
873 void _clearCameraTriggerPoints ();
874 void _updateDistanceHeadingHome ();
875 void _updateMissionItemIndex ();
876 void _updateHeadingToNextWP ();
877 void _updateDistanceHeadingGCS ();
878 void _updateHomepoint ();
879 void _updateHobbsMeter ();
880 void _vehicleParamLoaded (
bool ready);
881 void _sendQGCTimeToVehicle ();
882 void _mavlinkMessageStatus (
int uasId, uint64_t totalSent, uint64_t totalReceived, uint64_t totalLoss,
float lossPercent);
883 void _orbitTelemetryTimeout ();
884 void _updateFlightTime ();
885 void _gotProgressUpdate (
float progressValue);
888 void _activeVehicleChanged (
Vehicle* newActiveVehicle);
911 void _missionManagerError (
int errorCode,
const QString& errorMsg);
912 void _geoFenceManagerError (
int errorCode,
const QString& errorMsg);
913 void _rallyPointManagerError (
int errorCode,
const QString& errorMsg);
914 void _say (
const QString& text);
915 QString _vehicleIdSpeech ();
918 void _ackMavlinkLogData (uint16_t sequence);
920 void _setupAutoDisarmSignalling ();
922 QString _acknowledgedStableFirmwareSettingsKey()
const;
923 bool _isNewStableFirmwareVersionAcknowledged()
const;
924 void _updateArmed (
bool armed);
925 bool _apmArmingNotRequired ();
926 void _initializeCsv ();
927 void _writeCsvLine ();
928 void _flightTimerStart ();
929 void _flightTimerStop ();
930 void _setMessageInterval (
int messageId,
int rate);
931 bool setFlightModeCustom (
const QString&
flightMode, uint8_t* base_mode, uint32_t* custom_mode);
932 QString _formatMavCommand (MAV_CMD command,
float param1);
937 void _deleteGimbalController();
938 void _deleteCameraManager();
942 void _stopCommandProcessing();
945 int _defaultComponentId;
946 bool _offlineEditingVehicle =
false;
948 MAV_AUTOPILOT _firmwareType;
949 MAV_TYPE _vehicleType;
953 bool _soloFirmware =
false;
958 bool _isActiveVehicle =
false;
960 QGeoCoordinate _coordinate;
961 QGeoCoordinate _homePosition;
962 QGeoCoordinate _armedPosition;
964 qreal _initialGCSPressure = 0.;
965 qreal _initialGCSTemperature = 0.;
967 bool _underway =
false;
968 bool _airborne =
false;
969 bool _landing =
false;
970 bool _vtolInFwdFlight =
false;
971 uint32_t _onboardControlSensorsPresent = 0;
972 uint32_t _onboardControlSensorsEnabled = 0;
973 uint32_t _onboardControlSensorsHealth = 0;
974 uint32_t _onboardControlSensorsUnhealthy = 0;
975 bool _gpsRawIntMessageAvailable =
false;
976 bool _gps2RawMessageAvailable =
false;
977 bool _globalPositionIntMessageAvailable =
false;
978 bool _cameraImageCapturedMessageAvailable =
false;
979 double _defaultCruiseSpeed = qQNaN();
980 double _defaultHoverSpeed = qQNaN();
981 bool _capabilityBitsKnown =
false;
982 uint64_t _capabilityBits = 0;
984 bool _readyToFlyAvailable =
false;
985 bool _readyToFly =
false;
986 bool _allSensorsHealthy =
true;
987 bool _rebootRequired =
false;
988 QString _newStableFirmwareVersion;
989 bool _newStableFirmwareVersionAcknowledged =
false;
991 std::atomic<bool> _joystickAuxRcOverrideActive =
false;
993 std::unique_ptr<SysStatusSensorInfo> _sysStatusSensorInfo;
996 QString _prearmError;
997 QTimer _prearmErrorTimer;
998 static const int _prearmErrorTimeoutMSecs = 35 * 1000;
1000 bool _initialPlanRequestComplete =
false;
1009 bool _armed =
false;
1010 uint8_t _base_mode = 0;
1011 uint32_t _custom_mode = 0;
1012 uint32_t _custom_mode_user_intention = 0;
1013 bool _has_custom_mode_user_intention =
false;
1014 QString _lastAnnouncedFlightMode;
1020 } SendMessageMultipleInfo_t;
1022 QList<SendMessageMultipleInfo_t> _sendMessageMultipleList;
1024 static const int _sendMessageMultipleRetries = 5;
1025 static const int _sendMessageMultipleIntraMessageDelay = 500;
1027 QTimer _sendMultipleTimer;
1028 int _nextSendMessageMultipleIndex = 0;
1030 QElapsedTimer _flightTimer;
1031 QTimer _flightTimeUpdater;
1033 std::unique_ptr<QmlObjectListModel> _cameraTriggerPoints;
1036 bool _allLinksRemovedSent =
false;
1038 uint _messagesReceived = 0;
1039 uint _messagesSent = 0;
1040 uint _messagesLost = 0;
1041 uint8_t _messageSeq = 0;
1042 uint8_t _compID = 0;
1043 bool _heardFrom =
false;
1045 bool _isROIEnabled =
false;
1046 double _roiRelativeAltitudeMeters = 0;
1048 bool _checkLatestStableFWDone =
false;
1055 FIRMWARE_VERSION_TYPE _firmwareVersionType = FIRMWARE_VERSION_TYPE_OFFICIAL;
1060 uint16_t _firmwareBoardVendorId = 0;
1061 uint16_t _firmwareBoardProductId = 0;
1067 uint64_t _mavlinkSentCount = 0;
1068 uint64_t _mavlinkReceivedCount = 0;
1069 uint64_t _mavlinkLossCount = 0;
1070 float _mavlinkLossPercent = 0.0f;
1072 float _loadProgress = 0.0f;
1074 QMap<QString, QTime> _noisySpokenPrearmMap;
1077 bool _orbitActive =
false;
1078 std::unique_ptr<QGCMapCircle> _orbitMapCircle;
1079 QTimer _orbitTelemetryTimer;
1080 static const int _orbitTelemetryTimeoutMsecs = 3000;
1082 std::unique_ptr<MAVLinkStreamConfig> _mavlinkStreamConfig;
1196 Q_PROPERTY(
bool gcsControlStatusFlags_SystemManager READ gcsControlStatusFlags_SystemManager NOTIFY
gcsControlStatusChanged)
1197 Q_PROPERTY(
bool gcsControlStatusFlags_TakeoverAllowed READ gcsControlStatusFlags_TakeoverAllowed NOTIFY
gcsControlStatusChanged)
1199 Q_PROPERTY(
int operatorControlTakeoverTimeoutMsecs READ operatorControlTakeoverTimeoutMsecs CONSTANT)
1200 Q_PROPERTY(
int requestOperatorControlRemainingMsecs READ requestOperatorControlRemainingMsecs CONSTANT)
1203 uint8_t gcsMain()
const {
return _gcsMain; }
1204 bool gcsControlStatusFlags_SystemManager()
const {
return _gcsControlStatusFlags_SystemManager; }
1205 bool gcsControlStatusFlags_TakeoverAllowed()
const {
return _gcsControlStatusFlags_TakeoverAllowed; }
1206 bool firstControlStatusReceived()
const {
return _firstControlStatusReceived; }
1207 int operatorControlTakeoverTimeoutMsecs()
const;
1208 int requestOperatorControlRemainingMsecs()
const {
return _timerRequestOperatorControl.remainingTime(); }
1209 bool sendControlRequestAllowed()
const {
return _sendControlRequestAllowed; }
1210 void requestOperatorControlStartTimer(
int requestTimeoutMsecs);
1212 uint8_t _gcsMain = 0;
1213 uint8_t _gcsControlStatusFlags = 0;
1214 bool _gcsControlStatusFlags_SystemManager = 0;
1215 bool _gcsControlStatusFlags_TakeoverAllowed = 0;
1216 bool _firstControlStatusReceived =
false;
1217 QTimer _timerRevertAllowTakeover;
1218 QTimer _timerRequestOperatorControl;
1219 bool _sendControlRequestAllowed =
true;
1256 void _onStatusTextFromEvent(uint8_t compid,
int severity,
const QString &text,
const QString &description);
1257 void _textMessageReceived(MAV_COMPONENT componentid, MAV_SEVERITY severity, QString text, QString description);
1258 void _errorMessageReceived(QString message);
1261 void _createStatusTextHandler();
1279 void _createImageProtocolManager();
1280 void _createSigningController();
1298 void _createMAVLinkLogManager();
1307 Q_MOC_INCLUDE(
"QGCCameraManager.h")
1319 void _createCameraManager();
1328 Q_MOC_INCLUDE(
"HealthAndArmingCheckReport.h")
1337 void _createMAVLinkEventManager();
1339 bool _healthAndArmingChecksSupported(uint8_t compid);
struct __mavlink_message mavlink_message_t
struct __mavlink_command_ack_t mavlink_command_ack_t
struct __mavlink_command_long_t mavlink_command_long_t
The AutoPilotPlugin class is an abstract base class which represents the methods and objects which ar...
Dynamically manages FactGroupWithIds based on incoming messages.
Used to group Facts together into an object hierarachy.
The FirmwarePlugin class represents the methods and objects which are specific to a certain Firmware ...
This is the base class for firmware specific geofence managers.
Supports the Mavlink image transmission protocol (https://mavlink.io/en/services/image_transmission....
State machine for initial vehicle connection sequence.
The link interface defines the interface for all links used to communicate with the ground station ap...
Owns per-component EventHandler instances and drives the Health & Arming Check report.
Allows to configure a set of mavlink streams to a specific rate, and restore back to default.
Owns the COMMAND_LONG / COMMAND_INT send/retry/ack pipeline for a single Vehicle.
Tracks per-component MAVLink message intervals and mediates SET_MESSAGE_INTERVAL commands plus MESSAG...
static VehicleClass_t vehicleClass(MAV_TYPE mavType)
The QGCMapCircle represents a circular area which can be displayed on a Map control.
Radio link telemetry decoded from MAVLINK_MSG_ID_RADIO_STATUS.
This is the base class for firmware specific rally point managers. A rally point manager is responsib...
Coordinates MAV_CMD_REQUEST_MESSAGE workflows: per-component queueing, ack/message correlation,...
Class which represents sensor info from the SYS_STATUS mavlink message.
NOTE: TerrainAtCoordinateQuery is not thread safe. All instances/calls to ElevationProvider must be o...
Coordinates the terrain-query workflows attached to a Vehicle:
Fact * altitudeRelative()
Per-vehicle signing facade. Owns the wiring between Vehicle and the active SigningController (which l...
Q_INVOKABLE void triggerSimpleCamera(void)
Trigger camera using MAV_CMD_DO_DIGICAM_CONTROL command.
bool isInitialConnectComplete() const
Q_INVOKABLE void guidedModeChangeAltitude(double altitudeChange, bool pauseVehicle)
void _setLanding(bool landing)
QGCCameraManager * cameraManager()
Q_INVOKABLE void motorInterlock(bool enable)
Command vehicle to Enable/Disable Motor Interlock.
Q_INVOKABLE void virtualTabletJoystickValue(double roll, double pitch, double yaw, double thrust)
int32_t getMessageRate(uint8_t compId, uint16_t msgId)
VehicleDistanceSensorFactGroup * _distanceSensorFactGroup
TerrainProtocolHandler * _terrainProtocolHandler
void firmwareTypeChanged()
QGCMAVLink::VehicleClass_t vehicleClass(void) const
uint32_t effectiveCustomMode() const
void setInitialGCSPressure(qreal pressure)
Q_INVOKABLE void flashBootloader()
uint messagesReceived() const
void sensorsPresentBitsChanged(int sensorsPresentBits)
void airborneChanged(bool airborne)
void defaultHoverSpeedChanged(double hoverSpeed)
const QString _vibrationFactGroupName
bool _multirotor_speed_limits_available
void gcsControlStatusChanged()
void defaultCruiseSpeedChanged(double cruiseSpeed)
const QString _gpsFactGroupName
FactGroup * localPositionFactGroup()
void setActuatorsMetadata(uint8_t compid, const QString &metadataJsonFileName, const QJsonDocument &metadataJson)
void haveMRSpeedLimChanged()
FactGroup * vibrationFactGroup()
void sendMavCommandWithLambdaFallback(std::function< void()> lambda, int compId, MAV_CMD command, bool showError, float param1=0.0f, float param2=0.0f, float param3=0.0f, float param4=0.0f, float param5=0.0f, float param6=0.0f, float param7=0.0f)
BatteryFactGroupListModel * _batteryFactGroupListModel
void sendMavCommand(int compId, MAV_CMD command, bool showError, float param1=0.0f, float param2=0.0f, float param3=0.0f, float param4=0.0f, float param5=0.0f, float param6=0.0f, float param7=0.0f)
VehicleLocalPositionFactGroup * _localPositionFactGroup
const QString _hygrometerFactGroupName
void messagesLostChanged()
Q_INVOKABLE void rebootVehicle()
Reboot vehicle.
VehicleRPMFactGroup * _rpmFactGroup
const QString _localPositionFactGroupName
VehicleGPSFactGroup * _gps2FactGroup
void vtolInFwdFlightChanged(bool vtolInFwdFlight)
qreal getInitialGCSPressure() const
QString missionFlightMode() const
void readyToFlyAvailableChanged(bool readyToFlyAvailable)
void forceInitialPlanRequestComplete()
void isROIEnabledChanged()
Actuators * actuators() const
Q_INVOKABLE void guidedModeOrbit(const QGeoCoordinate ¢erCoord, double radius, double amslAltitude)
const QString _terrainFactGroupName
Autotune * autotune() const
const QString _temperatureFactGroupName
void deleteGimbalController()
Delete gimbal controller, handy for RequestMessageTest.cc, otherwise gimbal controller message reques...
void _offlineVehicleTypeSettingChanged(QVariant varVehicleType)
Q_INVOKABLE void guidedModeTakeoff(double altitudeRelative)
Command vehicle to takeoff from current location.
Q_INVOKABLE void sendGripperAction(GRIPPER_ACTIONS gripperOption)
bool haveMRSpeedLimits() const
QString flightMode() const
static QString mavCmdResultFailureCodeToString(MavCmdResultFailureCode_t failureCode)
void setNewStableFirmwareVersion(const QString &version)
QString stabilizedFlightMode() const
int firmwareCustomMajorVersion() const
const QVariantList & staticCameraList() const
void requestOperatorControlReceived(int sysIdRequestingControl, int allowTakeover, int requestTimeoutSecs)
Q_INVOKABLE QVariant expandedToolbarIndicatorSource(const QString &indicatorName)
uint messagesLost() const
void sendJoystickAuxRcOverrideThreadSafe(const std::array< uint16_t, kAuxRcOverrideChannelCount > &channelValues, const std::array< bool, kAuxRcOverrideChannelCount > &channelEnabled, bool useRcOverride)
void setSoloFirmware(bool soloFirmware)
void mavlinkLogManagerChanged()
void requestDataStream(MAV_DATA_STREAM stream, uint16_t rate, bool sendMultiple=true)
FactGroup * rpmFactGroup()
QGeoCoordinate homePosition()
const QString _estimatorStatusFactGroupName
const QString _radioStatusFactGroupName
QString vehicleImageOutline() const
MissionManager * _missionManager
void initialConnectComplete()
VehicleLocalPositionSetpointFactGroup * _localPositionSetpointFactGroup
void textMessageReceived(int sysid, int componentid, int severity, QString text, QString description)
void initialPlanRequestCompleteChanged(bool initialPlanRequestComplete)
Q_INVOKABLE double minimumEquivalentAirspeed()
const QString _clockFactGroupName
Q_INVOKABLE void stopGuidedModeROI()
void firmwareCustomVersionChanged()
QString pauseFlightMode() const
QString prearmError() const
int sensorsEnabledBits() const
EscStatusFactGroupListModel * _escStatusFactGroupListModel
const QString _efiFactGroupName
void inFwdFlightChanged()
void setFirmwarePluginInstanceData(FirmwarePluginInstanceData *firmwarePluginInstanceData)
Q_INVOKABLE double maximumHorizontalSpeedMultirotorMetersSecond()
void sendMessageMultiple(mavlink_message_t message)
void capabilityBitsChanged(uint64_t capabilityBits)
bool haveFWSpeedLimits() const
int sensorsUnhealthyBits() const
void _setHomePosition(QGeoCoordinate &homeCoord)
VehicleClockFactGroup * _clockFactGroup
uint64_t capabilityBits() const
int criticalMessageCount() const
Q_INVOKABLE void abortLanding(double climbOutAltitude)
Command vehicle to abort landing.
void setGuidedMode(bool guidedMode)
void readyToFlyChanged(bool readyToFy)
QString firmwareVersionTypeString() const
QString landFlightMode() const
static void showCommandAckError(const mavlink_command_ack_t &ack)
void formattedMessagesChanged()
void newFormattedMessage(QString formattedMessage)
MAV_TYPE vehicleType() const
VehicleLinkManager * vehicleLinkManager()
uint32_t customMode() const
void cameraManagerChanged()
VehicleSigningController * signingController()
void underwayChanged(bool underway)
Q_INVOKABLE void sendParamMapRC(const QString ¶mName, double scale, double centerValue, int tuningID, double minValue, double maxValue)
Sends PARAM_MAP_RC message to vehicle.
HealthAndArmingCheckReport * healthAndArmingCheckReport()
void armedChanged(bool armed)
void firmwareVersionChanged()
FactGroup * distanceSensorFactGroup()
void logEntry(uint32_t time_utc, uint32_t size, uint16_t id, uint16_t num_logs, uint16_t last_log_num)
CheckList checkListState()
void sendControlRequestAllowedChanged(bool sendControlRequestAllowed)
FactGroup * generatorFactGroup()
void rcChannelsRawChanged(QVector< int > channelValues)
Q_INVOKABLE void acknowledgeNewStableFirmwareVersion()
Hides the update indicator until a newer stable firmware is released.
FirmwarePlugin * firmwarePlugin()
Provides access to the Firmware Plugin for this Vehicle.
quint64 mavlinkSentCount() const
void sendMavCommandInt(int compId, MAV_CMD command, MAV_FRAME frame, bool showError, float param1, float param2, float param3, float param4, double param5, double param6, float param7)
Q_INVOKABLE double minimumTakeoffAltitudeMeters()
InitialConnectStateMachine * _initialConnectStateMachine
void sensorsParametersResetAck(bool success)
int firmwareBoardProductId() const
void sendMavCommandDelayed(int compId, MAV_CMD command, bool showError, int milliseconds, float param1=0.0f, float param2=0.0f, float param3=0.0f, float param4=0.0f, float param5=0.0f, float param6=0.0f, float param7=0.0f)
ComponentInformationManager * compInfoManager()
void setEstimatorOrigin_SET_GPS_GLOBAL_ORIGIN(const QGeoCoordinate ¢erCoord)
Fallback for setEstimatorOrigin which sends the deprecated SET_GPS_GLOBAL_ORIGIN message.
const QString _distanceSensorFactGroupName
Q_INVOKABLE double maximumEquivalentAirspeed()
@ ModeAltitudeAndAirspeed
@ ModeVelocityAndPosition
void setPrearmError(const QString &prearmError)
VehicleGPSFactGroup * gpsFactGroup()
VehicleVibrationFactGroup * _vibrationFactGroup
qreal getInitialGCSTemperature() const
void checkListStateChanged()
void setFirmwareCustomVersion(int majorVersion, int minorVersion, int patchVersion)
Q_INVOKABLE void startTimerRevertAllowTakeover()
VehicleGeneratorFactGroup * _generatorFactGroup
const QString _generatorFactGroupName
int firmwareMinorVersion() const
bool isOfflineEditingVehicle() const
void messagesSentChanged()
quint64 mavlinkLossCount() const
Total number of sucessful messages received.
Q_INVOKABLE void sendPlan(QString planFile)
bool vtolInFwdFlight() const
Q_INVOKABLE void startMission()
bool isMavCommandPending(int targetCompId, MAV_CMD command)
isMavCommandPending Query whether the specified MAV_CMD is in queue to be sent or has already been se...
void capabilitiesKnownChanged(bool capabilitiesKnown)
MAV_AUTOPILOT firmwareType() const
Q_INVOKABLE void requestOperatorControl(bool allowOverride, int requestTimeoutSecs=0)
void rcChannelsClampedChanged(QVector< int > channelValues)
VehicleEstimatorStatusFactGroup * _estimatorStatusFactGroup
VehicleTemperatureFactGroup * _temperatureFactGroup
void setCheckListState(CheckList cl)
bool soloFirmware() const
void coordinateChanged(QGeoCoordinate coordinate)
QString vehicleImageOpaque() const
float _altitudeTuningOffset
Q_INVOKABLE void setPIDTuningTelemetryMode(PIDTuningTelemetryMode mode)
void setRebootRequired()
Latches rebootRequired until the vehicle reboots.
void currentConfigChanged()
void mavlinkLogData(Vehicle *vehicle, uint8_t target_system, uint8_t target_component, uint16_t sequence, uint8_t first_message, QByteArray data, bool acked)
Q_INVOKABLE void emergencyStop()
Command vehicle to kill all motors no matter what state.
void updateFlightDistance(double distance)
int firmwareCustomPatchVersion() const
Q_INVOKABLE bool guidedModeGotoLocation(const QGeoCoordinate &gotoCoord, double forwardFlightLoiterRadius=0.0f)
void pairRX(int rxType, int rxSubType)
const QString _setpointFactGroupName
Q_INVOKABLE void setCurrentMissionSequence(int seq)
Alter the current mission item on the vehicle.
void toolIndicatorsChanged()
void roiRelativeAltitudeMetersChanged()
void sensorsUnhealthyBitsChanged(int sensorsUnhealthyBits)
bool newStableFirmwareVersionAcknowledged() const
void landingChanged(bool landing)
bool sendMessageOnLinkThreadSafe(LinkInterface *link, mavlink_message_t message)
VehicleWindFactGroup * _windFactGroup
const QString _rpmFactGroupName
FactGroup * hygrometerFactGroup()
static const MAV_AUTOPILOT MAV_AUTOPILOT_TRACK
Q_INVOKABLE void startTakeoff()
VehicleHygrometerFactGroup * _hygrometerFactGroup
void setFlightMode(const QString &flightMode)
Q_INVOKABLE void sendCommand(int compId, int command, bool showError, double param1=0.0, double param2=0.0, double param3=0.0, double param4=0.0, double param5=0.0, double param6=0.0, double param7=0.0)
Same as sendMavCommand but available from Qml.
float mavlinkLossPercent() const
Total number of lost messages.
void loadProgressChanged(float value)
QString smartRTLFlightMode() const
static const MAV_TYPE MAV_TYPE_TRACK
QString followFlightMode() const
bool _fixed_wing_airspeed_limits_available
GeoFenceManager * geoFenceManager()
Q_INVOKABLE void motorTest(int motor, int percent, int timeoutSecs, bool showError)
void mavlinkMessageReceived(const mavlink_message_t &message)
bool requiresGpsFix() const
void setMessageRate(uint8_t compId, uint16_t msgId, int32_t rate)
Q_INVOKABLE void resetCounters()
< Non-empty when vehicle firmware is older than this stable version
const QVariantList & toolIndicators()
void _offlineFirmwareTypeSettingChanged(QVariant varFirmwareType)
FactGroup * localPositionSetpointFactGroup()
Q_INVOKABLE void guidedModeChangeEquivalentAirspeedMetersSecond(double airspeed)
QmlObjectListModel * escs()
void guidedModeChanged(bool guidedMode)
FactGroup * efiFactGroup()
void setEventsMetadata(uint8_t compid, const QString &metadataJsonFileName)
QString formattedMessages() const
int _findMavCommandListEntryIndex(int targetCompId, MAV_CMD command)
Test-only helper: forwards to MavCommandQueue::findEntryIndex.
quint64 vehicleUID() const
double roiRelativeAltitudeMeters() const
Last commanded ROI altitude in meters above home. Used to preserve the altitude when the ROI is re-po...
QGeoCoordinate armedPosition()
double loadProgress() const
RemoteIDManager * remoteIDManager()
QObject * sysStatusSensorInfo()
const QString _vehicleFactGroupName
QString motorDetectionFlightMode() const
void sendMavCommandIntWithLambdaFallback(std::function< void()> lambda, int compId, MAV_CMD command, MAV_FRAME frame, bool showError, float param1=0.0f, float param2=0.0f, float param3=0.0f, float param4=0.0f, double param5=0.0, double param6=0.0, float param7=0.0f)
VehicleFactGroup * _vehicleFactGroup
void rebootRequiredChanged()
void orbitActiveChanged(bool orbitActive)
void allSensorsHealthyChanged(bool allSensorsHealthy)
FactGroup * vehicleFactGroup()
static constexpr int kAuxRcOverrideChannelCount
Sends RC_CHANNELS_OVERRIDE for joystick aux axes mapped to RC channels 5–10 only.
Q_INVOKABLE void guidedModeRTL(bool smartRTL)
Command vehicle to return to launch.
void trackFirmwareVehicleTypeChanges(void)
QString newStableFirmwareVersion() const
Q_INVOKABLE void landingGearDeploy()
Command vichecle to deploy landing gear.
void _setUnderway(bool underway)
void armedPositionChanged()
VehicleEFIFactGroup * _efiFactGroup
static QString requestMessageResultHandlerFailureCodeToString(RequestMessageResultHandlerFailureCode_t failureCode)
RemoteIDManager * _remoteIDManager
Q_INVOKABLE void doSetHome(const QGeoCoordinate &coord)
Set home from flight map coordinate.
void soloFirmwareChanged(bool soloFirmware)
ParameterManager * parameterManager() const
int firmwareVersionType() const
uint32_t flowImageIndex() const
void homePositionChanged(const QGeoCoordinate &homePosition)
const VehicleSigningController * signingController() const
QMap< uint8_t, uint8_t > _lowestBatteryChargeStateAnnouncedMap
FactGroup * radioStatusFactGroup()
Q_INVOKABLE bool guidedModeROI(const QGeoCoordinate ¢erCoord, double relativeAltitudeMeters)
Q_INVOKABLE void pauseVehicle()
double defaultHoverSpeed() const
void stopTrackingFirmwareVehicleTypeChanges(void)
FactGroup * windFactGroup()
void flightModesChanged()
const QString _gps2FactGroupName
int sensorsHealthBits() const
FactGroup * temperatureFactGroup()
GimbalController * gimbalController()
Q_INVOKABLE void closeVehicle()
Removes the vehicle from the system.
int sensorsPresentBits() const
void flightModeChanged(const QString &flightMode)
bool allSensorsHealthy() const
void flowImageIndexChanged()
void roiCoordChanged(const QGeoCoordinate ¢erCoord)
VehicleObjectAvoidance * objectAvoidance()
bool rebootRequired() const
Q_INVOKABLE void clearAllParamMapRC(void)
Clears all PARAM_MAP_RC settings from vehicle.
FactGroup * estimatorStatusFactGroup()
Q_INVOKABLE void setEstimatorOrigin(const QGeoCoordinate ¢erCoord)
void setVtolInFwdFlight(bool vtolInFwdFlight)
Q_INVOKABLE void guidedModeChangeGroundSpeedMetersSecond(double groundspeed)
int defaultComponentId() const
void setInitialGCSTemperature(qreal temperature)
void mavlinkStatusChanged()
quint64 mavlinkReceivedCount() const
Calculated total number of messages sent to us.
MAVLinkLogManager * mavlinkLogManager() const
RallyPointManager * rallyPointManager()
Q_INVOKABLE void clearMessages()
bool genericFirmware() const
VehicleGPSFactGroup * gps2FactGroup()
FactGroup * setpointFactGroup()
void sendJoystickDataThreadSafe(float roll, float pitch, float yaw, float thrust, quint16 buttons, quint16 buttons2, float pitchExtension, float rollExtension, float aux1, float aux2, float aux3, float aux4, float aux5, float aux6)
QmlObjectListModel * cameraTriggerPoints()
GeoFenceManager * _geoFenceManager
QGCMapCircle * orbitMapCircle()
bool flightModeSetAvailable()
ParameterManager * parameterManager()
VehicleGPSFactGroup * _gpsFactGroup
void gitHashChanged(QString hash)
int firmwareBoardVendorId() const
void sensorsHealthBitsChanged(int sensorsHealthBits)
Q_INVOKABLE void guidedModeChangeHeading(const QGeoCoordinate &headingCoord)
QString takeControlFlightMode() const
void prepareDelete()
Vehicle is about to be deleted.
AutoPilotPlugin * autopilotPlugin()
Provides access to AutoPilotPlugin for this vehicle.
bool initialPlanRequestComplete() const
void messagesReceivedChanged()
const QString _localPositionSetpointFactGroupName
void setOfflineEditingDefaultComponentId(int defaultComponentId)
Sets the default component id for an offline editing vehicle.
void setFirmwareVersion(int majorVersion, int minorVersion, int patchVersion, FIRMWARE_VERSION_TYPE versionType=FIRMWARE_VERSION_TYPE_OFFICIAL)
QString rtlFlightMode() const
void requestMessage(RequestMessageResultHandler resultHandler, void *resultHandlerData, int compId, int messageId, float param1=0.0f, float param2=0.0f, float param3=0.0f, float param4=0.0f, float param5=0.0f)
int firmwarePatchVersion() const
QGeoCoordinate coordinate()
void startCalibration(QGCMAVLink::CalibrationType calType)
QVector< int > _servoOutputRawValues
QString firmwareTypeString() const
FTPManager * ftpManager()
FactGroup * clockFactGroup()
void stopCalibration(bool showError)
void newStableFirmwareVersionChanged()
bool isROIEnabled() const
Running loss rate.
QmlObjectListModel * batteries()
void haveFWSpeedLimChanged()
RallyPointManager * _rallyPointManager
double defaultCruiseSpeed() const
RadioStatusFactGroup * _radioStatusFactGroup
QString gotoFlightMode() const
void sendMavCommandIntWithHandler(const MavCmdAckHandlerInfo_t *ackHandlerInfo, int compId, MAV_CMD command, MAV_FRAME frame, float param1=0.0f, float param2=0.0f, float param3=0.0f, float param4=0.0f, double param5=0.0f, double param6=0.0f, float param7=0.0f)
Q_INVOKABLE void landingGearRetract()
Command vichecle to retract landing gear.
VehicleSupports * supports()
bool capabilitiesKnown() const
const QString _windFactGroupName
void mavCommandResult(int vehicleId, int targetComponent, int command, int ackResult, int failureCode)
int firmwareCustomMinorVersion() const
void sensorsEnabledBitsChanged(int sensorsEnabledBits)
class FirmwarePluginInstanceData * firmwarePluginInstanceData()
VehicleSetpointFactGroup * _setpointFactGroup
Q_INVOKABLE int versionCompare(const QString &compare) const
Used to check if running current version is equal or higher than the one being compared.
int firmwareMajorVersion() const
TerrainFactGroup * _terrainFactGroup
Q_INVOKABLE void forceArm()
void requiresGpsFixChanged()
void setArmed(bool armed, bool showError)
QStringList flightModes()
void mavlinkMsgIntervalsChanged(uint8_t compid, uint16_t msgId, int32_t rate)
FactGroup * terrainFactGroup()
void mavlinkSerialControl(uint8_t device, uint8_t flags, uint16_t timeout, uint32_t baudrate, QByteArray data)
Q_INVOKABLE QString vehicleClassInternalName() const
VehicleLinkManager * _vehicleLinkManager
void servoOutputsChanged(QVector< int > servoValues)
TerrainQueryCoordinator * _terrainQueryCoordinator
MissionManager * missionManager()
void prearmErrorChanged(const QString &prearmError)
void vehicleTypeChanged()
Q_INVOKABLE void guidedModeLand()
Command vehicle to land at current location.
void sendMavCommandWithHandler(const MavCmdAckHandlerInfo_t *ackHandlerInfo, int compId, MAV_CMD command, float param1=0.0f, float param2=0.0f, float param3=0.0f, float param4=0.0f, float param5=0.0f, float param6=0.0f, float param7=0.0f)
Sends the command and calls the callback with the result.
uint messagesSent() const
void setArmedShowError(bool armed)
StandardModes * _standardModes
bool readyToFlyAvailable() const
QString vehicleTypeString() const
void logData(uint32_t ofs, uint16_t id, uint8_t count, const uint8_t *data)
void criticalMessageCountChanged()
void(* RequestMessageResultHandler)(void *resultHandlerData, MAV_RESULT commandResult, RequestMessageResultHandlerFailureCode_t failureCode, const mavlink_message_t &message)
Callback for requestMessage — delivered when the ack/message pair resolves or a failure occurs.
struct VehicleTypes::MavCmdAckHandlerInfo_s MavCmdAckHandlerInfo_t
Callback info bundle for sendMavCommandWithHandler.
MavCmdResultFailureCode_t
RequestMessageResultHandlerFailureCode_t
static const int versionNotSetValue