diff --git a/src/QmlControls/QGroundControlQmlGlobal.cc b/src/QmlControls/QGroundControlQmlGlobal.cc index 254f8c0638021a799cdd86ba27dc0abade57786b..5feb34ae9c9da0db724e26c42744f5e6ce4ea4bf 100644 --- a/src/QmlControls/QGroundControlQmlGlobal.cc +++ b/src/QmlControls/QGroundControlQmlGlobal.cc @@ -74,28 +74,10 @@ bool QGroundControlQmlGlobal::loadBoolGlobalSetting (const QString& key, bool de return settings.value(key, defaultValue).toBool(); } -#ifdef QT_DEBUG -void QGroundControlQmlGlobal::_startMockLink(MockConfiguration* mockConfig) -{ - LinkManager* linkManager = qgcApp()->toolbox()->linkManager(); - - mockConfig->setDynamic(true); - linkManager->linkConfigurations()->append(mockConfig); - - linkManager->createConnectedLink(mockConfig); -} -#endif - void QGroundControlQmlGlobal::startPX4MockLink(bool sendStatusText) { #ifdef QT_DEBUG - MockConfiguration* mockConfig = new MockConfiguration("PX4 MockLink"); - - mockConfig->setFirmwareType(MAV_AUTOPILOT_PX4); - mockConfig->setVehicleType(MAV_TYPE_QUADROTOR); - mockConfig->setSendStatusText(sendStatusText); - - _startMockLink(mockConfig); + MockLink::startPX4MockLink(sendStatusText); #else Q_UNUSED(sendStatusText); #endif @@ -104,13 +86,7 @@ void QGroundControlQmlGlobal::startPX4MockLink(bool sendStatusText) void QGroundControlQmlGlobal::startGenericMockLink(bool sendStatusText) { #ifdef QT_DEBUG - MockConfiguration* mockConfig = new MockConfiguration("Generic MockLink"); - - mockConfig->setFirmwareType(MAV_AUTOPILOT_GENERIC); - mockConfig->setVehicleType(MAV_TYPE_QUADROTOR); - mockConfig->setSendStatusText(sendStatusText); - - _startMockLink(mockConfig); + MockLink::startGenericMockLink(sendStatusText); #else Q_UNUSED(sendStatusText); #endif @@ -119,13 +95,7 @@ void QGroundControlQmlGlobal::startGenericMockLink(bool sendStatusText) void QGroundControlQmlGlobal::startAPMArduCopterMockLink(bool sendStatusText) { #ifdef QT_DEBUG - MockConfiguration* mockConfig = new MockConfiguration("APM ArduCopter MockLink"); - - mockConfig->setFirmwareType(MAV_AUTOPILOT_ARDUPILOTMEGA); - mockConfig->setVehicleType(MAV_TYPE_QUADROTOR); - mockConfig->setSendStatusText(sendStatusText); - - _startMockLink(mockConfig); + MockLink::startAPMArduCopterMockLink(sendStatusText); #else Q_UNUSED(sendStatusText); #endif @@ -134,13 +104,7 @@ void QGroundControlQmlGlobal::startAPMArduCopterMockLink(bool sendStatusText) void QGroundControlQmlGlobal::startAPMArduPlaneMockLink(bool sendStatusText) { #ifdef QT_DEBUG - MockConfiguration* mockConfig = new MockConfiguration("APM ArduPlane MockLink"); - - mockConfig->setFirmwareType(MAV_AUTOPILOT_ARDUPILOTMEGA); - mockConfig->setVehicleType(MAV_TYPE_FIXED_WING); - mockConfig->setSendStatusText(sendStatusText); - - _startMockLink(mockConfig); + MockLink::startAPMArduPlaneMockLink(sendStatusText); #else Q_UNUSED(sendStatusText); #endif diff --git a/src/QmlControls/QGroundControlQmlGlobal.h b/src/QmlControls/QGroundControlQmlGlobal.h index b6f1d367ebd7a85cc0c660e063b7d9eb1cb8ae41..d5436982fa30b2a853ed47472c6ffc6d4442612c 100644 --- a/src/QmlControls/QGroundControlQmlGlobal.h +++ b/src/QmlControls/QGroundControlQmlGlobal.h @@ -132,9 +132,6 @@ signals: void virtualTabletJoystickChanged (bool enabled); private: -#ifdef QT_DEBUG - void _startMockLink(MockConfiguration* mockConfig); -#endif FlightMapSettings* _flightMapSettings; HomePositionManager* _homePositionManager; diff --git a/src/comm/MockLink.cc b/src/comm/MockLink.cc index 4ca7c4a50eac915a53db1046f5b1d4292f553307..a5f050c1365865ef654650d98f8e0f8f9a87d516 100644 --- a/src/comm/MockLink.cc +++ b/src/comm/MockLink.cc @@ -929,3 +929,58 @@ void MockConfiguration::updateSettings() } } } + +MockLink* MockLink::_startMockLink(MockConfiguration* mockConfig) +{ + LinkManager* linkManager = qgcApp()->toolbox()->linkManager(); + + mockConfig->setDynamic(true); + linkManager->linkConfigurations()->append(mockConfig); + + return qobject_cast(linkManager->createConnectedLink(mockConfig)); +} + +MockLink* MockLink::startPX4MockLink(bool sendStatusText) +{ + MockConfiguration* mockConfig = new MockConfiguration("PX4 MockLink"); + + mockConfig->setFirmwareType(MAV_AUTOPILOT_PX4); + mockConfig->setVehicleType(MAV_TYPE_QUADROTOR); + mockConfig->setSendStatusText(sendStatusText); + + return _startMockLink(mockConfig); +} + +MockLink* MockLink::startGenericMockLink(bool sendStatusText) +{ + MockConfiguration* mockConfig = new MockConfiguration("Generic MockLink"); + + mockConfig->setFirmwareType(MAV_AUTOPILOT_GENERIC); + mockConfig->setVehicleType(MAV_TYPE_QUADROTOR); + mockConfig->setSendStatusText(sendStatusText); + + return _startMockLink(mockConfig); +} + +MockLink* MockLink::startAPMArduCopterMockLink(bool sendStatusText) +{ + MockConfiguration* mockConfig = new MockConfiguration("APM ArduCopter MockLink"); + + mockConfig->setFirmwareType(MAV_AUTOPILOT_ARDUPILOTMEGA); + mockConfig->setVehicleType(MAV_TYPE_QUADROTOR); + mockConfig->setSendStatusText(sendStatusText); + + return _startMockLink(mockConfig); +} + +MockLink* MockLink::startAPMArduPlaneMockLink(bool sendStatusText) +{ + MockConfiguration* mockConfig = new MockConfiguration("APM ArduPlane MockLink"); + + mockConfig->setFirmwareType(MAV_AUTOPILOT_ARDUPILOTMEGA); + mockConfig->setVehicleType(MAV_TYPE_FIXED_WING); + mockConfig->setSendStatusText(sendStatusText); + + return _startMockLink(mockConfig); +} + diff --git a/src/comm/MockLink.h b/src/comm/MockLink.h index f14b9c85193b11695a527120615c72c578d81f3e..e276610e50cb5d308052a44dcff93abb23f9bdae 100644 --- a/src/comm/MockLink.h +++ b/src/comm/MockLink.h @@ -146,6 +146,11 @@ public: /// Reset the state of the MissionItemHandler to no items, no transactions in progress. void resetMissionItemHandler(void) { _missionItemHandler.reset(); } + static MockLink* startPX4MockLink (bool sendStatusText); + static MockLink* startGenericMockLink (bool sendStatusText); + static MockLink* startAPMArduCopterMockLink (bool sendStatusText); + static MockLink* startAPMArduPlaneMockLink (bool sendStatusText); + signals: /// @brief Used internally to move data to the thread. void _incomingBytes(const QByteArray bytes); @@ -189,6 +194,8 @@ private: void _sendGpsRawInt(void); void _sendStatusTextMessages(void); + static MockLink* _startMockLink(MockConfiguration* mockConfig); + MockLinkMissionItemHandler _missionItemHandler; QString _name;