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 }
 
enum  ParamRequestReadFailureMode_t { FailParamRequestReadNone , FailParamRequestReadNoResponse , FailParamRequestReadFirstAttemptNoResponse }
 

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
 
void setCommLost (bool commLost)
 
void simulateConnectionRemoved ()
 
int vehicleId () const
 
MAV_AUTOPILOT getFirmwareType () const
 
double vehicleLatitude () const
 
double vehicleLongitude () const
 
double vehicleAltitudeAMSL () const
 
void respondWithMavlinkMessage (const mavlink_message_t &msg)
 Sends the specified mavlink message to QGC.
 
MockLinkFTPmockLinkFTP () 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
 
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 ()
 
bool initMavlinkSigning ()
 
void setSigningSignatureFailure (bool failure)
 
void reportMavlinkV1Traffic ()
 

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)
 

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 27 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.

Definition at line 120 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.

Definition at line 110 of file MockLink.h.

◆ RequestMessageFailureMode_t

Enumerator
FailRequestMessageNone 
FailRequestMessageCommandAcceptedMsgNotSent 
FailRequestMessageCommandUnsupported 
FailRequestMessageCommandNoResponse 

Definition at line 91 of file MockLink.h.

Constructor & Destructor Documentation

◆ MockLink()

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

Definition at line 48 of file MockLink.cc.

References MockLinkWorker::startWork(), and writeBytesQueuedSignal().

◆ ~MockLink()

MockLink::~MockLink ( )
virtual

Definition at line 118 of file MockLink.cc.

References disconnect().

Member Function Documentation

◆ clearReceivedMavCommandCounts()

void MockLink::clearReceivedMavCommandCounts ( )
inline

Definition at line 82 of file MockLink.h.

◆ clearReceivedMavlinkMessageCounts()

void MockLink::clearReceivedMavlinkMessageCounts ( )
inline

Definition at line 88 of file MockLink.h.

◆ clearReceivedRequestMessageCounts()

void MockLink::clearReceivedRequestMessageCounts ( )
inline

Definition at line 86 of file MockLink.h.

◆ disconnect()

void MockLink::disconnect ( )
finalvirtual

◆ getFirmwareType()

MAV_AUTOPILOT MockLink::getFirmwareType ( ) const
inline

Definition at line 49 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 133 of file MockLink.h.

◆ highLatencyTransmissionEnabledChanged

void MockLink::highLatencyTransmissionEnabledChanged ( bool  highLatencyTransmissionEnabled)
signal

◆ isConnected()

bool MockLink::isConnected ( ) const
inlinefinalvirtual

Implements LinkInterface.

Definition at line 42 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 80 of file MockLink.h.

◆ mockLinkFTP()

MockLinkFTP * MockLink::mockLinkFTP ( ) const

Definition at line 2054 of file MockLink.cc.

◆ receivedMavCommandCount() [1/2]

int MockLink::receivedMavCommandCount ( MAV_CMD  command) const
inline

Definition at line 83 of file MockLink.h.

◆ receivedMavCommandCount() [2/2]

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

Definition at line 84 of file MockLink.h.

◆ receivedMavlinkMessageCount()

int MockLink::receivedMavlinkMessageCount ( uint32_t  messageId) const
inline

Definition at line 89 of file MockLink.h.

◆ receivedRequestMessageCount() [1/2]

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

Definition at line 85 of file MockLink.h.

◆ receivedRequestMessageCount() [2/2]

int MockLink::receivedRequestMessageCount ( uint32_t  messageId) const
inline

Definition at line 87 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 77 of file MockLink.h.

◆ respondWithMavlinkMessage()

void MockLink::respondWithMavlinkMessage ( const mavlink_message_t msg)

Sends the specified mavlink message to QGC.

Definition at line 558 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 257 of file MockLink.cc.

◆ sendUnexpectedCommandAck()

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

Definition at line 1362 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 66 of file MockLink.h.

◆ sendUnexpectedMissionItem()

void MockLink::sendUnexpectedMissionItem ( ) const
inline

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

Definition at line 69 of file MockLink.h.

◆ sendUnexpectedMissionRequest()

void MockLink::sendUnexpectedMissionRequest ( ) const
inline

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

Definition at line 72 of file MockLink.h.

◆ setCommLost()

void MockLink::setCommLost ( bool  commLost)
inline

Definition at line 45 of file MockLink.h.

◆ setHashCheckNoResponse()

void MockLink::setHashCheckNoResponse ( bool  noResponse)
inline

Definition at line 130 of file MockLink.h.

◆ setMissionItemFailureMode()

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

Sets a failure mode for unit testingqgcm

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

Definition at line 63 of file MockLink.h.

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

◆ setParamRequestReadFailureMode()

void MockLink::setParamRequestReadFailureMode ( ParamRequestReadFailureMode_t  mode)
inline

Definition at line 125 of file MockLink.h.

◆ setParamSetFailureMode()

void MockLink::setParamSetFailureMode ( ParamSetFailureMode_t  mode)
inline

Definition at line 115 of file MockLink.h.

◆ setRequestMessageFailureMode()

void MockLink::setRequestMessageFailureMode ( RequestMessageFailureMode_t  failureMode)
inline

Definition at line 97 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 101 of file MockLink.h.

◆ shouldSendStatusText()

bool MockLink::shouldSendStatusText ( ) const
inline

Definition at line 40 of file MockLink.h.

Referenced by MockLinkWorker::startWork().

◆ simulateConnectionRemoved()

void MockLink::simulateConnectionRemoved ( )

Definition at line 2048 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 1656 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 1661 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 1671 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 1666 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 1646 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 1651 of file MockLink.cc.

◆ startPX4MockLink()

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

Definition at line 1641 of file MockLink.cc.

Referenced by QGroundControlQmlGlobal::startPX4MockLink().

◆ vehicleAltitudeAMSL()

double MockLink::vehicleAltitudeAMSL ( ) const
inline

Definition at line 53 of file MockLink.h.

◆ vehicleId()

int MockLink::vehicleId ( ) const
inline

Definition at line 48 of file MockLink.h.

Referenced by MockLinkCamera::sendCameraHeartbeats().

◆ vehicleLatitude()

double MockLink::vehicleLatitude ( ) const
inline

Definition at line 51 of file MockLink.h.

◆ vehicleLongitude()

double MockLink::vehicleLongitude ( ) const
inline

Definition at line 52 of file MockLink.h.

◆ writeBytesQueuedSignal

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

Referenced by MockLink().

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 147 of file MockLink.h.

Referenced by Vehicle::_sendMavCommandShouldRetry().

◆ MAV_CMD_MOCKLINK_ALWAYS_RESULT_FAILED

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_ALWAYS_RESULT_FAILED = MAV_CMD_USER_2
staticconstexpr

Definition at line 148 of file MockLink.h.

Referenced by Vehicle::_sendMavCommandShouldRetry().

◆ MAV_CMD_MOCKLINK_NO_RESPONSE

constexpr MAV_CMD MockLink::MAV_CMD_MOCKLINK_NO_RESPONSE = MAV_CMD_USER_5
staticconstexpr

Definition at line 151 of file MockLink.h.

Referenced by Vehicle::_sendMavCommandShouldRetry().

◆ 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 152 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 153 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 154 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 155 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 149 of file MockLink.h.

Referenced by Vehicle::_sendMavCommandShouldRetry().

◆ 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 150 of file MockLink.h.

Referenced by Vehicle::_sendMavCommandShouldRetry().


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