QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
FirmwarePluginFactory.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QList>
4#include <QtCore/QLoggingCategory>
5
6#include "QGCMAVLink.h"
7
9
10Q_DECLARE_LOGGING_CATEGORY(FirmwarePluginFactoryLog)
11
12class FirmwarePluginFactory : public QObject
13{
14 Q_OBJECT
15
16public:
17 explicit FirmwarePluginFactory(QObject *parent = nullptr);
18 virtual ~FirmwarePluginFactory();
19
24 virtual FirmwarePlugin *firmwarePluginForAutopilot(MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType) = 0;
25
27 virtual QList<QGCMAVLink::FirmwareClass_t> supportedFirmwareClasses() const = 0;
28
30 virtual QList<QGCMAVLink::VehicleClass_t> supportedVehicleClasses() const { return QGCMAVLink::allVehicleClasses(); }
31};
32
33/*===========================================================================*/
34
35class FirmwarePluginFactoryRegister : public QObject
36{
37 Q_OBJECT
38
39public:
41
43 void registerPluginFactory(FirmwarePluginFactory *pluginFactory) { _factoryList.append(pluginFactory); }
44
45 QList<FirmwarePluginFactory*> pluginFactories() const { return _factoryList; }
46
47private:
48 QList<FirmwarePluginFactory*> _factoryList;
49};
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
static FirmwarePluginFactoryRegister * instance()
void registerPluginFactory(FirmwarePluginFactory *pluginFactory)
Registers the specified logging category to the system.
QList< FirmwarePluginFactory * > pluginFactories() const
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