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>
74class RequestMessageTest;
75class RetryableRequestMessageStateTest;
76class SendMavCommandWithHandlerTest;
77class SendMavCommandWithSignallingTest;
91 Q_MOC_INCLUDE(
"Actuators.h")
92 Q_MOC_INCLUDE(
"AutoPilotPlugin.h")
93 Q_MOC_INCLUDE(
"Autotune.h")
94 Q_MOC_INCLUDE(
"GimbalController.h")
95 Q_MOC_INCLUDE(
"LinkInterface.h")
96 Q_MOC_INCLUDE(
"MAVLinkLogManager.h")
97 Q_MOC_INCLUDE(
"ParameterManager.h")
98 Q_MOC_INCLUDE(
"QGCMapCircle.h")
99 Q_MOC_INCLUDE(
"QmlObjectListModel.h")
100 Q_MOC_INCLUDE(
"RemoteIDManager.h")
101 Q_MOC_INCLUDE(
"TrajectoryPoints.h")
102 Q_MOC_INCLUDE(
"VehicleLinkManager.h")
103 Q_MOC_INCLUDE(
"VehicleObjectAvoidance.h")
104 Q_MOC_INCLUDE(
"VehicleSupports.h")
109#ifdef QGC_UNITTEST_BUILD
110 friend class SendMavCommandWithSignallingTest;
111 friend class SendMavCommandWithHandlerTest;
112 friend class RequestMessageTest;
113 friend class RetryableRequestMessageStateTest;
123 QObject* parent =
nullptr);
134 QObject* parent =
nullptr);
145 Q_PROPERTY(
int id READ
id CONSTANT)
155 Q_PROPERTY(
TrajectoryPoints* trajectoryPoints MEMBER _trajectoryPoints CONSTANT)
302 Q_INVOKABLE
bool guidedModeGotoLocation(
const QGeoCoordinate& gotoCoord,
double forwardFlightLoiterRadius = 0.0f);
324 Q_INVOKABLE
void guidedModeOrbit(
const QGeoCoordinate& centerCoord,
double radius,
double amslAltitude);
328 Q_INVOKABLE
void guidedModeROI(
const QGeoCoordinate& centerCoord);
357 Q_INVOKABLE
void sendPlan(QString planFile);
366 Q_INVOKABLE
int versionCompare(
int major,
int minor,
int patch)
const;
372 Q_INVOKABLE
void motorTest(
int motor,
int percent,
int timeoutSecs,
bool showError);
387 Q_INVOKABLE
void sendParamMapRC(
const QString& paramName,
double scale,
double centerValue,
int tuningID,
double minValue,
double maxValue);
399 Q_INVOKABLE
void doSetHome(
const QGeoCoordinate& coord);
423 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);
426 void sendJoystickAuxRcOverrideThreadSafe(
const std::array<uint16_t, kAuxRcOverrideChannelCount> &channelValues,
const std::array<bool, kAuxRcOverrideChannelCount> &channelEnabled,
bool useRcOverride);
429 int id()
const{
return _systemID; }
453 bool armed ()
const{
return _armed; }
464 void pairRX(
int rxType,
int rxSubType);
490 void requestDataStream(MAV_DATA_STREAM stream, uint16_t rate,
bool sendMultiple =
true);
496 float latitude () {
return static_cast<float>(_coordinate.latitude()); }
497 float longitude () {
return static_cast<float>(_coordinate.longitude()); }
498 bool px4Firmware ()
const {
return _firmwareType == MAV_AUTOPILOT_PX4; }
499 bool apmFirmware ()
const {
return _firmwareType == MAV_AUTOPILOT_ARDUPILOTMEGA; }
513 uint32_t
effectiveCustomMode ()
const {
return _has_custom_mode_user_intention ? _custom_mode_user_intention : _custom_mode; }
539 bool requiresGpsFix ()
const {
return static_cast<bool>(_onboardControlSensorsPresent & MAV_SYS_STATUS_SENSOR_GPS); }
540 bool hilMode ()
const {
return _base_mode & MAV_MODE_FLAG_HIL_ENABLED; }
594 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);
595 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);
596 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);
615 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);
624 int compId, MAV_CMD command,
625 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);
632 int compId, MAV_CMD command, MAV_FRAME frame,
633 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);
638 std::function<
void()> lambda,
639 int compId, MAV_CMD command,
641 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);
646 std::function<
void()> lambda,
647 int compId, MAV_CMD command, MAV_FRAME frame,
649 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);
671 void setFirmwareVersion(
int majorVersion,
int minorVersion,
int patchVersion, FIRMWARE_VERSION_TYPE versionType = FIRMWARE_VERSION_TYPE_OFFICIAL);
741 void setActuatorsMetadata(uint8_t compid,
const QString& metadataJsonFileName,
const QJsonDocument& metadataJson);
811 void mavlinkLogData (
Vehicle* vehicle, uint8_t target_system, uint8_t target_component, uint16_t sequence, uint8_t first_message, QByteArray data,
bool acked);
819 void mavCommandResult (
int vehicleId,
int targetComponent,
int command,
int ackResult,
int failureCode);
822 void mavlinkSerialControl (uint8_t device, uint8_t flags, uint16_t timeout, uint32_t baudrate, QByteArray data);
832 void logEntry (uint32_t time_utc, uint32_t size, uint16_t
id, uint16_t num_logs, uint16_t last_log_num);
833 void logData (uint32_t ofs, uint16_t
id, uint8_t count,
const uint8_t* data);
837 void _sendMessageMultipleNext ();
838 void _parametersReady (
bool parametersReady);
839 void _handleFlightModeChanged (
const QString&
flightMode);
840 void _announceArmedChanged (
bool armed);
841 void _offlineCruiseSpeedSettingChanged (QVariant value);
842 void _offlineHoverSpeedSettingChanged (QVariant value);
843 void _prearmErrorTimeout ();
844 void _firstMissionLoadComplete ();
845 void _firstGeoFenceLoadComplete ();
846 void _firstRallyPointLoadComplete ();
847 void _clearCameraTriggerPoints ();
848 void _updateDistanceHeadingHome ();
849 void _updateMissionItemIndex ();
850 void _updateHeadingToNextWP ();
851 void _updateDistanceHeadingGCS ();
852 void _updateHomepoint ();
853 void _updateHobbsMeter ();
854 void _vehicleParamLoaded (
bool ready);
855 void _sendQGCTimeToVehicle ();
856 void _mavlinkMessageStatus (
int uasId, uint64_t totalSent, uint64_t totalReceived, uint64_t totalLoss,
float lossPercent);
857 void _orbitTelemetryTimeout ();
858 void _updateFlightTime ();
859 void _gotProgressUpdate (
float progressValue);
862 void _activeVehicleChanged (
Vehicle* newActiveVehicle);
882#if !defined(QGC_NO_ARDUPILOT_DIALECT)
887 void _missionManagerError (
int errorCode,
const QString& errorMsg);
888 void _geoFenceManagerError (
int errorCode,
const QString& errorMsg);
889 void _rallyPointManagerError (
int errorCode,
const QString& errorMsg);
890 void _say (
const QString& text);
891 QString _vehicleIdSpeech ();
894 void _ackMavlinkLogData (uint16_t sequence);
896 void _setupAutoDisarmSignalling ();
898 void _updateArmed (
bool armed);
899 bool _apmArmingNotRequired ();
900 void _initializeCsv ();
901 void _writeCsvLine ();
902 void _flightTimerStart ();
903 void _flightTimerStop ();
904 void _setMessageInterval (
int messageId,
int rate);
905 bool setFlightModeCustom (
const QString&
flightMode, uint8_t* base_mode, uint32_t* custom_mode);
906 QString _formatMavCommand (MAV_CMD command,
float param1);
911 void _deleteGimbalController();
912 void _deleteCameraManager();
916 void _stopCommandProcessing();
919 int _defaultComponentId;
920 bool _offlineEditingVehicle =
false;
922 MAV_AUTOPILOT _firmwareType;
923 MAV_TYPE _vehicleType;
927 bool _soloFirmware =
false;
932 bool _isActiveVehicle =
false;
934 QGeoCoordinate _coordinate;
935 QGeoCoordinate _homePosition;
936 QGeoCoordinate _armedPosition;
938 qreal _initialGCSPressure = 0.;
939 qreal _initialGCSTemperature = 0.;
941 bool _flying =
false;
942 bool _landing =
false;
943 bool _vtolInFwdFlight =
false;
944 uint32_t _onboardControlSensorsPresent = 0;
945 uint32_t _onboardControlSensorsEnabled = 0;
946 uint32_t _onboardControlSensorsHealth = 0;
947 uint32_t _onboardControlSensorsUnhealthy = 0;
948 bool _gpsRawIntMessageAvailable =
false;
949 bool _gps2RawMessageAvailable =
false;
950 bool _globalPositionIntMessageAvailable =
false;
951 bool _cameraImageCapturedMessageAvailable =
false;
952 double _defaultCruiseSpeed = qQNaN();
953 double _defaultHoverSpeed = qQNaN();
954 bool _capabilityBitsKnown =
false;
955 uint64_t _capabilityBits = 0;
957 bool _readyToFlyAvailable =
false;
958 bool _readyToFly =
false;
959 bool _allSensorsHealthy =
true;
961 std::atomic<bool> _joystickAuxRcOverrideActive =
false;
963 std::unique_ptr<SysStatusSensorInfo> _sysStatusSensorInfo;
966 QString _prearmError;
967 QTimer _prearmErrorTimer;
968 static const int _prearmErrorTimeoutMSecs = 35 * 1000;
970 bool _initialPlanRequestComplete =
false;
980 uint8_t _base_mode = 0;
981 uint32_t _custom_mode = 0;
982 uint32_t _custom_mode_user_intention = 0;
983 bool _has_custom_mode_user_intention =
false;
984 QString _lastAnnouncedFlightMode;
990 } SendMessageMultipleInfo_t;
992 QList<SendMessageMultipleInfo_t> _sendMessageMultipleList;
994 static const int _sendMessageMultipleRetries = 5;
995 static const int _sendMessageMultipleIntraMessageDelay = 500;
997 QTimer _sendMultipleTimer;
998 int _nextSendMessageMultipleIndex = 0;
1000 QElapsedTimer _flightTimer;
1001 QTimer _flightTimeUpdater;
1003 std::unique_ptr<QmlObjectListModel> _cameraTriggerPoints;
1006 bool _allLinksRemovedSent =
false;
1008 uint _messagesReceived = 0;
1009 uint _messagesSent = 0;
1010 uint _messagesLost = 0;
1011 uint8_t _messageSeq = 0;
1012 uint8_t _compID = 0;
1013 bool _heardFrom =
false;
1015 bool _isROIEnabled =
false;
1017 bool _checkLatestStableFWDone =
false;
1024 FIRMWARE_VERSION_TYPE _firmwareVersionType = FIRMWARE_VERSION_TYPE_OFFICIAL;
1029 uint16_t _firmwareBoardVendorId = 0;
1030 uint16_t _firmwareBoardProductId = 0;
1036 uint64_t _mavlinkSentCount = 0;
1037 uint64_t _mavlinkReceivedCount = 0;
1038 uint64_t _mavlinkLossCount = 0;
1039 float _mavlinkLossPercent = 0.0f;
1041 float _loadProgress = 0.0f;
1043 QMap<QString, QTime> _noisySpokenPrearmMap;
1046 bool _orbitActive =
false;
1047 std::unique_ptr<QGCMapCircle> _orbitMapCircle;
1048 QTimer _orbitTelemetryTimer;
1049 static const int _orbitTelemetryTimeoutMsecs = 3000;
1051 std::unique_ptr<MAVLinkStreamConfig> _mavlinkStreamConfig;
1173 Q_PROPERTY(
bool gcsControlStatusFlags_SystemManager READ gcsControlStatusFlags_SystemManager NOTIFY
gcsControlStatusChanged)
1174 Q_PROPERTY(
bool gcsControlStatusFlags_TakeoverAllowed READ gcsControlStatusFlags_TakeoverAllowed NOTIFY
gcsControlStatusChanged)
1176 Q_PROPERTY(
int operatorControlTakeoverTimeoutMsecs READ operatorControlTakeoverTimeoutMsecs CONSTANT)
1177 Q_PROPERTY(
int requestOperatorControlRemainingMsecs READ requestOperatorControlRemainingMsecs CONSTANT)
1180 uint8_t gcsMain()
const {
return _gcsMain; }
1181 bool gcsControlStatusFlags_SystemManager()
const {
return _gcsControlStatusFlags_SystemManager; }
1182 bool gcsControlStatusFlags_TakeoverAllowed()
const {
return _gcsControlStatusFlags_TakeoverAllowed; }
1183 bool firstControlStatusReceived()
const {
return _firstControlStatusReceived; }
1184 int operatorControlTakeoverTimeoutMsecs()
const;
1185 int requestOperatorControlRemainingMsecs()
const {
return _timerRequestOperatorControl.remainingTime(); }
1186 bool sendControlRequestAllowed()
const {
return _sendControlRequestAllowed; }
1187 void requestOperatorControlStartTimer(
int requestTimeoutMsecs);
1189 uint8_t _gcsMain = 0;
1190 uint8_t _gcsControlStatusFlags = 0;
1191 bool _gcsControlStatusFlags_SystemManager = 0;
1192 bool _gcsControlStatusFlags_TakeoverAllowed = 0;
1193 bool _firstControlStatusReceived =
false;
1194 QTimer _timerRevertAllowTakeover;
1195 QTimer _timerRequestOperatorControl;
1196 bool _sendControlRequestAllowed =
true;
1244 void _onStatusTextFromEvent(uint8_t compid,
int severity,
const QString &text,
const QString &description);
1245 void _textMessageReceived(MAV_COMPONENT componentid, MAV_SEVERITY severity, QString text, QString description);
1246 void _errorMessageReceived(QString message);
1249 void _createStatusTextHandler();
1267 void _createImageProtocolManager();
1268 void _createSigningController();
1286 void _createMAVLinkLogManager();
1295 Q_MOC_INCLUDE(
"QGCCameraManager.h")
1307 void _createCameraManager();
1316 Q_MOC_INCLUDE(
"HealthAndArmingCheckReport.h")
1325 void _createMAVLinkEventManager();
1327 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 three 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 defaultHoverSpeedChanged(double hoverSpeed)
const QString _vibrationFactGroupName
bool _multirotor_speed_limits_available
void gcsControlStatusChanged()
void defaultCruiseSpeedChanged(double cruiseSpeed)
bool messageTypeError() const
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.
FactGroup * gpsAggregateFactGroup()
VehicleRPMFactGroup * _rpmFactGroup
const QString _localPositionFactGroupName
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)
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
Q_INVOKABLE void guidedModeROI(const QGeoCoordinate ¢erCoord)
const QString _efiFactGroupName
void inFwdFlightChanged()
void flyingChanged(bool flying)
void setFirmwarePluginInstanceData(FirmwarePluginInstanceData *firmwarePluginInstanceData)
Q_INVOKABLE double maximumHorizontalSpeedMultirotorMetersSecond()
void sendMessageMultiple(mavlink_message_t message)
void capabilityBitsChanged(uint64_t capabilityBits)
bool messageTypeNone() const
bool haveFWSpeedLimits() const
int sensorsUnhealthyBits() const
void _setHomePosition(QGeoCoordinate &homeCoord)
VehicleClockFactGroup * _clockFactGroup
uint64_t capabilityBits() 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()
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)
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)
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 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
const QString _gpsAggregateFactGroupName
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.
FactGroup * gps2FactGroup()
void toolIndicatorsChanged()
void sensorsUnhealthyBitsChanged(int sensorsUnhealthyBits)
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()
Q_INVOKABLE void resetAllMessages()
VehicleHygrometerFactGroup * _hygrometerFactGroup
void setFlightMode(const QString &flightMode)
bool messageTypeWarning() const
static constexpr int kTestMavCommandMaxWaitMs
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()
< Flight mode vehicle is in while performing goto
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
QGeoCoordinate armedPosition()
double loadProgress() const
RemoteIDManager * remoteIDManager()
QObject * sysStatusSensorInfo()
const QString _vehicleFactGroupName
QString motorDetectionFlightMode() const
Q_INVOKABLE void resetErrorLevelMessages()
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 orbitActiveChanged(bool orbitActive)
bool messageTypeNormal() const
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.
VehicleGPS2FactGroup * _gps2FactGroup
void trackFirmwareVehicleTypeChanges(void)
Q_INVOKABLE void landingGearDeploy()
Command vichecle to deploy landing gear.
static constexpr int kTestMavCommandAckTimeoutMs
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 stopUAVCANBusConfig(void)
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 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()
Q_INVOKABLE void clearAllParamMapRC(void)
Clears all PARAM_MAP_RC settings from vehicle.
void messageTypeChanged()
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
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)
void _setFlying(bool flying)
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
static constexpr int _mavCommandMaxRetryCount
FTPManager * ftpManager()
FactGroup * clockFactGroup()
void stopCalibration(bool showError)
void messageCountChanged()
bool isROIEnabled() const
Running loss rate.
QmlObjectListModel * batteries()
void haveFWSpeedLimChanged()
RallyPointManager * _rallyPointManager
double defaultCruiseSpeed() const
void startUAVCANBusConfig(void)
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)
VehicleGPSAggregateFactGroup * _gpsAggregateFactGroup
FactGroup * gpsFactGroup()
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(* 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