3#include <QtPositioning/QGeoCoordinate>
6#include "MAVLinkEnums.h"
58 Q_DECLARE_FLAGS(Options,
Option)
83 LinkType type() const final {
return LinkConfiguration::TypeMock; }
85 void loadSettings(QSettings &settings,
const QString &root)
final;
86 void saveSettings(QSettings &settings,
const QString &root)
const final;
87 QString
settingsURL() const final {
return QStringLiteral(
"MockLinkSettings.qml"); }
88 QString
settingsTitle() const final {
return tr(
"Mock Link Settings"); }
90 int firmware()
const {
return static_cast<int>(_firmwareType); }
92 int vehicle()
const {
return static_cast<int>(_vehicleType); }
100 void setBoardVendorProduct(uint16_t vendorId, uint16_t productId) { _boardVendorId = vendorId; _boardProductId = productId; }
260 MAV_AUTOPILOT _firmwareType = MAV_AUTOPILOT_PX4;
261 MAV_TYPE _vehicleType = MAV_TYPE_QUADROTOR;
262 bool _sendStatusText =
false;
263 bool _apmStartFreshParams =
false;
264 bool _enableCamera =
false;
265 bool _enableGimbal =
false;
266 bool _enableProximity =
false;
267 bool _enableADSB =
false;
269 bool _incrementVehicleId =
true;
270 uint16_t _boardVendorId = 0;
271 uint16_t _boardProductId = 0;
272 bool _startArmed =
false;
273 bool _preloadMission =
false;
274 bool _stayMavlinkV1 =
false;
275 bool _ftpCapability =
false;
276 bool _sendRadioStatus =
true;
279 bool _cameraCaptureVideo =
true;
280 bool _cameraCaptureImage =
true;
281 bool _cameraHasModes =
true;
282 bool _cameraHasVideoStream =
true;
283 bool _cameraCanCaptureImageInVideoMode =
true;
284 bool _cameraCanCaptureVideoInImageMode =
false;
285 bool _cameraHasBasicZoom =
true;
286 bool _cameraHasTrackingPoint =
true;
287 bool _cameraHasTrackingRectangle =
true;
292 bool _gimbalHasRollAxis =
true;
293 bool _gimbalHasPitchAxis =
true;
294 bool _gimbalHasYawAxis =
true;
295 bool _gimbalHasYawFollow =
true;
296 bool _gimbalHasYawLock =
true;
297 bool _gimbalHasRetract =
true;
298 bool _gimbalHasNeutral =
true;
299 int _gimbalDeviceId = MAV_COMP_ID_GIMBAL;
301 static constexpr const char *_firmwareTypeKey =
"FirmwareType";
302 static constexpr const char *_vehicleTypeKey =
"VehicleType";
303 static constexpr const char *_sendStatusTextKey =
"SendStatusText";
304 static constexpr const char *_apmStartFreshParamsKey =
"APMStartFreshParams";
305 static constexpr const char *_enableCameraKey =
"EnableCamera";
306 static constexpr const char *_enableGimbalKey =
"EnableGimbal";
307 static constexpr const char *_enableProximityKey =
"EnableProximity";
308 static constexpr const char* _enableADSBKey =
"EnableADSB";
309 static constexpr const char *_gimbalHasRollAxisKey =
"GimbalHasRollAxis";
310 static constexpr const char *_gimbalHasPitchAxisKey =
"GimbalHasPitchAxis";
311 static constexpr const char *_gimbalHasYawAxisKey =
"GimbalHasYawAxis";
312 static constexpr const char *_gimbalHasYawFollowKey =
"GimbalHasYawFollow";
313 static constexpr const char *_gimbalHasYawLockKey =
"GimbalHasYawLock";
314 static constexpr const char *_gimbalHasRetractKey =
"GimbalHasRetract";
315 static constexpr const char *_gimbalHasNeutralKey =
"GimbalHasNeutral";
316 static constexpr const char *_gimbalDeviceIdKey =
"GimbalDeviceId";
317 static constexpr const char *_incrementVehicleIdKey =
"IncrementVehicleId";
318 static constexpr const char *_failureModeKey =
"FailureMode";
319 static constexpr const char *_cameraCaptureVideoKey =
"CameraCaptureVideo";
320 static constexpr const char *_cameraCaptureImageKey =
"CameraCaptureImage";
321 static constexpr const char *_cameraHasModesKey =
"CameraHasModes";
322 static constexpr const char *_cameraHasVideoStreamKey =
"CameraHasVideoStream";
323 static constexpr const char *_cameraCanCaptureImageInVideoModeKey =
"CameraCanCaptureImageInVideoMode";
324 static constexpr const char *_cameraCanCaptureVideoInImageModeKey =
"CameraCanCaptureVideoInImageMode";
325 static constexpr const char *_cameraHasBasicZoomKey =
"CameraHasBasicZoom";
326 static constexpr const char *_cameraHasTrackingPointKey =
"CameraHasTrackingPoint";
327 static constexpr const char *_cameraHasTrackingRectangleKey =
"CameraHasTrackingRectangle";
328 static constexpr const char *_videoStreamTypeKey =
"VideoStreamType";
329 static constexpr const char* _homeLocationKey =
"HomeLocation";
332Q_DECLARE_OPERATORS_FOR_FLAGS(MockConfiguration::Options)
Interface holding link specific settings.
void gimbalHasPitchAxisChanged()
void cameraCanCaptureVideoInImageModeChanged()
bool cameraHasTrackingRectangle() const
bool preloadMission() const
void cameraHasTrackingPointChanged()
uint16_t boardVendorId() const
bool gimbalHasYawAxis() const
int videoStreamType() const
void cameraHasBasicZoomChanged()
bool enableGimbal() const
void setCameraHasTrackingRectangle(bool value)
bool gimbalHasRollAxis() const
void setGimbalHasRollAxis(bool value)
void setCameraHasBasicZoom(bool value)
void apmStartFreshParamsChanged()
@ VideoStreamRtpUdpH265
RTP/UDP H.265 -> udp265://.
@ VideoStreamNone
No stream served.
@ VideoStreamRtpUdpH264
RTP/UDP H.264 -> udp://.
@ VideoStreamRtspH264
RTSP H.264 -> rtsp://.
@ VideoStreamMpegTsTcp
MPEG-TS over TCP -> tcp://.
@ VideoStreamMpegTsUdp
MPEG-TS over UDP -> mpegts://.
void setCameraCaptureVideo(bool value)
bool cameraCanCaptureImageInVideoMode() const
@ HomeLocationPX4SITL
PX4 Gazebo SITL default (Zurich), allows mixing with a SITL vehicle.
@ HomeLocationArduPilotSITL
ArduPilot SITL default (CMAC, Canberra)
@ HomeLocationTerrainTest
Location with good terrain elevation variation.
bool gimbalHasRetract() const
HomeLocation homeLocationEnum() const
void enableProximityChanged()
void enableCameraChanged()
void setVehicleType(MAV_TYPE vehicleType)
void setHomeLocation(int value)
QString settingsURL() const final
Settings URL, Pure virtual method providing the URL for the (QML) settings dialog.
@ FailMissingParamOnAllRequestsNonDefaultComponent
Adds a second (non-autopilot) param component which never sends one of its params.
@ FailInitialConnectRequestMessageAutopilotVersionLost
REQUEST_MESSAGE:AUTOPILOT_VERSION success, AUTOPILOT_VERSION never sent.
@ FailMissingParamOnInitialRequest
Not all params are sent on initial request, should still succeed since QGC will re-query missing para...
@ FailMissingParamOnAllRequests
Not all params are sent on initial request, QGC retries will fail as well.
@ FailNonDefaultComponentLossy
Second component streams only its first two params and drops the first read of every param.
@ FailMissingParamSharedIndexAcrossComponents
Autopilot never sends its param at index 1; second component skips its index 1 on initial request onl...
@ FailInitialConnectRequestMessageAutopilotVersionFailure
REQUEST_MESSAGE:AUTOPILOT_VERSION returns failure.
@ FailNonDefaultComponentDead
Second component streams only its first two params and never answers a read.
@ FailParamNoResponseToRequestList
Do not respond to PARAM_REQUEST_LIST.
static HomeLocation homeLocationFromInt(int value)
void setFailureMode(FailureMode_t failureMode)
void setCameraCanCaptureImageInVideoMode(bool value)
void cameraCaptureImageChanged()
VideoStreamType videoStreamTypeEnum() const
void cameraHasModesChanged()
void loadSettings(QSettings &settings, const QString &root) final
void setCameraCaptureImage(bool value)
void gimbalHasRetractChanged()
int gimbalDeviceId() const
Gimbal device id: 1-6 for an autopilot-attached gimbal (messages come from the manager compid),...
void setEnableProximity(bool enableProximity)
bool enableCamera() const
bool apmStartFreshParams() const
bool stayMavlinkV1() const
void setBoardVendorProduct(uint16_t vendorId, uint16_t productId)
bool cameraCaptureVideo() const
QString settingsTitle() const final
Settings Title, Pure virtual method providing the Title for the (QML) settings dialog.
void gimbalDeviceIdChanged()
bool sendStatusText() const
bool cameraHasBasicZoom() const
void copyFrom(const LinkConfiguration *source) final
void setEnableADSB(bool enableADSB)
bool gimbalHasPitchAxis() const
uint16_t boardProductId() const
void setStartArmed(bool armed)
void videoStreamTypeChanged()
void setApmStartFreshParams(bool apmStartFreshParams)
bool cameraCaptureImage() const
void setCameraHasVideoStream(bool value)
void setGimbalDeviceId(int value)
void setIncrementVehicleId(bool incrementVehicleId)
void setEnableCamera(bool enableCamera)
void setGimbalHasPitchAxis(bool value)
void setFirmware(int type)
void setCameraCanCaptureVideoInImageMode(bool value)
static VideoStreamType videoStreamTypeFromInt(int value)
void setEnableGimbal(bool enableGimbal)
void setSendStatusText(bool sendStatusText)
void setGimbalHasYawLock(bool value)
void setGimbalHasYawAxis(bool value)
void setGimbalHasNeutral(bool value)
void cameraCanCaptureImageInVideoModeChanged()
void saveSettings(QSettings &settings, const QString &root) const final
void cameraCaptureVideoChanged()
void cameraHasVideoStreamChanged()
bool ftpCapability() const
void setCameraHasTrackingPoint(bool value)
void gimbalHasYawLockChanged()
void enableGimbalChanged()
bool incrementVehicleId() const
bool gimbalHasYawFollow() const
bool cameraHasVideoStream() const
void setFtpCapability(bool ftpCapability)
LinkType type() const final
void setCameraHasModes(bool value)
bool gimbalHasYawLock() const
void setGimbalHasYawFollow(bool value)
void gimbalHasNeutralChanged()
void gimbalHasRollAxisChanged()
bool cameraHasTrackingPoint() const
bool gimbalHasNeutral() const
bool sendRadioStatus() const
void homeLocationChanged()
void incrementVehicleIdChanged()
void setFirmwareType(MAV_AUTOPILOT firmwareType)
FailureMode_t failureMode() const
void setGimbalHasRetract(bool value)
void setSendRadioStatus(bool sendRadioStatus)
void gimbalHasYawFollowChanged()
Option
Options for the MockLink::start*MockLink helpers.
@ OptionAPMStartFreshParams
bool enableProximity() const
bool cameraHasModes() const
void cameraHasTrackingRectangleChanged()
static QGeoCoordinate homeCoordinate(HomeLocation location)
Home coordinate, altitude AMSL, for the given location.
MAV_TYPE vehicleType() const
void gimbalHasYawAxisChanged()
MAV_AUTOPILOT firmwareType() const
bool cameraCanCaptureVideoInImageMode() const
void setVideoStreamType(int value)
void setVehicle(int type)
void setPreloadMission(bool preloadMission)
void setStayMavlinkV1(bool stayV1)