Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
0ce6d773
Commit
0ce6d773
authored
Nov 26, 2016
by
Don Gagne
Browse files
Allows QGC plugins to be optional or custom
parent
d662b4da
Changes
43
Hide whitespace changes
Inline
Side-by-side
QGCCommon.pri
View file @
0ce6d773
...
...
@@ -239,11 +239,3 @@ ReleaseBuild {
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO += /OPT:ICF
}
}
#
# Unit Test specific configuration goes here
#
DebugBuild {
DEFINES += UNITTEST_BUILD
}
qgroundcontrol.pro
View file @
0ce6d773
...
...
@@ -70,6 +70,20 @@ CONFIG += qt \
thread
\
c
++
11
\
#
#
Plugin
configuration
#
#
This
allows
you
to
build
custom
versions
of
QGC
which
only
include
your
specific
vehicle
plugin
.
To
remove
support
for
#
a
firmware
type
completely
remove
both
the
Plugin
and
PluginFactory
entries
.
To
include
custom
support
for
an
existing
#
plugin
type
remove
PluginFactory
only
.
Then
provide
you
own
implementation
of
FirmwarePluginFactory
and
use
the
#
FirmwarePlugin
and
AutoPilotPlugin
classes
as
the
base
clase
for
your
derived
plugin
implementation
.
#
CONFIG
+=
\
APMFirmwarePlugin
\
PX4FirmwarePlugin
\
APMFirmwarePluginFactory
\
PX4FirmwarePluginFactory
\
contains
(
DEFINES
,
ENABLE_VERBOSE_OUTPUT
)
{
message
(
"Enable verbose compiler output (manual override from command line)"
)
}
else
:
exists
(
user_config
.
pri
)
:
infile
(
user_config
.
pri
,
DEFINES
,
ENABLE_VERBOSE_OUTPUT
)
{
...
...
@@ -267,6 +281,74 @@ FORMS += \
src/ui/uas/UASQuickViewItemSelect.ui \
}
#
# Unit Test specific configuration goes here (requires full debug build with all plugins)
#
DebugBuild { PX4FirmwarePlugin { PX4FirmwarePluginFactory { APMFirmwarePlugin { APMFirmwarePluginFactory { !MobileBuild {
DEFINES += UNITTEST_BUILD
INCLUDEPATH += \
src/qgcunittest
HEADERS += \
src/AnalyzeView/LogDownloadTest.h \
src/FactSystem/FactSystemTestBase.h \
src/FactSystem/FactSystemTestGeneric.h \
src/FactSystem/FactSystemTestPX4.h \
src/FactSystem/ParameterManagerTest.h \
src/MissionManager/ComplexMissionItemTest.h \
src/MissionManager/MissionCommandTreeTest.h \
src/MissionManager/MissionControllerTest.h \
src/MissionManager/MissionControllerManagerTest.h \
src/MissionManager/MissionItemTest.h \
src/MissionManager/MissionManagerTest.h \
src/MissionManager/SimpleMissionItemTest.h \
src/qgcunittest/GeoTest.h \
src/qgcunittest/FileDialogTest.h \
src/qgcunittest/FileManagerTest.h \
src/qgcunittest/FlightGearTest.h \
src/qgcunittest/LinkManagerTest.h \
src/qgcunittest/MainWindowTest.h \
src/qgcunittest/MavlinkLogTest.h \
src/qgcunittest/MessageBoxTest.h \
src/qgcunittest/MultiSignalSpy.h \
src/qgcunittest/RadioConfigTest.h \
src/qgcunittest/TCPLinkTest.h \
src/qgcunittest/TCPLoopBackServer.h \
src/qgcunittest/UnitTest.h \
SOURCES += \
src/AnalyzeView/LogDownloadTest.cc \
src/FactSystem/FactSystemTestBase.cc \
src/FactSystem/FactSystemTestGeneric.cc \
src/FactSystem/FactSystemTestPX4.cc \
src/FactSystem/ParameterManagerTest.cc \
src/MissionManager/ComplexMissionItemTest.cc \
src/MissionManager/MissionCommandTreeTest.cc \
src/MissionManager/MissionControllerTest.cc \
src/MissionManager/MissionControllerManagerTest.cc \
src/MissionManager/MissionItemTest.cc \
src/MissionManager/MissionManagerTest.cc \
src/MissionManager/SimpleMissionItemTest.cc \
src/qgcunittest/GeoTest.cc \
src/qgcunittest/FileDialogTest.cc \
src/qgcunittest/FileManagerTest.cc \
src/qgcunittest/FlightGearTest.cc \
src/qgcunittest/LinkManagerTest.cc \
src/qgcunittest/MainWindowTest.cc \
src/qgcunittest/MavlinkLogTest.cc \
src/qgcunittest/MessageBoxTest.cc \
src/qgcunittest/MultiSignalSpy.cc \
src/qgcunittest/RadioConfigTest.cc \
src/qgcunittest/TCPLinkTest.cc \
src/qgcunittest/TCPLoopBackServer.cc \
src/qgcunittest/UnitTest.cc \
src/qgcunittest/UnitTestList.cc \
} } } } } }
# Main QGC Headers and Source files
HEADERS += \
src/audio/QGCAudioWorker.h \
src/CmdLineOptParser.h \
...
...
@@ -278,6 +360,7 @@ HEADERS += \
src/comm/QGCMAVLink.h \
src/comm/TCPLink.h \
src/comm/UDPLink.h \
src/FirmwarePlugin/PX4/px4_custom_mode.h \
src/FlightDisplay/VideoManager.h \
src/FlightMap/FlightMapSettings.h \
src/FlightMap/Widgets/ValuesWidgetController.h \
...
...
@@ -336,8 +419,6 @@ HEADERS += \
src/uas/UASMessageHandler.h \
src/Vehicle/MAVLinkLogManager.h \
src/ui/toolbar/MainToolBarController.h \
src/AutoPilotPlugins/PX4/PX4AirframeLoader.h \
src/AutoPilotPlugins/APM/APMAirframeLoader.h \
src/QmlControls/QGCImageProvider.h \
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \
src/PositionManager/PositionManager.h \
...
...
@@ -502,8 +583,6 @@ SOURCES += \
src/uas/UASMessageHandler.cc \
src/Vehicle/MAVLinkLogManager.cc \
src/ui/toolbar/MainToolBarController.cc \
src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc \
src/AutoPilotPlugins/APM/APMAirframeLoader.cc \
src/QmlControls/QGCImageProvider.cc \
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \
src/PositionManager/SimulatedPosition.cc \
...
...
@@ -578,143 +657,31 @@ SOURCES += \
src/ViewWidgets/ViewWidgetController.cc
}
#
# Unit Test specific configuration goes here
#
# Palette test widget in debug builds
DebugBuild {
HEADERS += src/QmlControls/QmlTestWidget.h
SOURCES += src/QmlControls/QmlTestWidget.cc
!MobileBuild {
INCLUDEPATH += \
src/qgcunittest
HEADERS += \
src/AnalyzeView/LogDownloadTest.h \
src/FactSystem/FactSystemTestBase.h \
src/FactSystem/FactSystemTestGeneric.h \
src/FactSystem/FactSystemTestPX4.h \
src/FactSystem/ParameterManagerTest.h \
src/MissionManager/ComplexMissionItemTest.h \
src/MissionManager/MissionCommandTreeTest.h \
src/MissionManager/MissionControllerTest.h \
src/MissionManager/MissionControllerManagerTest.h \
src/MissionManager/MissionItemTest.h \
src/MissionManager/MissionManagerTest.h \
src/MissionManager/SimpleMissionItemTest.h \
src/qgcunittest/GeoTest.h \
src/qgcunittest/FileDialogTest.h \
src/qgcunittest/FileManagerTest.h \
src/qgcunittest/FlightGearTest.h \
src/qgcunittest/LinkManagerTest.h \
src/qgcunittest/MainWindowTest.h \
src/qgcunittest/MavlinkLogTest.h \
src/qgcunittest/MessageBoxTest.h \
src/qgcunittest/MultiSignalSpy.h \
src/qgcunittest/RadioConfigTest.h \
src/qgcunittest/TCPLinkTest.h \
src/qgcunittest/TCPLoopBackServer.h \
src/qgcunittest/UnitTest.h \
SOURCES += \
src/AnalyzeView/LogDownloadTest.cc \
src/FactSystem/FactSystemTestBase.cc \
src/FactSystem/FactSystemTestGeneric.cc \
src/FactSystem/FactSystemTestPX4.cc \
src/FactSystem/ParameterManagerTest.cc \
src/MissionManager/ComplexMissionItemTest.cc \
src/MissionManager/MissionCommandTreeTest.cc \
src/MissionManager/MissionControllerTest.cc \
src/MissionManager/MissionControllerManagerTest.cc \
src/MissionManager/MissionItemTest.cc \
src/MissionManager/MissionManagerTest.cc \
src/MissionManager/SimpleMissionItemTest.cc \
src/qgcunittest/GeoTest.cc \
src/qgcunittest/FileDialogTest.cc \
src/qgcunittest/FileManagerTest.cc \
src/qgcunittest/FlightGearTest.cc \
src/qgcunittest/LinkManagerTest.cc \
src/qgcunittest/MainWindowTest.cc \
src/qgcunittest/MavlinkLogTest.cc \
src/qgcunittest/MessageBoxTest.cc \
src/qgcunittest/MultiSignalSpy.cc \
src/qgcunittest/RadioConfigTest.cc \
src/qgcunittest/TCPLinkTest.cc \
src/qgcunittest/TCPLoopBackServer.cc \
src/qgcunittest/UnitTest.cc \
src/qgcunittest/UnitTestList.cc \
} # !MobileBuild
} # DebugBuild
HEADERS += src/QmlControls/QmlTestWidget.h
SOURCES += src/QmlControls/QmlTestWidget.cc
}
#
# Firmware Plugin Support
#
INCLUDEPATH += \
src/AutoPilotPlugins/APM \
src/AutoPilotPlugins/Common \
src/AutoPilotPlugins/PX4 \
src/FirmwarePlugin \
src/FirmwarePlugin/APM \
src/FirmwarePlugin/PX4 \
src/Vehicle \
src/VehicleSetup \
HEADERS+= \
src/AutoPilotPlugins/AutoPilotPlugin.h \
src/AutoPilotPlugins/AutoPilotPluginManager.h \
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.h \
src/AutoPilotPlugins/APM/APMAirframeComponent.h \
src/AutoPilotPlugins/APM/APMAirframeComponentController.h \
src/AutoPilotPlugins/APM/APMAirframeComponentAirframes.h \
src/AutoPilotPlugins/APM/APMCameraComponent.h \
src/AutoPilotPlugins/APM/APMLightsComponent.h \
src/AutoPilotPlugins/APM/APMCompassCal.h \
src/AutoPilotPlugins/APM/APMFlightModesComponent.h \
src/AutoPilotPlugins/APM/APMFlightModesComponentController.h \
src/AutoPilotPlugins/APM/APMPowerComponent.h \
src/AutoPilotPlugins/APM/APMRadioComponent.h \
src/AutoPilotPlugins/APM/APMSafetyComponent.h \
src/AutoPilotPlugins/APM/APMSensorsComponent.h \
src/AutoPilotPlugins/APM/APMSensorsComponentController.h \
src/AutoPilotPlugins/APM/APMTuningComponent.h \
src/AutoPilotPlugins/Common/MotorComponent.h \
src/AutoPilotPlugins/Common/RadioComponentController.h \
src/AutoPilotPlugins/Common/ESP8266ComponentController.h \
src/AutoPilotPlugins/Common/ESP8266Component.h \
src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.h \
src/AutoPilotPlugins/PX4/AirframeComponent.h \
src/AutoPilotPlugins/PX4/AirframeComponentAirframes.h \
src/AutoPilotPlugins/PX4/AirframeComponentController.h \
src/AutoPilotPlugins/PX4/FlightModesComponent.h \
src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.h \
src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.h \
src/AutoPilotPlugins/PX4/PowerComponent.h \
src/AutoPilotPlugins/PX4/PowerComponentController.h \
src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.h \
src/AutoPilotPlugins/PX4/PX4RadioComponent.h \
src/AutoPilotPlugins/PX4/CameraComponent.h \
src/AutoPilotPlugins/PX4/SafetyComponent.h \
src/AutoPilotPlugins/PX4/SensorsComponent.h \
src/AutoPilotPlugins/PX4/SensorsComponentController.h \
src/AutoPilotPlugins/PX4/PX4TuningComponent.h \
src/FirmwarePlugin/FirmwarePluginManager.h \
src/FirmwarePlugin/FirmwarePlugin.h \
src/FirmwarePlugin/APM/APMFirmwarePlugin.h \
src/FirmwarePlugin/APM/APMGeoFenceManager.h \
src/FirmwarePlugin/APM/APMParameterMetaData.h \
src/FirmwarePlugin/APM/APMRallyPointManager.h \
src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h \
src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.h \
src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.h \
src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h \
src/FirmwarePlugin/PX4/px4_custom_mode.h \
src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h \
src/FirmwarePlugin/PX4/PX4GeoFenceManager.h \
src/FirmwarePlugin/PX4/PX4ParameterMetaData.h \
src/Vehicle/MultiVehicleManager.h \
src/Vehicle/Vehicle.h \
src/VehicleSetup/VehicleComponent.h \
...
...
@@ -730,66 +697,144 @@ HEADERS += \
SOURCES += \
src/AutoPilotPlugins/AutoPilotPlugin.cc \
src/AutoPilotPlugins/AutoPilotPluginManager.cc \
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc \
src/AutoPilotPlugins/APM/APMAirframeComponent.cc \
src/AutoPilotPlugins/APM/APMAirframeComponentController.cc \
src/AutoPilotPlugins/APM/APMCameraComponent.cc \
src/AutoPilotPlugins/APM/APMLightsComponent.cc \
src/AutoPilotPlugins/APM/APMCompassCal.cc \
src/AutoPilotPlugins/APM/APMFlightModesComponent.cc \
src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc \
src/AutoPilotPlugins/APM/APMPowerComponent.cc \
src/AutoPilotPlugins/APM/APMRadioComponent.cc \
src/AutoPilotPlugins/APM/APMSafetyComponent.cc \
src/AutoPilotPlugins/APM/APMSensorsComponent.cc \
src/AutoPilotPlugins/APM/APMSensorsComponentController.cc \
src/AutoPilotPlugins/APM/APMTuningComponent.cc \
src/AutoPilotPlugins/Common/MotorComponent.cc \
src/AutoPilotPlugins/Common/RadioComponentController.cc \
src/AutoPilotPlugins/Common/ESP8266ComponentController.cc \
src/AutoPilotPlugins/Common/ESP8266Component.cc \
src/AutoPilotPlugins/APM/APMAirframeComponentAirframes.cc \
src/AutoPilotPlugins/Generic/GenericAutoPilotPlugin.cc \
src/AutoPilotPlugins/PX4/AirframeComponent.cc \
src/AutoPilotPlugins/PX4/AirframeComponentAirframes.cc \
src/AutoPilotPlugins/PX4/AirframeComponentController.cc \
src/AutoPilotPlugins/PX4/FlightModesComponent.cc \
src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc \
src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc \
src/AutoPilotPlugins/PX4/PowerComponent.cc \
src/AutoPilotPlugins/PX4/PowerComponentController.cc \
src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc \
src/AutoPilotPlugins/PX4/PX4RadioComponent.cc \
src/AutoPilotPlugins/PX4/CameraComponent.cc \
src/AutoPilotPlugins/PX4/SafetyComponent.cc \
src/AutoPilotPlugins/PX4/SensorsComponent.cc \
src/AutoPilotPlugins/PX4/SensorsComponentController.cc \
src/AutoPilotPlugins/PX4/PX4TuningComponent.cc \
src/FirmwarePlugin/APM/APMFirmwarePlugin.cc \
src/FirmwarePlugin/APM/APMGeoFenceManager.cc \
src/FirmwarePlugin/APM/APMParameterMetaData.cc \
src/FirmwarePlugin/APM/APMRallyPointManager.cc \
src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc \
src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.cc \
src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc \
src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc \
src/FirmwarePlugin/FirmwarePlugin.cc \
src/FirmwarePlugin/FirmwarePluginManager.cc \
src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc \
src/FirmwarePlugin/PX4/PX4GeoFenceManager.cc \
src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc \
src/Vehicle/MultiVehicleManager.cc \
src/Vehicle/Vehicle.cc \
src/VehicleSetup/VehicleComponent.cc \
!MobileBuild {
SOURCES += \
SOURCES += \
src/VehicleSetup/FirmwareUpgradeController.cc \
src/VehicleSetup/Bootloader.cc \
src/VehicleSetup/PX4FirmwareUpgradeThread.cc \
src/VehicleSetup/FirmwareImage.cc \
}
# ArduPilot FirmwarePlugin
APMFirmwarePlugin {
INCLUDEPATH += \
src/AutoPilotPlugins/APM \
src/FirmwarePlugin/APM \
HEADERS += \
src/FirmwarePlugin/APM/APMFirmwarePlugin.h \
src/FirmwarePlugin/APM/APMGeoFenceManager.h \
src/FirmwarePlugin/APM/APMParameterMetaData.h \
src/FirmwarePlugin/APM/APMRallyPointManager.h \
src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h \
src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.h \
src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.h \
src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h \
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.h \
src/AutoPilotPlugins/APM/APMAirframeComponent.h \
src/AutoPilotPlugins/APM/APMAirframeComponentController.h \
src/AutoPilotPlugins/APM/APMAirframeComponentAirframes.h \
src/AutoPilotPlugins/APM/APMAirframeLoader.h \
src/AutoPilotPlugins/APM/APMCameraComponent.h \
src/AutoPilotPlugins/APM/APMLightsComponent.h \
src/AutoPilotPlugins/APM/APMCompassCal.h \
src/AutoPilotPlugins/APM/APMFlightModesComponent.h \
src/AutoPilotPlugins/APM/APMFlightModesComponentController.h \
src/AutoPilotPlugins/APM/APMPowerComponent.h \
src/AutoPilotPlugins/APM/APMRadioComponent.h \
src/AutoPilotPlugins/APM/APMSafetyComponent.h \
src/AutoPilotPlugins/APM/APMSensorsComponent.h \
src/AutoPilotPlugins/APM/APMSensorsComponentController.h \
src/AutoPilotPlugins/APM/APMTuningComponent.h \
SOURCES += \
src/FirmwarePlugin/APM/APMFirmwarePlugin.cc \
src/FirmwarePlugin/APM/APMGeoFenceManager.cc \
src/FirmwarePlugin/APM/APMParameterMetaData.cc \
src/FirmwarePlugin/APM/APMRallyPointManager.cc \
src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc \
src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.cc \
src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc \
src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc \
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc \
src/AutoPilotPlugins/APM/APMAirframeComponent.cc \
src/AutoPilotPlugins/APM/APMAirframeComponentAirframes.cc \
src/AutoPilotPlugins/APM/APMAirframeComponentController.cc \
src/AutoPilotPlugins/APM/APMAirframeLoader.cc \
src/AutoPilotPlugins/APM/APMCameraComponent.cc \
src/AutoPilotPlugins/APM/APMLightsComponent.cc \
src/AutoPilotPlugins/APM/APMCompassCal.cc \
src/AutoPilotPlugins/APM/APMFlightModesComponent.cc \
src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc \
src/AutoPilotPlugins/APM/APMPowerComponent.cc \
src/AutoPilotPlugins/APM/APMRadioComponent.cc \
src/AutoPilotPlugins/APM/APMSafetyComponent.cc \
src/AutoPilotPlugins/APM/APMSensorsComponent.cc \
src/AutoPilotPlugins/APM/APMSensorsComponentController.cc \
src/AutoPilotPlugins/APM/APMTuningComponent.cc \
}
APMFirmwarePluginFactory {
HEADERS += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.h
SOURCES += src/FirmwarePlugin/APM/APMFirmwarePluginFactory.cc
}
# PX4 FirmwarePlugin
PX4FirmwarePlugin {
INCLUDEPATH += \
src/AutoPilotPlugins/PX4 \
src/FirmwarePlugin/PX4 \
HEADERS+= \
src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h \
src/FirmwarePlugin/PX4/PX4GeoFenceManager.h \
src/FirmwarePlugin/PX4/PX4ParameterMetaData.h \
src/AutoPilotPlugins/PX4/AirframeComponent.h \
src/AutoPilotPlugins/PX4/AirframeComponentAirframes.h \
src/AutoPilotPlugins/PX4/AirframeComponentController.h \
src/AutoPilotPlugins/PX4/FlightModesComponent.h \
src/AutoPilotPlugins/PX4/PX4AirframeLoader.h \
src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.h \
src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.h \
src/AutoPilotPlugins/PX4/PowerComponent.h \
src/AutoPilotPlugins/PX4/PowerComponentController.h \
src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.h \
src/AutoPilotPlugins/PX4/PX4RadioComponent.h \
src/AutoPilotPlugins/PX4/CameraComponent.h \
src/AutoPilotPlugins/PX4/SafetyComponent.h \
src/AutoPilotPlugins/PX4/SensorsComponent.h \
src/AutoPilotPlugins/PX4/SensorsComponentController.h \
src/AutoPilotPlugins/PX4/PX4TuningComponent.h \
SOURCES += \
src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc \
src/FirmwarePlugin/PX4/PX4GeoFenceManager.cc \
src/FirmwarePlugin/PX4/PX4ParameterMetaData.cc \
src/AutoPilotPlugins/PX4/AirframeComponent.cc \
src/AutoPilotPlugins/PX4/AirframeComponentAirframes.cc \
src/AutoPilotPlugins/PX4/AirframeComponentController.cc \
src/AutoPilotPlugins/PX4/FlightModesComponent.cc \
src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc \
src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc \
src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc \
src/AutoPilotPlugins/PX4/PowerComponent.cc \
src/AutoPilotPlugins/PX4/PowerComponentController.cc \
src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc \
src/AutoPilotPlugins/PX4/PX4RadioComponent.cc \
src/AutoPilotPlugins/PX4/CameraComponent.cc \
src/AutoPilotPlugins/PX4/SafetyComponent.cc \
src/AutoPilotPlugins/PX4/SensorsComponent.cc \
src/AutoPilotPlugins/PX4/SensorsComponentController.cc \
src/AutoPilotPlugins/PX4/PX4TuningComponent.cc \
}
PX4FirmwarePluginFactory {
HEADERS += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.h
SOURCES += src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc
}
# Fact System code
...
...
src/AutoPilotPlugins/APM/APMAirframeComponentController.cc
View file @
0ce6d773
...
...
@@ -15,7 +15,6 @@
#include "APMAirframeComponentAirframes.h"
#include "QGCMAVLink.h"
#include "MultiVehicleManager.h"
#include "AutoPilotPluginManager.h"
#include "QGCApplication.h"
#include "QGCFileDownload.h"
#include "ParameterManager.h"
...
...
src/AutoPilotPlugins/APM/APMAutoPilotPlugin.cc
View file @
0ce6d773
...
...
@@ -9,7 +9,6 @@
#include "APMAutoPilotPlugin.h"
#include "AutoPilotPluginManager.h"
#include "UAS.h"
#include "FirmwarePlugin/APM/APMParameterMetaData.h" // FIXME: Hack
#include "FirmwarePlugin/APM/APMFirmwarePlugin.h" // FIXME: Hack
...
...
src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc
View file @
0ce6d773
...
...
@@ -10,7 +10,6 @@
#include "APMFlightModesComponentController.h"
#include "QGCMAVLink.h"
#include "AutoPilotPluginManager.h"
#include <QVariant>
#include <QQmlProperty>
...
...
src/AutoPilotPlugins/Common/ESP8266ComponentController.cc
View file @
0ce6d773
...
...
@@ -13,7 +13,6 @@
/// @author Gus Grubba <mavlink@grubba.com>
#include "ESP8266ComponentController.h"
#include "AutoPilotPluginManager.h"
#include "QGCApplication.h"
#include "UAS.h"
#include "ParameterManager.h"
...
...
src/AutoPilotPlugins/Common/MotorComponent.cc
View file @
0ce6d773
...
...
@@ -7,10 +7,7 @@
*
****************************************************************************/
#include "MotorComponent.h"
#include "APMAutoPilotPlugin.h"
#include "APMAirframeComponent.h"
MotorComponent
::
MotorComponent
(
Vehicle
*
vehicle
,
AutoPilotPlugin
*
autopilot
,
QObject
*
parent
)
:
VehicleComponent
(
vehicle
,
autopilot
,
parent
),
...
...
src/AutoPilotPlugins/Common/RadioComponentController.cc
View file @
0ce6d773
...
...
@@ -13,7 +13,6 @@
/// @author Don Gagne <don@thegagnes.com
#include "RadioComponentController.h"
#include "AutoPilotPluginManager.h"
#include "QGCApplication.h"
#include <QSettings>
...
...
src/AutoPilotPlugins/PX4/AirframeComponentController.cc
View file @
0ce6d773
...
...
@@ -15,7 +15,6 @@
#include "AirframeComponentAirframes.h"
#include "QGCMAVLink.h"
#include "MultiVehicleManager.h"
#include "AutoPilotPluginManager.h"
#include "QGCApplication.h"
#include <QVariant>
...
...
src/AutoPilotPlugins/PX4/PX4AdvancedFlightModesController.cc
View file @
0ce6d773
...
...
@@ -13,7 +13,6 @@
#include "PX4AdvancedFlightModesController.h"
#include "QGCMAVLink.h"
#include "AutoPilotPluginManager.h"
#include <QVariant>
#include <QQmlProperty>
...
...
src/AutoPilotPlugins/PX4/PX4AutoPilotPlugin.cc
View file @
0ce6d773
...
...
@@ -9,7 +9,6 @@
#include "PX4AutoPilotPlugin.h"
#include "AutoPilotPluginManager.h"
#include "PX4AirframeLoader.h"
#include "PX4AdvancedFlightModesController.h"
#include "AirframeComponentController.h"
...
...
src/AutoPilotPlugins/PX4/PX4SimpleFlightModesController.cc
View file @
0ce6d773
...
...
@@ -10,7 +10,6 @@
#include "PX4SimpleFlightModesController.h"
#include "QGCMAVLink.h"
#include "AutoPilotPluginManager.h"
#include <QVariant>
#include <QQmlProperty>
...
...
src/FactSystem/ParameterManager.cc
View file @
0ce6d773
...
...
@@ -17,7 +17,6 @@
#include "QGCApplication.h"
#include "UASMessageHandler.h"
#include "FirmwarePlugin.h"
#include "APMFirmwarePlugin.h"
#include "UAS.h"
#include "JsonHelper.h"
...
...
@@ -236,7 +235,7 @@ void ParameterManager::_parameterUpdate(int vehicleId, int componentId, QString
int
totalWaitingParamCount
=
readWaitingParamCount
+
waitingWriteParamNameCount
;
if
(
totalWaitingParamCount
)
{
qCDebug
(
ParameterManagerVerbose1Log
)
<<
_logVehiclePrefix
(
componentId
)
<<
"totalWaitingParamCount:"
<<
totalWaitingParamCount
;
}
else
if
(
_defaultComponentId
!=
MAV_COMP_ID_ALL
)
{
}
else
if
(
_defaultComponentId
!=
MAV_COMP_ID_ALL
||
_defaultComponentIdParam
.
isEmpty
()
)
{
// No more parameters to wait for, stop the timeout. Be careful to not stop timer if we don't have the default
// component yet.
qCDebug
(
ParameterManagerVerbose1Log
)
<<
_logVehiclePrefix
()
<<
"Stopping _waitingParamTimeoutTimer (all requests satisfied)"
;
...
...
@@ -574,7 +573,7 @@ void ParameterManager::_waitingParamTimeout(void)
}
}
if
(
!
paramsRequested
&&
_defaultComponentId
==
MAV_COMP_ID_ALL
&&
!
_waitingForDefaultComponent
)
{
if
(
!
paramsRequested
&&
_defaultComponentId
==
MAV_COMP_ID_ALL
&&
!
_defaultComponentIdParam
.
isEmpty
()
&&
!
_waitingForDefaultComponent
)
{
// Initial load is complete but we still don't have default component params. Wait one more cycle to see if the
// default component finally shows up.
qCDebug
(
ParameterManagerLog
)
<<
_logVehiclePrefix
()
<<
"Restarting _waitingParamTimeoutTimer - still don't have default component id"
;
...
...
@@ -975,16 +974,10 @@ void ParameterManager::_addMetaDataToDefaultComponent(void)
QString
metaDataFile
;
int
majorVersion
,
minorVersion
;
if
(
_vehicle
->
firmwareType
()
==
MAV_AUTOPILOT_ARDUPILOTMEGA
)
{
// Parameter versioning is still not really figured out correctly. We need to handle ArduPilot specially based on vehicle version.
// The current three version are hardcoded in.
metaDataFile
=
((
APMFirmwarePlugin
*
)
_vehicle
->
firmwarePlugin
())
->
getParameterMetaDataFile
(
_vehicle
);
qCDebug
(
ParameterManagerLog
)
<<
"Adding meta data to Vehicle file:major:minor"
<<
metaDataFile
;
}
else
{
// Load best parameter meta data set
metaDataFile
=
parameterMetaDataFile
(
_vehicle
->
firmwareType
(),
_parameterSetMajorVersion
,
majorVersion
,
minorVersion
);
qCDebug
(
ParameterManagerLog
)
<<
"Adding meta data to Vehicle file:major:minor"
<<
metaDataFile
<<
majorVersion
<<
minorVersion
;
}
// Load best parameter meta data set
metaDataFile
=
parameterMetaDataFile
(
_vehicle
,
_vehicle
->
firmwareType
(),
_parameterSetMajorVersion
,
majorVersion
,
minorVersion
);
qCDebug
(
ParameterManagerLog
)
<<
"Adding meta data to Vehicle file:major:minor"
<<
metaDataFile
<<
majorVersion
<<
minorVersion
;
_parameterMetaData
=
_vehicle
->
firmwarePlugin
()
->
loadParameterMetaData
(
metaDataFile
);
...
...
@@ -1010,7 +1003,7 @@ void ParameterManager::_checkInitialLoadComplete(bool failIfNoDefaultComponent)
}
}
if
(
!
failIfNoDefaultComponent
&&
_defaultComponentId
==
MAV_COMP_ID_ALL
)
{
if
(
!
failIfNoDefaultComponent
&&
_defaultComponentId
==
MAV_COMP_ID_ALL
&&
!
_defaultComponentIdParam
.
isEmpty
()
)
{
// We are still waiting for default component to show up
return
;
}
...
...
@@ -1046,7 +1039,7 @@ void ParameterManager::_checkInitialLoadComplete(bool failIfNoDefaultComponent)
if
(
!
qgcApp
()
->
runningUnitTests
())
{
qCWarning
(
ParameterManagerLog
)
<<
_logVehiclePrefix
()
<<
"The following parameter indices could not be loaded after the maximum number of retries: "
<<
indexList
;
}
}
else
if
(
_defaultComponentId
==
FactSystem
::
defaultComponentId
&&
!
_defaultComponentIdParam
.
isEmpty
())
{
}
else
if
(
_defaultComponentId
==
MAV_COMP_ID_ALL
&&
!
_defaultComponentIdParam
.
isEmpty
())
{
// Missing default component when we should have one
_missingParameters
=
true
;
QString
errorMsg
=
tr
(
"QGroundControl did not receive parameters from the default component for vehicle %1. "
...
...
@@ -1084,7 +1077,7 @@ void ParameterManager::_initialRequestTimeout(void)
}
}
QString
ParameterManager
::
parameterMetaDataFile
(
MAV_AUTOPILOT
firmwareType
,
int
wantedMajorVersion
,
int
&
majorVersion
,
int
&
minorVersion
)
QString
ParameterManager
::
parameterMetaDataFile
(
Vehicle
*
vehicle
,
MAV_AUTOPILOT
firmwareType
,
int
wantedMajorVersion
,
int
&
majorVersion
,
int
&
minorVersion
)
{
bool
cacheHit
=
false
;
FirmwarePlugin
*
plugin
=
qgcApp
()
->
toolbox
()
->
firmwarePluginManager
()
->
firmwarePluginForAutopilot
(
firmwareType
,
MAV_TYPE_QUADROTOR
);
...
...
@@ -1141,7 +1134,7 @@ QString ParameterManager::parameterMetaDataFile(MAV_AUTOPILOT firmwareType, int
}
int
internalMinorVersion
,
internalMajorVersion
;
QString
internalMetaDataFile
=
plugin
->
internalParameterMetaDataFile
();
QString
internalMetaDataFile
=
plugin
->
internalParameterMetaDataFile
(
vehicle
);
plugin
->
getParameterMetaDataVersionInfo
(
internalMetaDataFile
,
internalMajorVersion
,
internalMinorVersion
);
qCDebug
(
ParameterManagerLog
)
<<
"Internal meta data file:major:minor"
<<
internalMetaDataFile
<<
internalMajorVersion
<<
internalMinorVersion
;
if
(
cacheHit
)
{
...
...
@@ -1190,7 +1183,7 @@ void ParameterManager::cacheMetaDataFile(const QString& metaDataFile, MAV_AUTOPI
// Find the cache hit closest to this new file
int
cacheMajorVersion
,
cacheMinorVersion
;
QString
cacheHit
=
ParameterManager
::
parameterMetaDataFile
(
firmwareType
,
newMajorVersion
,
cacheMajorVersion
,
cacheMinorVersion
);
QString
cacheHit
=
ParameterManager
::
parameterMetaDataFile
(
NULL
,
firmwareType
,
newMajorVersion
,
cacheMajorVersion
,
cacheMinorVersion
);
qCDebug
(
ParameterManagerLog
)
<<
"ParameterManager::cacheMetaDataFile cacheHit file:firmware:major;minor"
<<
cacheHit
<<
cacheMajorVersion
<<
cacheMinorVersion
;
bool
cacheNewFile
=
false
;
...
...
src/FactSystem/ParameterManager.h
View file @
0ce6d773
...
...
@@ -99,7 +99,7 @@ public:
/// @param[out] majorVersion Major version for found meta data
/// @param[out] minorVersion Minor version for found meta data
/// @return Meta data file name of best match, emptyString is none found
static
QString
parameterMetaDataFile
(
MAV_AUTOPILOT
firmwareType
,
int
wantedMajorVersion
,
int
&
majorVersion
,
int
&
minorVersion
);
static
QString
parameterMetaDataFile
(
Vehicle
*
vehicle
,
MAV_AUTOPILOT
firmwareType
,
int
wantedMajorVersion
,
int
&
majorVersion
,
int
&
minorVersion
);
/// If this file is newer than anything in the cache, cache it as the latest version
static
void
cacheMetaDataFile
(
const
QString
&
metaDataFile
,
MAV_AUTOPILOT
firmwareType
);
...
...
src/FactSystem/ParameterManagerTest.cc
View file @
0ce6d773
...
...
@@ -34,7 +34,7 @@ void ParameterManagerTest::_noFailureWorker(MockConfiguration::FailureMode_t fai
QVERIFY
(
vehicle
);
// We should get progress bar updates during load
QSignalSpy
spyProgress
(
vehicle
->
parameterManager
(),
SIGNAL
(
parameterList
Progress
(
float
)));
QSignalSpy
spyProgress
(
vehicle
->
parameterManager
(),
SIGNAL
(
load
Progress
Changed
(
float
)));
QCOMPARE
(
spyProgress
.
wait
(
2000
),
true
);
arguments
=
spyProgress
.
takeFirst
();
QCOMPARE
(
arguments
.
count
(),
1
);
...
...
@@ -64,6 +64,7 @@ void ParameterManagerTest::_requestListMissingParamSuccess(void)
_noFailureWorker
(
MockConfiguration
::
FailMissingParamOnInitialReqest
);
}
#if 0
// Test no response to param_request_list
void ParameterManagerTest::_requestListNoResponse(void)
{
...
...
@@ -85,7 +86,7 @@ void ParameterManagerTest::_requestListNoResponse(void)
QVERIFY(vehicle);
QSignalSpy spyParamsReady(vehicleMgr, SIGNAL(parameterReadyVehicleAvailableChanged(bool)));
QSignalSpy
spyProgress
(
vehicle
->
parameterManager
(),
SIGNAL
(
parameterList
Progress
(
float
)));
QSignalSpy spyProgress(vehicle->parameterManager(), SIGNAL(
load
Progress
Changed
(float)));
// We should not get any progress bar updates, nor a parameter ready signal
QCOMPARE(spyProgress.wait(500), false);
...
...
@@ -94,6 +95,7 @@ void ParameterManagerTest::_requestListNoResponse(void)
// User should have been notified
checkMultipleExpectedMessageBox(5);
}
#endif
// MockLink will fail to send a param on initial request, it will also fail to send it on subsequent
// param_read requests.
...
...
@@ -120,7 +122,7 @@ void ParameterManagerTest::_requestListMissingParamFail(void)
QVERIFY
(
vehicle
);
QSignalSpy
spyParamsReady
(
vehicleMgr
,
SIGNAL
(
parameterReadyVehicleAvailableChanged
(
bool
)));
QSignalSpy
spyProgress
(
vehicle
->
parameterManager
(),
SIGNAL
(
parameterList
Progress
(
float
)));
QSignalSpy
spyProgress
(
vehicle
->
parameterManager
(),
SIGNAL
(
load
Progress
Changed
(
float
)));
// We will get progress bar updates, since it will fail after getting partially through the request
QCOMPARE
(
spyProgress
.
wait
(
2000
),
true
);
...
...
src/FactSystem/ParameterManagerTest.h
View file @
0ce6d773
...
...
@@ -22,7 +22,8 @@ class ParameterManagerTest : public UnitTest
private
slots
:
void
_noFailure
(
void
);
void
_requestListNoResponse
(
void
);
// FIXME: Hack to work around changed no reponse handling
//void _requestListNoResponse(void);
void
_requestListMissingParamSuccess
(
void
);
void
_requestListMissingParamFail
(
void
);
...
...
src/FirmwarePlugin/APM/APMFirmwarePlugin.cc
View file @
0ce6d773
...
...
@@ -12,9 +12,12 @@
/// @author Don Gagne <don@thegagnes.com>
#include "APMFirmwarePlugin.h"
#include "
AutoPilotPlugins/APM/
APMAutoPilotPlugin.h"
// FIXME: Hack
#include "APMAutoPilotPlugin.h"
#include "QGCMAVLink.h"
#include "QGCApplication.h"
#include "APMFlightModesComponentController.h"
#include "APMAirframeComponentController.h"
#include "APMSensorsComponentController.h"
#include <QTcpSocket>
...
...
@@ -140,7 +143,14 @@ APMFirmwarePlugin::APMFirmwarePlugin(void)
:
_coaxialMotors
(
false
)
,
_textSeverityAdjustmentNeeded
(
false
)
{
qmlRegisterType
<
APMFlightModesComponentController
>
(
"QGroundControl.Controllers"
,
1
,
0
,
"APMFlightModesComponentController"
);
qmlRegisterType
<
APMAirframeComponentController
>
(
"QGroundControl.Controllers"
,
1
,
0
,
"APMAirframeComponentController"
);
qmlRegisterType
<
APMSensorsComponentController
>
(
"QGroundControl.Controllers"
,
1
,
0
,
"APMSensorsComponentController"
);
}
AutoPilotPlugin
*
APMFirmwarePlugin
::
autopilotPlugin
(
Vehicle
*
vehicle
)
{
return
new
APMAutoPilotPlugin
(
vehicle
,
vehicle
);
}
bool
APMFirmwarePlugin
::
isCapable
(
const
Vehicle
*
/*vehicle*/
,
FirmwareCapabilities
capabilities
)
...
...
@@ -654,8 +664,8 @@ QList<MAV_CMD> APMFirmwarePlugin::supportedMissionCommands(void)
<<
MAV_CMD_DO_AUTOTUNE_ENABLE
<<
MAV_CMD_NAV_VTOL_TAKEOFF
<<
MAV_CMD_NAV_VTOL_LAND
<<
MAV_CMD_DO_VTOL_TRANSITION
;
#if 0
// Waiting for module update
<< MAV_CMD_DO_SET_REVERSE;
// Waiting for module update
<< MAV_CMD_DO_SET_REVERSE;
#endif
return
list
;
...
...
@@ -723,7 +733,7 @@ void APMFirmwarePlugin::_artooSocketError(QAbstractSocket::SocketError socketErr
qgcApp
()
->
showMessage
(
tr
(
"Error during Solo video link setup: %1"
).
arg
(
socketError
));
}
QString
APMFirmwarePlugin
::
get
ParameterMetaDataFile
(
Vehicle
*
vehicle
)
QString
APMFirmwarePlugin
::
internal
ParameterMetaDataFile
(
Vehicle
*
vehicle
)
{
switch
(
vehicle
->
vehicleType
())
{
case
MAV_TYPE_QUADROTOR
:
...
...
src/FirmwarePlugin/APM/APMFirmwarePlugin.h
View file @
0ce6d773
...
...
@@ -75,29 +75,28 @@ public:
QList
<
VehicleComponent
*>
componentsForVehicle
(
AutoPilotPlugin
*
vehicle
)
final
;
QList
<
MAV_CMD
>
supportedMissionCommands
(
void
)
final
;
bool
isCapable
(
const
Vehicle
*
vehicle
,
FirmwareCapabilities
capabilities
);
QStringList
flightModes
(
Vehicle
*
vehicle
)
final
;
QString
flightMode
(
uint8_t
base_mode
,
uint32_t
custom_mode
)
const
final
;
bool
setFlightMode
(
const
QString
&
flightMode
,
uint8_t
*
base_mode
,
uint32_t
*
custom_mode
)
final
;
bool
isGuidedMode
(
const
Vehicle
*
vehicle
)
const
final
;
void
pauseVehicle
(
Vehicle
*
vehicle
);
int
manualControlReservedButtonCount
(
void
);
bool
adjustIncomingMavlinkMessage
(
Vehicle
*
vehicle
,
mavlink_message_t
*
message
)
final
;
void
adjustOutgoingMavlinkMessage
(
Vehicle
*
vehicle
,
LinkInterface
*
outgoingLink
,
mavlink_message_t
*
message
)
final
;
void
initializeVehicle
(
Vehicle
*
vehicle
)
final
;
bool
sendHomePositionToVehicle
(
void
)
final
;
void
addMetaDataToFact
(
QObject
*
parameterMetaData
,
Fact
*
fact
,
MAV_TYPE
vehicleType
)
final
;
QString
getDefaultComponentIdParam
(
void
)
const
final
{
return
QString
(
"SYSID_SW_TYPE"
);
}
QString
missionCommandOverrides
(
MAV_TYPE
vehicleType
)
const
;
QString
getVersionParam
(
void
)
final
{
return
QStringLiteral
(
"SYSID_SW_MREV"
);
}
QString
internalParameterMetaDataFile
(
void
)
final
{
return
QString
(
":/FirmwarePlugin/APM/APMParameterFactMetaData.xml"
);
}
void
getParameterMetaDataVersionInfo
(
const
QString
&
metaDataFile
,
int
&
majorVersion
,
int
&
minorVersion
)
final
{
APMParameterMetaData
::
getParameterMetaDataVersionInfo
(
metaDataFile
,
majorVersion
,
minorVersion
);
}
QObject
*
loadParameterMetaData
(
const
QString
&
metaDataFile
);
GeoFenceManager
*
newGeoFenceManager
(
Vehicle
*
vehicle
)
{
return
new
APMGeoFenceManager
(
vehicle
);
}
RallyPointManager
*
newRallyPointManager
(
Vehicle
*
vehicle
)
{
return
new
APMRallyPointManager
(
vehicle
);
}
QString
brandImage
(
const
Vehicle
*
vehicle
)
const
{
Q_UNUSED
(
vehicle
);
return
QStringLiteral
(
"/qmlimages/APM/BrandImage"
);
}
QString
getParameterMetaDataFile
(
Vehicle
*
vehicle
);
AutoPilotPlugin
*
autopilotPlugin
(
Vehicle
*
vehicle
)
final
;
bool
isCapable
(
const
Vehicle
*
vehicle
,
FirmwareCapabilities
capabilities
);
QStringList
flightModes
(
Vehicle
*
vehicle
)
final
;
QString
flightMode
(
uint8_t
base_mode
,
uint32_t
custom_mode
)
const
final
;
bool
setFlightMode
(
const
QString
&
flightMode
,
uint8_t
*
base_mode
,
uint32_t
*
custom_mode
)
final
;
bool
isGuidedMode
(
const
Vehicle
*
vehicle
)
const
final
;
void
pauseVehicle
(
Vehicle
*
vehicle
);
int
manualControlReservedButtonCount
(
void
);
bool
adjustIncomingMavlinkMessage
(
Vehicle
*
vehicle
,
mavlink_message_t
*
message
)
final
;
void
adjustOutgoingMavlinkMessage
(
Vehicle
*
vehicle
,
LinkInterface
*
outgoingLink
,
mavlink_message_t
*
message
)
final
;
void
initializeVehicle
(
Vehicle
*
vehicle
)
final
;
bool
sendHomePositionToVehicle
(
void
)
final
;
void
addMetaDataToFact
(
QObject
*
parameterMetaData
,
Fact
*
fact
,
MAV_TYPE
vehicleType
)
final
;
QString
getDefaultComponentIdParam
(
void
)
const
final
{
return
QString
(
"SYSID_SW_TYPE"
);
}
QString
missionCommandOverrides
(
MAV_TYPE
vehicleType
)
const
;
QString
getVersionParam
(
void
)
final
{
return
QStringLiteral
(
"SYSID_SW_MREV"
);
}
QString
internalParameterMetaDataFile
(
Vehicle
*
vehicle
)
final
;
void
getParameterMetaDataVersionInfo
(
const
QString
&
metaDataFile
,
int
&
majorVersion
,
int
&
minorVersion
)
final
{
APMParameterMetaData
::
getParameterMetaDataVersionInfo
(
metaDataFile
,
majorVersion
,
minorVersion
);
}
QObject
*
loadParameterMetaData
(
const
QString
&
metaDataFile
);
GeoFenceManager
*
newGeoFenceManager
(
Vehicle
*
vehicle
)
{
return
new
APMGeoFenceManager
(
vehicle
);
}
RallyPointManager
*
newRallyPointManager
(
Vehicle
*
vehicle
)
{
return
new
APMRallyPointManager
(
vehicle
);
}
QString
brandImage
(
const
Vehicle
*
vehicle
)
const
{
Q_UNUSED
(
vehicle
);
return
QStringLiteral
(
"/qmlimages/APM/BrandImage"
);
}
protected:
/// All access to singleton is through stack specific implementation
...
...
src/FirmwarePlugin/APM/APMFirmwarePluginFactory.cc
0 → 100644
View file @
0ce6d773
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#include "APMFirmwarePluginFactory.h"
#include "APM/ArduCopterFirmwarePlugin.h"
#include "APM/ArduPlaneFirmwarePlugin.h"
#include "APM/ArduRoverFirmwarePlugin.h"
#include "APM/ArduSubFirmwarePlugin.h"
APMFirmwarePluginFactory
APMFirmwarePluginFactory
;
APMFirmwarePluginFactory
::
APMFirmwarePluginFactory
(
void
)
:
_arduCopterPluginInstance
(
NULL
)
,
_arduPlanePluginInstance
(
NULL
)
,
_arduRoverPluginInstance
(
NULL
)
,
_arduSubPluginInstance
(
NULL
)
{
}
QList
<
MAV_AUTOPILOT
>
APMFirmwarePluginFactory
::
knownFirmwareTypes
(
void
)
const
{
QList
<
MAV_AUTOPILOT
>
list
;
list
.
append
(
MAV_AUTOPILOT_ARDUPILOTMEGA
);
return
list
;
}
FirmwarePlugin
*
APMFirmwarePluginFactory
::
firmwarePluginForAutopilot
(
MAV_AUTOPILOT
autopilotType
,
MAV_TYPE
vehicleType
)
{
if
(
autopilotType
==
MAV_AUTOPILOT_ARDUPILOTMEGA
)
{
switch
(
vehicleType
)
{
case
MAV_TYPE_QUADROTOR
:
case
MAV_TYPE_HEXAROTOR
:
case
MAV_TYPE_OCTOROTOR
:
case
MAV_TYPE_TRICOPTER
:
case
MAV_TYPE_COAXIAL
:
case
MAV_TYPE_HELICOPTER
:
if
(
!
_arduCopterPluginInstance
)
{
_arduCopterPluginInstance
=
new
ArduCopterFirmwarePlugin
;
}
return
_arduCopterPluginInstance
;
case
MAV_TYPE_FIXED_WING
:
if
(
!
_arduPlanePluginInstance
)
{
_arduPlanePluginInstance
=
new
ArduPlaneFirmwarePlugin
;
}
return
_arduPlanePluginInstance
;
case
MAV_TYPE_GROUND_ROVER
:
case
MAV_TYPE_SURFACE_BOAT
:
if
(
!
_arduRoverPluginInstance
)
{
_arduRoverPluginInstance
=
new
ArduRoverFirmwarePlugin
;
}
return
_arduRoverPluginInstance
;
case
MAV_TYPE_SUBMARINE
:
if
(
!
_arduSubPluginInstance
)
{
_arduSubPluginInstance
=
new
ArduSubFirmwarePlugin
;
}
return
_arduSubPluginInstance
;
default:
break
;
}
}
return
NULL
;
}
src/FirmwarePlugin/APM/APMFirmwarePluginFactory.h
0 → 100644
View file @
0ce6d773
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#ifndef APMFirmwarePluginFactory_H
#define APMFirmwarePluginFactory_H
#include "FirmwarePlugin.h"
class
ArduCopterFirmwarePlugin
;
class
ArduPlaneFirmwarePlugin
;
class
ArduRoverFirmwarePlugin
;
class
ArduSubFirmwarePlugin
;
class
APMFirmwarePluginFactory
:
public
FirmwarePluginFactory
{
Q_OBJECT
public:
APMFirmwarePluginFactory
(
void
);
QList
<
MAV_AUTOPILOT
>
knownFirmwareTypes
(
void
)
const
final
;
FirmwarePlugin
*
firmwarePluginForAutopilot
(
MAV_AUTOPILOT
autopilotType
,
MAV_TYPE
vehicleType
)
final
;
private:
ArduCopterFirmwarePlugin
*
_arduCopterPluginInstance
;
ArduPlaneFirmwarePlugin
*
_arduPlanePluginInstance
;
ArduRoverFirmwarePlugin
*
_arduRoverPluginInstance
;
ArduSubFirmwarePlugin
*
_arduSubPluginInstance
;
};
#endif
Prev
1
2
3
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment