QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
FirmwarePluginManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QLoggingCategory>
4#include <QtCore/QObject>
5
6#include "QGCMAVLink.h"
7
10
11Q_DECLARE_LOGGING_CATEGORY(FirmwarePluginManagerLog)
12
13
14class FirmwarePluginManager : public QObject
15{
16 Q_OBJECT
17
18public:
21 explicit FirmwarePluginManager(QObject *parent = nullptr);
22
25
28 static FirmwarePluginManager *instance();
29
31 QList<QGCMAVLink::FirmwareClass_t> supportedFirmwareClasses();
32
34 QList<QGCMAVLink::VehicleClass_t> supportedVehicleClasses(QGCMAVLink::FirmwareClass_t firmwareClass);
35
40 FirmwarePlugin *firmwarePluginForAutopilot(MAV_AUTOPILOT firmwareType, MAV_TYPE vehicleType);
41
42private:
43 FirmwarePluginFactory *_findPluginFactory(QGCMAVLink::FirmwareClass_t firmwareClass);
44
45 FirmwarePlugin *_genericFirmwarePlugin = nullptr;
46 QList<QGCMAVLink::FirmwareClass_t> _supportedFirmwareClasses;
47};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
virtual QList< QGCMAVLink::FirmwareClass_t > supportedFirmwareClasses() const =0
virtual QList< QGCMAVLink::VehicleClass_t > supportedVehicleClasses() const
virtual FirmwarePlugin * firmwarePluginForAutopilot(MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType)=0
FirmwarePluginManager is a singleton which is used to return the correct FirmwarePlugin for a MAV_AUT...