|
QGroundControl
Ground Control Station for MAVLink Drones
|
#include <MockLink.h>
Inheritance diagram for MockLink:
Collaboration diagram for MockLink:Signals | |
| void | writeBytesQueuedSignal (const QByteArray &bytes) |
| void | highLatencyTransmissionEnabledChanged (bool highLatencyTransmissionEnabled) |
Signals inherited from LinkInterface | |
| void | bytesReceived (LinkInterface *link, const QByteArray &data) |
| void | bytesSent (LinkInterface *link, const QByteArray &data) |
| void | connected () |
| void | disconnected () |
| void | communicationError (const QString &title, const QString &error) |
Public Member Functions | |
| MockLink (SharedLinkConfigurationPtr &config, QObject *parent=nullptr) | |
| virtual | ~MockLink () |
| void | run1HzTasks () |
| void | run10HzTasks () |
| void | run500HzTasks () |
| void | sendStatusTextMessages () |
| bool | shouldSendStatusText () const |
| bool | isConnected () const final |
| void | disconnect () final |
| Q_INVOKABLE void | setCommLost (bool commLost) |
| Q_INVOKABLE void | simulateConnectionRemoved () |
| int | vehicleId () const |
| MAV_AUTOPILOT | getFirmwareType () const |
| double | vehicleLatitude () const |
| double | vehicleLongitude () const |
| double | vehicleAltitudeAMSL () const |
| QGeoCoordinate | homeCoordinate () const |
| Configured home position, before the per-vehicle offset applied to the vehicle position. | |
| bool | signingEnabled () const |
| void | respondWithMavlinkMessage (const mavlink_message_t &msg) |
| Sends the specified mavlink message to QGC. | |
| void | sendStatusTextMessage (uint8_t severity, const QString &text) |
| void | setCalibrationPose (MockLinkPX4Calibration::Pose pose) const |
| Test API: places the simulated vehicle into the given pose during calibration. | |
| MockLinkFTP * | mockLinkFTP () const |
| MockLinkGimbal * | mockLinkGimbal () const |
| void | setVehicleAttitudeOverrideDeg (float rollDeg, float pitchDeg, float yawDeg) |
| void | clearVehicleAttitudeOverride () |
| void | setArmed (bool armed) |
| Set the armed state of the simulated vehicle. | |
| bool | armed () const |
| void | setMissionItemFailureMode (MockLinkMissionItemHandler::FailureMode_t failureMode, MAV_MISSION_RESULT failureAckResult) const |
| void | sendUnexpectedMissionAck (MAV_MISSION_RESULT ackType) const |
| Called to send a MISSION_ACK message while the MissionManager is in idle state. | |
| void | sendUnexpectedMissionItem () const |
| Called to send a MISSION_ITEM message while the MissionManager is in idle state. | |
| void | sendUnexpectedMissionRequest () const |
| Called to send a MISSION_REQUEST message while the MissionManager is in idle state. | |
| void | sendUnexpectedCommandAck (MAV_CMD command, MAV_RESULT ackResult) |
| void | resetMissionItemHandler () const |
| Reset the state of the MissionItemHandler to no items, no transactions in progress. | |
| void | loadSimpleMultirotorMission () const |
| Test-only: seeds a simple multirotor mission (takeoff, waypoint, RTL) onto the simulated vehicle. | |
| QString | logDownloadFile () const |
| Returns the filename for the simulated log file. Only available after a download is requested. | |
| uint8_t | outgoingMavlinkChannel () const |
| Vehicle-side channel used to encode outgoing (mock vehicle -> QGC) messages. Signing state lives here. | |
| void | clearReceivedMavCommandCounts () |
| int | receivedMavCommandCount (MAV_CMD command) const |
| int | receivedMavCommandCount (MAV_CMD command, int compId) const |
| int | receivedRequestMessageCount (int compId, int messageId) const |
| void | clearReceivedRequestMessageCounts () |
| int | receivedRequestMessageCount (uint32_t messageId) const |
| void | clearReceivedMavlinkMessageCounts () |
| int | receivedMavlinkMessageCount (uint32_t messageId) const |
| bool | lastReceivedMavlinkMessage (uint32_t messageId, mavlink_message_t &message) const |
| Returns the last received message with the given id. Returns false if none received. | |
| int | receivedMissionRequestListCount (MAV_MISSION_TYPE type) const |
| void | bumpAvailableModesMonitorSequence () |
| void | setDuplicateResponses (bool duplicate) |
| Unit test support: sends every vehicle->QGC message twice, as when two links receive the same traffic. | |
| void | setRequestMessageFailureMode (RequestMessageFailureMode_t failureMode) |
| void | setRequestMessageNoResponse (uint32_t messageId, bool noResponse=true) |
| void | setParamSetFailureMode (ParamSetFailureMode_t mode) |
| void | setParamRequestReadFailureMode (ParamRequestReadFailureMode_t mode) |
| void | setHashCheckNoResponse (bool noResponse) |
| void | setResetSysAutostartOnParamReset (bool reset) |
| int | hashCheckRequestCount () const |
| Returns the number of standalone PARAM_REQUEST_READ requests for _HASH_CHECK received. | |
| QList< QPair< int, int > > | paramRequestReadIndexLog () const |
| Index-based PARAM_REQUEST_READs received, in arrival order: (componentId, paramIndex) | |
| void | setMockParamValue (int componentId, const QString ¶mName, float value) |
| Change a float parameter value directly on MockLink (for testing cache invalidation) | |
| void | startAPMStaleFailedMagCalReportStreaming () |
| bool | apmStaleFailedMagCalReportStreamingActive () const |
| Returns true while the stale failed MAG_CAL_REPORT stream is active. | |
| void | setAPMMagCalStartFailureMode (bool fail) |
| void | setInt32ParamValue (int componentId, const QString ¶mName, int32_t value) |
| QVariant | paramValue (int componentId, const QString ¶mName) const |
| void | setRemoteIDArmStatus (uint8_t status, const QString &error) |
| void | servedVideoStream (MockConfiguration::VideoStreamType &type, QString &uri) const |
| MockConfiguration::VideoStreamType | requestedVideoStreamType () const |
| Video stream type the configuration requested (immutable after construction). | |
Public Member Functions inherited from LinkInterface | |
| virtual | ~LinkInterface () |
| virtual bool | isLogReplay () const |
| virtual bool | isSecureConnection () const |
| virtual bool | isRadioLink () const |
| void | reportRadioStatusReceived () |
| SharedLinkConfigurationPtr | linkConfiguration () |
| const SharedLinkConfigurationPtr | linkConfiguration () const |
| uint8_t | mavlinkChannel () const |
| bool | mavlinkChannelIsSet () const |
| bool | decodedFirstMavlinkPacket () const |
| void | setDecodedFirstMavlinkPacket (bool decodedFirstMavlinkPacket) |
| void | writeBytesThreadSafe (const char *bytes, int length) |
| void | sendMessageThreadSafe (mavlink_message_t &message) |
| void | addVehicleReference () |
| void | removeVehicleReference () |
| void | reportMavlinkV1Traffic () |
| void | reportMavlinkV2Traffic () |
| Called when a v2 message is received: permanently suppresses the v1-only warning for this link. | |
| bool | mavlinkV1TrafficReported () const |
| SigningController * | signing () |
| Per-link signing state and confirmation state machine. Non-null after channel allocation. | |
| const SigningController * | signing () const |
Static Public Attributes | |
| static constexpr MAV_CMD | MAV_CMD_MOCKLINK_ALWAYS_RESULT_ACCEPTED = MAV_CMD_USER_1 |
| static constexpr MAV_CMD | MAV_CMD_MOCKLINK_ALWAYS_RESULT_FAILED = MAV_CMD_USER_2 |
| static constexpr MAV_CMD | MAV_CMD_MOCKLINK_SECOND_ATTEMPT_RESULT_ACCEPTED = MAV_CMD_USER_3 |
| static constexpr MAV_CMD | MAV_CMD_MOCKLINK_SECOND_ATTEMPT_RESULT_FAILED = MAV_CMD_USER_4 |
| static constexpr MAV_CMD | MAV_CMD_MOCKLINK_NO_RESPONSE = MAV_CMD_USER_5 |
| static constexpr MAV_CMD | MAV_CMD_MOCKLINK_NO_RESPONSE_NO_RETRY = static_cast<MAV_CMD>(MAV_CMD_USER_5 + 1) |
| static constexpr MAV_CMD | MAV_CMD_MOCKLINK_RESULT_IN_PROGRESS_ACCEPTED = static_cast<MAV_CMD>(MAV_CMD_USER_5 + 2) |
| static constexpr MAV_CMD | MAV_CMD_MOCKLINK_RESULT_IN_PROGRESS_FAILED = static_cast<MAV_CMD>(MAV_CMD_USER_5 + 3) |
| static constexpr MAV_CMD | MAV_CMD_MOCKLINK_RESULT_IN_PROGRESS_NO_ACK = static_cast<MAV_CMD>(MAV_CMD_USER_5 + 4) |
Static Public Attributes inherited from LinkInterface | |
| static constexpr int | kMavlinkV1TrafficGraceMsecsDefault = 10000 |
Friends | |
| class | MockLinkFTP |
| class | StandardModesTest |
Additional Inherited Members | |
Protected Member Functions inherited from LinkInterface | |
| LinkInterface (SharedLinkConfigurationPtr &config, QObject *parent=nullptr) | |
| Links are only created by LinkManager so constructor is not public. | |
| void | _connectionRemoved () |
| void | _shutdownWorkerThread (QThread *thread, const QLoggingCategory &category, bool allowTerminate=true) |
Protected Attributes inherited from LinkInterface | |
| SharedLinkConfigurationPtr | _config |
Definition at line 30 of file MockLink.h.
Definition at line 170 of file MockLink.h.
Definition at line 159 of file MockLink.h.
| Enumerator | |
|---|---|
| FailRequestMessageNone | |
| FailRequestMessageCommandAcceptedMsgNotSent | |
| FailRequestMessageCommandUnsupported | |
| FailRequestMessageCommandNoResponse | |
Definition at line 140 of file MockLink.h.
|
explicit |
Definition at line 160 of file MockLink.cc.
References MockLinkMissionItemHandler::loadSimpleMultirotorMission(), LinkConfiguration::name(), MockConfiguration::preloadMission(), setArmed(), MockConfiguration::startArmed(), MockLinkWorker::startWork(), and writeBytesQueuedSignal().
|
virtual |
Definition at line 246 of file MockLink.cc.
References disconnect().
| bool MockLink::apmStaleFailedMagCalReportStreamingActive | ( | ) | const |
Returns true while the stale failed MAG_CAL_REPORT stream is active.
Definition at line 3522 of file MockLink.cc.
|
inline |
Definition at line 85 of file MockLink.h.
Referenced by setArmed().
|
inline |
Unit test support: bumps the AVAILABLE_MODES_MONITOR sequence number, which unlocks the delayed flight mode and causes QGC to re-query standard modes.
Definition at line 135 of file MockLink.h.
|
inline |
Definition at line 115 of file MockLink.h.
|
inline |
Definition at line 121 of file MockLink.h.
References MockLinkMissionItemHandler::clearRequestListCounts().
|
inline |
Definition at line 119 of file MockLink.h.
| void MockLink::clearVehicleAttitudeOverride | ( | ) |
Definition at line 3416 of file MockLink.cc.
|
finalvirtual |
Implements LinkInterface.
Definition at line 293 of file MockLink.cc.
References LinkInterface::disconnected(), mavlink_get_channel_status(), and MockLinkMissionItemHandler::shutdown().
Referenced by QGroundControlQmlGlobal::stopOneMockLink(), and ~MockLink().
|
inline |
Definition at line 54 of file MockLink.h.
|
inline |
Returns the number of standalone PARAM_REQUEST_READ requests for _HASH_CHECK received.
Definition at line 189 of file MockLink.h.
|
signal |
|
inline |
Configured home position, before the per-vehicle offset applied to the vehicle position.
Definition at line 61 of file MockLink.h.
Referenced by MockLinkMissionItemHandler::loadSimpleMultirotorMission().
|
inlinefinalvirtual |
Implements LinkInterface.
Definition at line 47 of file MockLink.h.
|
inline |
Returns the last received message with the given id. Returns false if none received.
Definition at line 124 of file MockLink.h.
|
inline |
Test-only: seeds a simple multirotor mission (takeoff, waypoint, RTL) onto the simulated vehicle.
Definition at line 107 of file MockLink.h.
References MockLinkMissionItemHandler::loadSimpleMultirotorMission().
|
inline |
Returns the filename for the simulated log file. Only available after a download is requested.
Definition at line 110 of file MockLink.h.
| MockLinkFTP * MockLink::mockLinkFTP | ( | ) | const |
Definition at line 3402 of file MockLink.cc.
|
inline |
Definition at line 76 of file MockLink.h.
|
inline |
Vehicle-side channel used to encode outgoing (mock vehicle -> QGC) messages. Signing state lives here.
Definition at line 113 of file MockLink.h.
Referenced by MockLinkCamera::sendCameraHeartbeats().
|
inline |
Index-based PARAM_REQUEST_READs received, in arrival order: (componentId, paramIndex)
Definition at line 191 of file MockLink.h.
|
inline |
Returns the current MockLink-side value of a parameter. Used by unit tests to verify that PARAM_SET writes reached the simulated firmware.
Definition at line 214 of file MockLink.h.
|
inline |
Definition at line 116 of file MockLink.h.
|
inline |
Definition at line 117 of file MockLink.h.
|
inline |
Definition at line 122 of file MockLink.h.
|
inline |
Definition at line 131 of file MockLink.h.
References MockLinkMissionItemHandler::requestListCount().
|
inline |
Definition at line 118 of file MockLink.h.
|
inline |
Definition at line 120 of file MockLink.h.
|
inline |
Video stream type the configuration requested (immutable after construction).
Definition at line 238 of file MockLink.h.
|
inline |
Reset the state of the MissionItemHandler to no items, no transactions in progress.
Definition at line 104 of file MockLink.h.
References MockLinkMissionItemHandler::reset().
| void MockLink::respondWithMavlinkMessage | ( | const mavlink_message_t & | msg | ) |
Sends the specified mavlink message to QGC.
Definition at line 1102 of file MockLink.cc.
References LinkInterface::bytesReceived().
Referenced by MockLinkFTP::mavlinkMessageReceived(), MockLinkCamera::sendCameraHeartbeats(), sendStatusTextMessage(), and sendUnexpectedCommandAck().
| void MockLink::run10HzTasks | ( | ) |
Definition at line 457 of file MockLink.cc.
References LinkInterface::linkConfiguration(), LinkInterface::mavlinkChannelIsSet(), MockLinkCamera::run10HzTasks(), MockLinkPX4Calibration::run10HzTasks(), and QGC::runningUnitTests().
| void MockLink::run1HzTasks | ( | ) |
Definition at line 403 of file MockLink.cc.
References LinkInterface::linkConfiguration(), LinkInterface::mavlinkChannelIsSet(), MockLinkGimbal::run1HzTasks(), QGC::runningUnitTests(), and MockLinkCamera::sendCameraHeartbeats().
| void MockLink::run500HzTasks | ( | ) |
Definition at line 491 of file MockLink.cc.
References LinkInterface::linkConfiguration(), LinkInterface::mavlinkChannelIsSet(), and QGC::runningUnitTests().
| void MockLink::sendStatusTextMessage | ( | uint8_t | severity, |
| const QString & | text | ||
| ) |
Sends a STATUSTEXT message to QGC
| severity | MAV_SEVERITY value |
Definition at line 2898 of file MockLink.cc.
References respondWithMavlinkMessage().
Referenced by MockLinkPX4Calibration::cancel(), and MockLinkPX4Calibration::run10HzTasks().
| void MockLink::sendStatusTextMessages | ( | ) |
Definition at line 513 of file MockLink.cc.
| void MockLink::sendUnexpectedCommandAck | ( | MAV_CMD | command, |
| MAV_RESULT | ackResult | ||
| ) |
Definition at line 2366 of file MockLink.cc.
References respondWithMavlinkMessage().
|
inline |
Called to send a MISSION_ACK message while the MissionManager is in idle state.
Definition at line 93 of file MockLink.h.
References MockLinkMissionItemHandler::sendUnexpectedMissionAck().
|
inline |
Called to send a MISSION_ITEM message while the MissionManager is in idle state.
Definition at line 96 of file MockLink.h.
References MockLinkMissionItemHandler::sendUnexpectedMissionItem().
|
inline |
Called to send a MISSION_REQUEST message while the MissionManager is in idle state.
Definition at line 99 of file MockLink.h.
References MockLinkMissionItemHandler::sendUnexpectedMissionRequest().
| void MockLink::servedVideoStream | ( | MockConfiguration::VideoStreamType & | type, |
| QString & | uri | ||
| ) | const |
Thread-safe snapshot of the video stream actually being served (VideoStreamNone/empty when none is served). Safe to call from the worker thread while _connect()/disconnect() mutate the served state on the main thread. MockLinkCamera advertises VIDEO_STREAM_INFORMATION consistent with this snapshot.
Definition at line 396 of file MockLink.cc.
|
inline |
When enabled, MAV_CMD_DO_START_MAG_CAL is rejected with MAV_RESULT_FAILED instead of starting the compass cal simulation.
Definition at line 206 of file MockLink.h.
|
inline |
Set the armed state of the simulated vehicle.
Definition at line 84 of file MockLink.h.
References armed().
Referenced by MockLink().
|
inline |
Test API: places the simulated vehicle into the given pose during calibration.
Definition at line 73 of file MockLink.h.
References MockLinkPX4Calibration::setPose().
|
inline |
Definition at line 50 of file MockLink.h.
|
inline |
Unit test support: sends every vehicle->QGC message twice, as when two links receive the same traffic.
Definition at line 138 of file MockLink.h.
|
inline |
Definition at line 181 of file MockLink.h.
|
inline |
Change an int32 parameter value directly on MockLink. Used to simulate the firmware storing calibration results (e.g. CAL_MAG0_ID).
Definition at line 210 of file MockLink.h.
Referenced by MockLinkPX4Calibration::run10HzTasks().
|
inline |
Sets a failure mode for unit testing
| failureMode | Type of failure to simulate |
| failureAckResult | Error to send if one the ack error modes |
Definition at line 90 of file MockLink.h.
References MockLinkMissionItemHandler::setFailureMode().
| void MockLink::setMockParamValue | ( | int | componentId, |
| const QString & | paramName, | ||
| float | value | ||
| ) |
Change a float parameter value directly on MockLink (for testing cache invalidation)
Definition at line 1533 of file MockLink.cc.
|
inline |
Definition at line 176 of file MockLink.h.
References FailParamRequestReadFirstAttemptNoResponse.
|
inline |
Definition at line 165 of file MockLink.h.
References FailParamSetFirstAttemptNoAck.
| void MockLink::setRemoteIDArmStatus | ( | uint8_t | status, |
| const QString & | error | ||
| ) |
Override the OPEN_DRONE_ID_ARM_STATUS the simulated RID device sends at 1Hz. status is a MAV_ODID_ARM_STATUS value.
Definition at line 3295 of file MockLink.cc.
References error.
|
inline |
Definition at line 146 of file MockLink.h.
|
inline |
Block or unblock REQUEST_MESSAGE responses for a specific message ID. When blocked, MockLink silently drops the request (no ACK, no message).
Definition at line 150 of file MockLink.h.
|
inline |
Controls whether SYS_AUTOSTART is also reset when a MAV_CMD_PREFLIGHT_STORAGE param1=2 (reset params to defaults) command is received. Defaults to false so the simulated airframe doesn't change.
Definition at line 186 of file MockLink.h.
| void MockLink::setVehicleAttitudeOverrideDeg | ( | float | rollDeg, |
| float | pitchDeg, | ||
| float | yawDeg | ||
| ) |
Test API: pins the simulated vehicle attitude (degrees) in place of the default sinusoid. Heading reported by Vehicle::heading() is truncated to whole degrees, so pass integral yaw.
Definition at line 3407 of file MockLink.cc.
|
inline |
Definition at line 45 of file MockLink.h.
Referenced by MockLinkWorker::startWork().
|
inline |
Definition at line 63 of file MockLink.h.
| void MockLink::simulateConnectionRemoved | ( | ) |
Definition at line 3396 of file MockLink.cc.
References LinkInterface::_connectionRemoved().
|
static |
Definition at line 2807 of file MockLink.cc.
|
static |
Definition at line 2812 of file MockLink.cc.
|
static |
Definition at line 2822 of file MockLink.cc.
|
static |
Definition at line 2817 of file MockLink.cc.
| void MockLink::startAPMStaleFailedMagCalReportStreaming | ( | ) |
Simulates ArduPilot streaming MAG_CAL_REPORT(MAG_CAL_FAILED) after a failed onboard compass cal. Like real ArduPilot, the failed report keeps streaming until MAV_CMD_DO_CANCEL_MAG_CAL is received; MAV_CMD_DO_START_MAG_CAL does not stop it.
Definition at line 3515 of file MockLink.cc.
|
static |
Definition at line 2797 of file MockLink.cc.
|
inlinestatic |
Starts a MockLink from a fully caller-configured MockConfiguration (ownership transfers to LinkManager)
Definition at line 222 of file MockLink.h.
Referenced by QGroundControlQmlGlobal::startMockLink().
|
static |
Definition at line 2802 of file MockLink.cc.
|
static |
Definition at line 2787 of file MockLink.cc.
|
static |
Definition at line 2792 of file MockLink.cc.
References MockConfiguration::OptionPreloadMission.
|
inline |
Definition at line 58 of file MockLink.h.
|
inline |
Definition at line 53 of file MockLink.h.
Referenced by MockLinkCamera::sendCameraHeartbeats().
|
inline |
Definition at line 56 of file MockLink.h.
|
inline |
Definition at line 57 of file MockLink.h.
|
signal |
Referenced by MockLink().
|
friend |
Definition at line 33 of file MockLink.h.
|
friend |
Definition at line 34 of file MockLink.h.
|
staticconstexpr |
Definition at line 241 of file MockLink.h.
|
staticconstexpr |
Definition at line 242 of file MockLink.h.
|
staticconstexpr |
Definition at line 245 of file MockLink.h.
|
staticconstexpr |
Definition at line 246 of file MockLink.h.
|
staticconstexpr |
Definition at line 247 of file MockLink.h.
|
staticconstexpr |
Definition at line 248 of file MockLink.h.
|
staticconstexpr |
Definition at line 249 of file MockLink.h.
|
staticconstexpr |
Definition at line 243 of file MockLink.h.
|
staticconstexpr |
Definition at line 244 of file MockLink.h.