QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
MockLink Class Reference

#include <MockLink.h>

+ Inheritance diagram for MockLink:
+ Collaboration diagram for MockLink:

Public Types

enum  RequestMessageFailureMode_t { FailRequestMessageNone , FailRequestMessageCommandAcceptedMsgNotSent , FailRequestMessageCommandUnsupported , FailRequestMessageCommandNoResponse }
 
enum  ParamSetFailureMode_t { FailParamSetNone , FailParamSetNoAck , FailParamSetFirstAttemptNoAck , FailParamSetParamError }
 
enum  ParamRequestReadFailureMode_t { FailParamRequestReadNone , FailParamRequestReadNoResponse , FailParamRequestReadFirstAttemptNoResponse , FailParamRequestReadParamError }
 

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
 
bool signingEnabled () const
 
void respondWithMavlinkMessage (const mavlink_message_t &msg)
 Sends the specified mavlink message to QGC.
 
MockLinkFTPmockLinkFTP () const
 
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.
 
QString logDownloadFile () const
 Returns the filename for the simulated log file. Only available after a download is requested.
 
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
 
int receivedMissionRequestListCount (MAV_MISSION_TYPE type) const
 
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)
 
int hashCheckRequestCount () const
 Returns the number of standalone PARAM_REQUEST_READ requests for _HASH_CHECK received.
 
void setMockParamValue (int componentId, const QString &paramName, float value)
 Change a float parameter value directly on MockLink (for testing cache invalidation)
 
- Public Member Functions inherited from LinkInterface
virtual ~LinkInterface ()
 
virtual bool isLogReplay () const
 
virtual bool isSecureConnection () const
 Returns true if the connection is secure (e.g. USB, wired ethernet)
 
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 addVehicleReference ()
 
void removeVehicleReference ()
 
void reportMavlinkV1Traffic ()
 
SigningControllersigning ()
 Per-link signing state and confirmation state machine. Non-null after channel allocation.
 
const SigningControllersigning () const
 

Static Public Member Functions

static MockLinkstartPX4MockLink (bool sendStatusText, bool enableCamera, bool enableGimbal, MockConfiguration::FailureMode_t failureMode=MockConfiguration::FailNone)
 
static MockLinkstartGenericMockLink (bool sendStatusText, bool enableCamera, bool enableGimbal, MockConfiguration::FailureMode_t failureMode=MockConfiguration::FailNone)
 
static MockLinkstartNoInitialConnectMockLink (bool sendStatusText, bool enableCamera, bool enableGimbal, MockConfiguration::FailureMode_t failureMode=MockConfiguration::FailNone)
 
static MockLinkstartAPMArduCopterMockLink (bool sendStatusText, bool enableCamera, bool enableGimbal, MockConfiguration::FailureMode_t failureMode=MockConfiguration::FailNone)
 
static MockLinkstartAPMArduPlaneMockLink (bool sendStatusText, bool enableCamera, bool enableGimbal, MockConfiguration::FailureMode_t failureMode=MockConfiguration::FailNone)
 
static MockLinkstartAPMArduSubMockLink (bool sendStatusText, bool enableCamera, bool enableGimbal, MockConfiguration::FailureMode_t failureMode=MockConfiguration::FailNone)
 
static MockLinkstartAPMArduRoverMockLink (bool sendStatusText, bool enableCamera, bool enableGimbal, MockConfiguration::FailureMode_t failureMode=MockConfiguration::FailNone)
 

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)
 

Friends

class MockLinkFTP
 

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 ()
 
- Protected Attributes inherited from LinkInterface
SharedLinkConfigurationPtr _config
 

Detailed Description

Definition at line 25 of file MockLink.h.

Member Enumeration Documentation

◆ ParamRequestReadFailureMode_t

Enumerator
FailParamRequestReadNone 

Normal behavior.

FailParamRequestReadNoResponse 

Do not respond to PARAM_REQUEST_READ.

FailParamRequestReadFirstAttemptNoResponse 

Skip response on first attempt, respond to retry.

FailParamRequestReadParamError 

Respond with PARAM_ERROR (DOES_NOT_EXIST) instead of PARAM_VALUE.

Definition at line 127 of file MockLink.h.

◆ ParamSetFailureMode_t

Enumerator
FailParamSetNone 

Normal behavior.

FailParamSetNoAck 

Do not send PARAM_VALUE ack.

FailParamSetFirstAttemptNoAck 

Skip ack on first attempt, respond to retry.

FailParamSetParamError 

Respond with PARAM_ERROR (VALUE_OUT_OF_RANGE) instead of PARAM_VALUE.

Definition at line 116 of file MockLink.h.

◆ RequestMessageFailureMode_t

Enumerator
FailRequestMessageNone 
FailRequestMessageCommandAcceptedMsgNotSent 
FailRequestMessageCommandUnsupported 
FailRequestMessageCommandNoResponse 

