QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
ULogFullHandler.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <QtCore/QHash>
6#include <QtCore/QPointF>
7#include <QtCore/QSet>
8#include <QtCore/QString>
9#include <QtCore/QVector>
10
11#include <map>
12#include <memory>
13#include <string>
14
15#include <ulog_cpp/data_handler_interface.hpp>
16#include <ulog_cpp/messages.hpp>
17
18struct LogParseResult;
19
26class ULogFullHandler final : public ulog_cpp::DataHandlerInterface
27{
28public:
29 explicit ULogFullHandler(LogParseResult &result, const ProgressCallback &progressCallback = nullptr); // progressCallback unused; progress is reported by the caller's chunk loop
30 ~ULogFullHandler() = default;
31
32 void error(const std::string &msg, bool is_recoverable) override;
33 void messageFormat(const ulog_cpp::MessageFormat &message_format) override;
34 void addLoggedMessage(const ulog_cpp::AddLoggedMessage &add_logged_message) override;
35 void headerComplete() override;
36 void data(const ulog_cpp::Data &data) override;
37 void logging(const ulog_cpp::Logging &logging) override;
38 void parameter(const ulog_cpp::Parameter &parameter) override;
39 void parameterDefault(const ulog_cpp::ParameterDefault &parameter_default) override;
40 void dropout(const ulog_cpp::Dropout &dropout) override;
41
42 bool hadFatalError() const { return _hadFatalError; }
43 bool isHeaderComplete() const { return _headerComplete; }
44
47 void finalize();
48
49private:
50 LogParseResult &_result;
51
52 struct SubscriptionInfo {
53 std::shared_ptr<ulog_cpp::MessageFormat> format;
54 uint8_t multiId{0};
55 std::string topicName;
56 };
57
58 std::map<std::string, std::shared_ptr<ulog_cpp::MessageFormat>> _formats;
59 std::map<uint16_t, SubscriptionInfo> _subscriptions;
60 QSet<QString> _fieldSet;
61 QSet<QString> _plottableFieldSet;
62 // Map of parameter name -> default value (system default, from ParameterDefault messages)
63 QHash<QString, double> _paramDefaults;
64 double _lastTimestampSecs{-1.0};
65 bool _hadFatalError{false};
66 bool _headerComplete{false};
67};
std::function< void(float)> ProgressCallback
Error error
Full-scan ULog DataHandlerInterface implementation.
void parameter(const ulog_cpp::Parameter &parameter) override
~ULogFullHandler()=default
bool isHeaderComplete() const
void addLoggedMessage(const ulog_cpp::AddLoggedMessage &add_logged_message) override
void logging(const ulog_cpp::Logging &logging) override
bool hadFatalError() const
void messageFormat(const ulog_cpp::MessageFormat &message_format) override
void parameterDefault(const ulog_cpp::ParameterDefault &parameter_default) override
void data(const ulog_cpp::Data &data) override
void dropout(const ulog_cpp::Dropout &dropout) override
void headerComplete() override