QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
MAVLinkEventManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QMap>
4#include <QtCore/QObject>
5#include <QtCore/QSharedPointer>
6#include <QtCore/QString>
7
8#include <cstdint>
9#include <memory>
10
11#include "QGCMAVLinkTypes.h"
12
13class EventHandler;
15class Vehicle;
16
17namespace events::parser {
18class ParsedEvent;
19}
20
23
24class MAVLinkEventManager : public QObject
25{
26 Q_OBJECT
27
28public:
29 explicit MAVLinkEventManager(Vehicle *vehicle);
31
33
36 void handleEventMessage(const mavlink_message_t &message);
37
40 void setMetadata(uint8_t compid, const QString &metadataJsonFileName);
41
44 bool healthAndArmingChecksSupported(uint8_t compid) const;
45
46signals:
49 void statusTextMessageFromEvent(uint8_t compid, int severity, const QString &text, const QString &description);
50
51private:
52 EventHandler &_eventHandlerForCompId(uint8_t compid);
53 void _handleEvent(uint8_t comp_id, std::unique_ptr<events::parser::ParsedEvent> event);
54 void _updateHealthReport(uint8_t compid);
55
56 Vehicle *_vehicle{nullptr};
57 QMap<uint8_t, QSharedPointer<EventHandler>> _events;
58 std::unique_ptr<HealthAndArmingCheckReport> _healthAndArmingCheckReport;
59};
struct __mavlink_message mavlink_message_t
Drives the MAVLink events protocol for a single component.
Owns per-component EventHandler instances and drives the Health & Arming Check report.
void statusTextMessageFromEvent(uint8_t compid, int severity, const QString &text, const QString &description)
void setMetadata(uint8_t compid, const QString &metadataJsonFileName)
void handleEventMessage(const mavlink_message_t &message)
bool healthAndArmingChecksSupported(uint8_t compid) const
~MAVLinkEventManager() override
HealthAndArmingCheckReport * healthAndArmingCheckReport() const