QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
Common.h
Go to the documentation of this file.
1#pragma once
2
3#include "Fact.h"
4
5#include <QtCore/QString>
6#include <QtCore/QJsonValue>
7#include <QtCore/QLoggingCategory>
8#include <QtGui/QVector3D>
9
10
11Q_DECLARE_LOGGING_CATEGORY(ActuatorsConfigLog)
12
14
18struct Parameter {
19 enum class DisplayOption {
20 Default,
22 Bitset,
23 };
24
25 QString label{};
26 QString name{};
29 bool advanced{false};
30
31 void parse(const QJsonValue& jsonValue);
32};
33
37class FactBitset : public Fact
38{
39 Q_OBJECT
40public:
41 FactBitset(QObject* parent, Fact* integerFact, int offset);
42
43 virtual ~FactBitset() = default;
44
45private slots:
46 void onIntegerFactChanged();
47 void onThisFactChanged();
48private:
49 Fact* _integerFact{nullptr};
50 const int _offset;
51 bool _ignoreChange{false};
52};
53
57class FactFloatAsBool : public Fact
58{
59 Q_OBJECT
60public:
61 FactFloatAsBool(QObject* parent, Fact* floatFact);
62
63 virtual ~FactFloatAsBool() = default;
64
65private slots:
66 void onFloatFactChanged();
67 void onThisFactChanged();
68private:
69 Fact* _floatFact{nullptr};
70 bool _ignoreChange{false};
71};
72
77{
78public:
79 enum class Operation {
82 GreaterThan, // >
83 GreaterEqual, // >=
84 Equal, // ==
85 NotEqual, // !=
86 LessThan, // <
87 LessEqual // <=
88 };
89
90 Condition() = default;
91
99 Condition(const QString& condition, ParameterManager* parameterManager, const QString& label = QString());
100
101 bool evaluate() const;
102
103 bool hasCondition() const { return _operation != Operation::AlwaysTrue; }
104
105 Fact* fact() const { return _fact; }
106
107private:
108 QString _parameter{};
109 QString _label{};
110 QString _alwaysTrueReason{QStringLiteral("empty/default")};
112 int32_t _value{0};
113 Fact* _fact{nullptr};
114};
115
116
Q_DECLARE_LOGGING_CATEGORY(AndroidSerialLog)
bool hasCondition() const
Definition Common.h:103
bool evaluate() const
Definition Common.cc:176
Fact * fact() const
Definition Common.h:105
Condition()=default
virtual ~FactBitset()=default
virtual ~FactFloatAsBool()=default
A Fact is used to hold a single value within the system.
Definition Fact.h:19
int labelIndexOffset
Definition Common.h:146
ActuatorGeometry(Type type_=Type::Other, int index_=0, QVector3D position_={}, SpinDirection spinDirection_=SpinDirection::Unspecified)
Definition Common.h:140
static Type typeFromStr(const QString &type)
Definition Common.cc:244
RenderOptions renderOptions
Definition Common.h:150
QVector3D position
Definition Common.h:147
SpinDirection spinDirection
Definition Common.h:148
void parse(const QJsonValue &jsonValue)
Definition Common.cc:8
DisplayOption displayOption
Definition Common.h:28
int indexOffset
extra offset to the ${i} index, or bitset shift offset
Definition Common.h:27
DisplayOption
Definition Common.h:19
@ Bitset
integer displayed as boolean (checkbox), where the index defines the bit
@ BoolTrueIfPositive
Show checkbox for float/int value.
QString label
Definition Common.h:25
bool advanced
whether this should only be shown as advanced option
Definition Common.h:29
QString name
vehicle parameter name, this may have an index in the form '${i}'
Definition Common.h:26