QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
APMFirmwarePluginFactory.cc
Go to the documentation of this file.
7
8QGC_LOGGING_CATEGORY(APMFirmwarePluginFactoryLog, "FirmwarePlugin.APMFirmwarePluginFactory");
9
11
13{
14 // qCDebug(FirmwarePluginFactoryLog) << Q_FUNC_INFO << this;
15}
16
18{
19 // qCDebug(FirmwarePluginFactoryLog) << Q_FUNC_INFO << this;
20}
21
22QList<QGCMAVLink::FirmwareClass_t> APMFirmwarePluginFactory::supportedFirmwareClasses() const
23{
24 QList<QGCMAVLink::FirmwareClass_t> list;
26 return list;
27}
28
29FirmwarePlugin *APMFirmwarePluginFactory::firmwarePluginForAutopilot(MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType)
30{
31 if (autopilotType == MAV_AUTOPILOT_ARDUPILOTMEGA) {
32 switch (vehicleType) {
33 case MAV_TYPE_QUADROTOR:
34 case MAV_TYPE_HEXAROTOR:
35 case MAV_TYPE_OCTOROTOR:
36 case MAV_TYPE_TRICOPTER:
37 case MAV_TYPE_COAXIAL:
38 case MAV_TYPE_HELICOPTER:
39 if (!_arduCopterPluginInstance) {
40 _arduCopterPluginInstance = new ArduCopterFirmwarePlugin(this);
41 }
42 return _arduCopterPluginInstance;
43 case MAV_TYPE_VTOL_TAILSITTER_DUOROTOR:
44 case MAV_TYPE_VTOL_TAILSITTER_QUADROTOR:
45 case MAV_TYPE_VTOL_TILTROTOR:
46 case MAV_TYPE_VTOL_FIXEDROTOR:
47 case MAV_TYPE_VTOL_TAILSITTER:
48 case MAV_TYPE_VTOL_TILTWING:
49 case MAV_TYPE_VTOL_RESERVED5:
50 case MAV_TYPE_FIXED_WING:
51 if (!_arduPlanePluginInstance) {
52 _arduPlanePluginInstance = new ArduPlaneFirmwarePlugin;
53 }
54 return _arduPlanePluginInstance;
55 case MAV_TYPE_GROUND_ROVER:
56 case MAV_TYPE_SURFACE_BOAT:
57 if (!_arduRoverPluginInstance) {
58 _arduRoverPluginInstance = new ArduRoverFirmwarePlugin;
59 }
60 return _arduRoverPluginInstance;
61 case MAV_TYPE_SUBMARINE:
62 if (!_arduSubPluginInstance) {
63 _arduSubPluginInstance = new ArduSubFirmwarePlugin;
64 }
65 return _arduSubPluginInstance;
66 default:
67 break;
68 }
69 }
70
71 return nullptr;
72}
APMFirmwarePluginFactory APMFirmwarePluginFactory(nullptr)
#define QGC_LOGGING_CATEGORY(name, categoryStr)
FirmwarePlugin * firmwarePluginForAutopilot(MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType) override
APMFirmwarePluginFactory(QObject *parent=nullptr)
QList< QGCMAVLink::FirmwareClass_t > supportedFirmwareClasses() const override