QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
EventHandler.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QObject>
4#include <QtCore/QString>
5
6#include <cstdint>
7#include <functional>
8#include <memory>
9
10#include "QGCMAVLinkTypes.h"
11
12namespace events {
13class HealthAndArmingChecks;
14namespace parser {
15class ParsedEvent;
16} // namespace parser
17} // namespace events
18
21class EventHandler : public QObject
22{
23 Q_OBJECT
24
25public:
26 using send_request_event_message_f = std::function<void(const mavlink_request_event_t &msg)>;
27 using handle_event_f = std::function<void(std::unique_ptr<events::parser::ParsedEvent>)>;
28
29 EventHandler(QObject *parent,
30 const QString &profile,
31 handle_event_f handleEventCB,
32 send_request_event_message_f sendRequestCB,
33 uint8_t ourSystemId, uint8_t ourComponentId,
34 uint8_t systemId, uint8_t componentId);
35 ~EventHandler() override;
36
37 void handleEvents(const mavlink_message_t &message);
38 void setMetadata(const QString &metadataJsonFileName);
39
40 const events::HealthAndArmingChecks *healthAndArmingChecks() const;
42
43 int getModeGroup(int32_t customMode) const;
45
46signals:
48
49private:
50 struct Impl;
51 std::unique_ptr<Impl> _impl;
52};
struct __mavlink_message mavlink_message_t
struct __mavlink_request_event_t mavlink_request_event_t
Drives the MAVLink events protocol for a single component.
void handleEvents(const mavlink_message_t &message)
void healthAndArmingChecksUpdated()
void setMetadata(const QString &metadataJsonFileName)
const events::HealthAndArmingChecks * healthAndArmingChecks() const
std::function< void(std::unique_ptr< events::parser::ParsedEvent >)> handle_event_f
int getModeGroup(int32_t customMode) const
std::function< void(const mavlink_request_event_t &msg)> send_request_event_message_f
bool healthAndArmingChecksSupported() const
bool healthAndArmingCheckResultsValid() const
~EventHandler() override