Definition at line 97 of file MockLink.h.

Constructor & Destructor Documentation

◆ MockLink()

MockLink::MockLink ( SharedLinkConfigurationPtr config,
QObject *  parent = nullptr 
)
explicit

◆ ~MockLink()

MockLink::~MockLink ( )
virtual

Definition at line 127 of file MockLink.cc.

References disconnect().

Member Function Documentation

◆ armed()

bool MockLink::armed ( ) const
inline

Definition at line 63 of file MockLink.h.

Referenced by setArmed().

◆ clearReceivedMavCommandCounts()

void MockLink::clearReceivedMavCommandCounts ( )
inline

Definition at line 87 of file MockLink.h.

◆ clearReceivedMavlinkMessageCounts()

void MockLink::clearReceivedMavlinkMessageCounts ( )
inline

Definition at line 93 of file MockLink.h.

References MockLinkMissionItemHandler::clearRequestListCounts().

◆ clearReceivedRequestMessageCounts()

void MockLink::clearReceivedRequestMessageCounts ( )
inline

Definition at line 91 of file MockLink.h.

◆ disconnect()

void MockLink::disconnect ( )
finalvirtual

◆ getFirmwareType()

MAV_AUTOPILOT MockLink::getFirmwareType ( ) const
inline

Definition at line 48 of file MockLink.h.

◆ hashCheckRequestCount()

int MockLink::hashCheckRequestCount ( ) const
inline

Returns the number of standalone PARAM_REQUEST_READ requests for _HASH_CHECK received.

Definition at line 141 of file MockLink.h.

◆ highLatencyTransmissionEnabledChanged

void MockLink::highLatencyTransmissionEnabledChanged ( bool  highLatencyTransmissionEnabled)
signal

◆ isConnected()

bool MockLink::isConnected ( ) const
inlinefinalvirtual

Implements LinkInterface.

Definition at line 41 of file MockLink.h.

◆ logDownloadFile()

QString MockLink::logDownloadFile ( ) const
inline

Returns the filename for the simulated log file. Only available after a download is requested.

Definition at line 85 of file MockLink.h.

◆ mockLinkFTP()

MockLinkFTP * MockLink::mockLinkFTP ( ) const

Definition at line 2311 of file MockLink.cc.

◆ receivedMavCommandCount() [1/2]

int MockLink::receivedMavCommandCount ( MAV_CMD  command) const
inline

Definition at line 88 of file MockLink.h.

◆ receivedMavCommandCount() [2/2]

int MockLink::receivedMavCommandCount ( MAV_CMD  command,
int  compId 
) const
inline

Definition at line 89 of file MockLink.h.

◆ receivedMavlinkMessageCount()

int MockLink::receivedMavlinkMessageCount ( uint32_t  messageId) const
inline

Definition at line 94 of file MockLink.h.

◆ receivedMissionRequestListCount()

int MockLink::receivedMissionRequestListCount ( MAV_MISSION_TYPE  type) const
inline

Definition at line 95 of file MockLink.h.

References MockLinkMissionItemHandler::requestListCount().

◆ receivedRequestMessageCount() [1/2]

int MockLink::receivedRequestMessageCount ( int  compId,
int  messageId 
) const
inline

Definition at line 90 of file MockLink.h.

◆ receivedRequestMessageCount() [2/2]

int MockLink::receivedRequestMessageCount ( uint32_t  messageId) const
inline

Definition at line 92 of file MockLink.h.

◆ resetMissionItemHandler()

void MockLink::resetMissionItemHandler ( ) const
inline

Reset the state of the MissionItemHandler to no items, no transactions in progress.

Definition at line 82 of file MockLink.h.

References MockLinkMissionItemHandler::reset().

◆ respondWithMavlinkMessage()

void MockLink::respondWithMavlinkMessage ( const mavlink_message_t msg)

Sends the specified mavlink message to QGC.

Definition at line 631 of file MockLink.cc.

References LinkInterface::bytesReceived().

Referenced by MockLinkFTP::mavlinkMessageReceived(), MockLinkCamera::sendCameraHeartbeats(), and sendUnexpectedCommandAck().

◆ run10HzTasks()

void MockLink::run10HzTasks ( )

◆ run1HzTasks()

◆ run500HzTasks()

void MockLink::run500HzTasks ( )

◆ sendStatusTextMessages()

void MockLink::sendStatusTextMessages ( )

Definition at line 275 of file MockLink.cc.

◆ sendUnexpectedCommandAck()

void MockLink::sendUnexpectedCommandAck ( MAV_CMD  command,
MAV_RESULT  ackResult 
)

Definition at line 1625 of file MockLink.cc.

References LinkInterface::mavlinkChannel(), and respondWithMavlinkMessage().

◆ sendUnexpectedMissionAck()

void MockLink::sendUnexpectedMissionAck ( MAV_MISSION_RESULT  ackType) const
inline

Called to send a MISSION_ACK message while the MissionManager is in idle state.

Definition at line 71 of file MockLink.h.

References MockLinkMissionItemHandler::sendUnexpectedMissionAck().

◆ sendUnexpectedMissionItem()

void MockLink::sendUnexpectedMissionItem ( ) const
inline

Called to send a MISSION_ITEM message while the MissionManager is in idle state.

Definition at line 74 of file MockLink.h.

References MockLinkMissionItemHandler::sendUnexpectedMissionItem().

◆ sendUnexpectedMissionRequest()

void MockLink::sendUnexpectedMissionRequest ( ) const
inline

Called to send a MISSION_REQUEST message while the MissionManager is in idle state.

Definition at line 77 of file MockLink.h.

References MockLinkMissionItemHandler::sendUnexpectedMissionRequest().

◆ setArmed()

void MockLink::setArmed ( bool  armed)
inline

Set the armed state of the simulated vehicle.

Definition at line 62 of file MockLink.h.

References armed().

Referenced by MockLink().

◆ setCommLost()

Q_INVOKABLE void MockLink::setCommLost ( bool  commLost)
inline

Definition at line 44 of file MockLink.h.

◆ setHashCheckNoResponse()

void MockLink::setHashCheckNoResponse ( bool  noResponse)
inline

Definition at line 138 of file MockLink.h.

◆ setMissionItemFailureMode()

void MockLink::setMissionItemFailureMode ( MockLinkMissionItemHandler::FailureMode_t  failureMode,
MAV_MISSION_RESULT  failureAckResult 
) const
inline

Sets a failure mode for unit testing

Parameters
failureModeType of failure to simulate
failureAckResultError to send if one the ack error modes

Definition at line 68 of file MockLink.h.

References MockLinkMissionItemHandler::setFailureMode().

◆ setMockParamValue()

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 1019 of file MockLink.cc.

◆ setParamRequestReadFailureMode()

void MockLink::setParamRequestReadFailureMode ( ParamRequestReadFailureMode_t  mode)
inline

Definition at line 133 of file MockLink.h.

References FailParamRequestReadFirstAttemptNoResponse.

◆ setParamSetFailureMode()

void MockLink::setParamSetFailureMode ( ParamSetFailureMode_t  mode)
inline

Definition at line 122 of file MockLink.h.

References FailParamSetFirstAttemptNoAck.

◆ setRequestMessageFailureMode()

void MockLink::setRequestMessageFailureMode ( RequestMessageFailureMode_t  failureMode)
inline

Definition at line 103 of file MockLink.h.

◆ setRequestMessageNoResponse()

void MockLink::setRequestMessageNoResponse ( uint32_t  messageId,
bool  noResponse = true 
)
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 107 of file MockLink.h.

◆ shouldSendStatusText()

bool MockLink::shouldSendStatusText ( ) const
inline

Definition at line 39 of file MockLink.h.

Referenced by MockLinkWorker::startWork().

◆ signingEnabled()

bool MockLink::signingEnabled ( ) const
inline

Definition at line 54 of file MockLink.h.

◆ simulateConnectionRemoved()

void MockLink::simulateConnectionRemoved ( )

Definition at line 2305 of file MockLink.cc.

References LinkInterface::_connectionRemoved().

◆ startAPMArduCopterMockLink()

MockLink * MockLink::startAPMArduCopterMockLink ( bool  sendStatusText,
bool  enableCamera,
bool  enableGimbal,
MockConfiguration::FailureMode_t  failureMode = MockConfiguration::FailNone 
)
static

Definition at line 1913 of file MockLink.cc.

Referenced by QGroundControlQmlGlobal::startAPMArduCopterMockLink().

◆ startAPMArduPlaneMockLink()

MockLink * MockLink::startAPMArduPlaneMockLink ( bool  sendStatusText,
bool  enableCamera,
bool  enableGimbal,
MockConfiguration::FailureMode_t  failureMode = MockConfiguration::FailNone 
)
static

Definition at line 1918 of file MockLink.cc.

Referenced by QGroundControlQmlGlobal::startAPMArduPlaneMockLink().

◆ startAPMArduRoverMockLink()

MockLink * MockLink::startAPMArduRoverMockLink ( bool  sendStatusText,
bool  enableCamera,
bool  enableGimbal,
MockConfiguration::FailureMode_t  failureMode = MockConfiguration::FailNone 
)
static

Definition at line 1928 of file MockLink.cc.

Referenced by QGroundControlQmlGlobal::startAPMArduRoverMockLink().

◆ startAPMArduSubMockLink()

