From 587bf78a3f724bc898440227bb8cf871a074714b Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Wed, 25 Jun 2014 17:13:33 -0700 Subject: [PATCH] Mock mavlink plugin support --- src/qgcunittest/MockUAS.cc | 14 +++++++++++++- src/qgcunittest/MockUAS.h | 13 ++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/qgcunittest/MockUAS.cc b/src/qgcunittest/MockUAS.cc index ff3688e40..443bb932c 100644 --- a/src/qgcunittest/MockUAS.cc +++ b/src/qgcunittest/MockUAS.cc @@ -27,7 +27,8 @@ QString MockUAS::_bogusStaticString; MockUAS::MockUAS(void) : _systemType(MAV_TYPE_QUADROTOR), - _systemId(1) + _systemId(1), + _mavlinkPlugin(NULL) { } @@ -41,4 +42,15 @@ void MockUAS::setMockParametersAndSignal(MockQGCUASParamManager::ParamMap_t& map i.next(); emit parameterChanged(_systemId, 0, i.key(), i.value()); } +} + +void MockUAS::sendMessage(mavlink_message_t message) +{ + Q_UNUSED(link); + + if (!_mavlinkPlugin) { + Q_ASSERT(false); + } + + _mavlinkPlugin->sendMessage(message); } \ No newline at end of file diff --git a/src/qgcunittest/MockUAS.h b/src/qgcunittest/MockUAS.h index d91ab199b..5b3a52998 100644 --- a/src/qgcunittest/MockUAS.h +++ b/src/qgcunittest/MockUAS.h @@ -26,6 +26,7 @@ #include "UASInterface.h" #include "MockQGCUASParamManager.h" +#include "MockMavlinkInterface.h" #include @@ -50,6 +51,9 @@ public: virtual int getUASID(void) const { return _systemId; } virtual QGCUASParamManagerInterface* getParamManager() { return &_paramManager; }; + // sendMessage is only supported if a mavlink plugin is installed. + virtual void sendMessage(mavlink_message_t message); + public: // MockUAS methods MockUAS(void); @@ -63,12 +67,15 @@ public: /// allows you to simulate parameter input and validate parameter setting MockQGCUASParamManager* getMockQGCUASParamManager(void) { return &_paramManager; } - /// Sets the parameter map into the mock QGCUASParamManager and signals parameterChanged for + /// @brief Sets the parameter map into the mock QGCUASParamManager and signals parameterChanged for /// each param void setMockParametersAndSignal(MockQGCUASParamManager::ParamMap_t& map); void emitRemoteControlChannelRawChanged(int channel, float raw) { emit remoteControlChannelRawChanged(channel, raw); } + /// @brief Installs a mavlink plugin. Only a single mavlink plugin is supported at a time. + void setMockMavlinkPlugin(MockMavlinkInterface* mavlinkPlugin) { _mavlinkPlugin = mavlinkPlugin; }; + public: // Unimplemented UASInterface overrides virtual QString getUASName() const { Q_ASSERT(false); return _bogusString; }; @@ -113,8 +120,6 @@ public: /** @brief Send a message over this link (to this or to all UAS on this link) */ virtual void sendMessage(LinkInterface* link, mavlink_message_t message){ Q_UNUSED(link); Q_UNUSED(message); Q_ASSERT(false); } - /** @brief Send a message over all links this UAS can be reached with (!= all links) */ - virtual void sendMessage(mavlink_message_t message) { Q_UNUSED(link); Q_UNUSED(message); Q_ASSERT(false); } virtual QString getAutopilotTypeName() { Q_ASSERT(false); return _bogusString; }; virtual void setAutopilotType(int apType) { Q_UNUSED(apType); Q_ASSERT(false); }; virtual QMap getComponents() { Q_ASSERT(false); return _bogusMapIntQString; }; @@ -182,6 +187,8 @@ private: int _systemId; MockQGCUASParamManager _paramManager; + + MockMavlinkInterface* _mavlinkPlugin; ///< Mock Mavlink plugin, NULL for none // Bogus variables used for return types of NYI methods QString _bogusString; -- 2.22.0