MockLink * MockLink::startAPMArduSubMockLink ( bool  sendStatusText,
bool  enableCamera,
bool  enableGimbal,
MockConfiguration::FailureMode_t  failureMode = MockConfiguration::FailNone 
)
static

Definition at line 1923 of file MockLink.cc.

Referenced by QGroundControlQmlGlobal::startAPMArduSubMockLink().

◆ startGenericMockLink()

MockLink * MockLink::startGenericMockLink ( bool  sendStatusText,
bool  enableCamera,
bool  enableGimbal,
MockConfiguration::FailureMode_t  failureMode = MockConfiguration::FailNone 
)
static

Definition at line 1903 of file MockLink.cc.

Referenced by QGroundControlQmlGlobal::startGenericMockLink().

◆ startNoInitialConnectMockLink()

MockLink * MockLink::startNoInitialConnectMockLink ( bool  sendStatusText,
bool  enableCamera,
bool  enableGimbal,
MockConfiguration::FailureMode_t  failureMode = MockConfiguration::FailNone 
)
static

Definition at line 1908 of file MockLink.cc.

◆ startPX4MockLink()

MockLink * MockLink::startPX4MockLink ( bool  sendStatusText,
bool  enableCamera,
bool  enableGimbal,
MockConfiguration::FailureMode_t  failureMode = MockConfiguration::FailNone 
)
static

Definition at line 1898 of file MockLink.cc.

Referenced by QGroundControlQmlGlobal::startPX4MockLink().

◆ vehicleAltitudeAMSL()

double MockLink::vehicleAltitudeAMSL ( ) const
inline

Definition at line 52 of file MockLink.h.

◆ vehicleId()

int MockLink::vehicleId ( ) const
inline

Definition at line 47 of file MockLink.h.

Referenced by MockLinkCamera::sendCameraHeartbeats().

◆ vehicleLatitude()

double MockLink::vehicleLatitude ( ) const
inline

Definition at line 50 of file MockLink.h.

◆ vehicleLongitude()

double MockLink::vehicleLongitude ( ) const
inline

Definition at line 51 of file MockLink.h.

◆ writeBytesQueuedSignal

void MockLink::writeBytesQueuedSignal ( const QByteArray &  bytes)
signal

Referenced by MockLink().

Friends And Related Symbol Documentation

◆ MockLinkFTP

friend class MockLinkFTP
friend

Definition at line 28 of file MockLink.h.

Member Data Documentation

◆ MAV_CMD_MOCKLINK_ALWAYS_RESULT_ACCEPTED

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_ALWAYS_RESULT_ACCEPTED = MAV_CMD_USER_1
staticconstexpr

Definition at line 155 of file MockLink.h.

◆ MAV_CMD_MOCKLINK_ALWAYS_RESULT_FAILED

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_ALWAYS_RESULT_FAILED = MAV_CMD_USER_2
staticconstexpr

Definition at line 156 of file MockLink.h.

◆ MAV_CMD_MOCKLINK_NO_RESPONSE

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_NO_RESPONSE = MAV_CMD_USER_5
staticconstexpr

Definition at line 159 of file MockLink.h.

◆ MAV_CMD_MOCKLINK_NO_RESPONSE_NO_RETRY

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_NO_RESPONSE_NO_RETRY = static_cast<MAV_CMD>(MAV_CMD_USER_5 + 1)
staticconstexpr

Definition at line 160 of file MockLink.h.

◆ MAV_CMD_MOCKLINK_RESULT_IN_PROGRESS_ACCEPTED

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_RESULT_IN_PROGRESS_ACCEPTED = static_cast<MAV_CMD>(MAV_CMD_USER_5 + 2)
staticconstexpr

Definition at line 161 of file MockLink.h.

◆ MAV_CMD_MOCKLINK_RESULT_IN_PROGRESS_FAILED

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_RESULT_IN_PROGRESS_FAILED = static_cast<MAV_CMD>(MAV_CMD_USER_5 + 3)
staticconstexpr

Definition at line 162 of file MockLink.h.

◆ MAV_CMD_MOCKLINK_RESULT_IN_PROGRESS_NO_ACK

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_RESULT_IN_PROGRESS_NO_ACK = static_cast<MAV_CMD>(MAV_CMD_USER_5 + 4)
staticconstexpr

Definition at line 163 of file MockLink.h.

◆ MAV_CMD_MOCKLINK_SECOND_ATTEMPT_RESULT_ACCEPTED

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_SECOND_ATTEMPT_RESULT_ACCEPTED = MAV_CMD_USER_3
staticconstexpr

Definition at line 157 of file MockLink.h.

◆ MAV_CMD_MOCKLINK_SECOND_ATTEMPT_RESULT_FAILED

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_SECOND_ATTEMPT_RESULT_FAILED = MAV_CMD_USER_4
staticconstexpr

Definition at line 158 of file MockLink.h.


The documentation for this class was generated from the following files: