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 <QtGui/QVector3D>
8
10
14struct Parameter {
15 enum class DisplayOption {
16 Default,
18 Bitset,
19 };
20
21 QString label{};
22 QString name{};
25 bool advanced{false};
26
27 void parse(const QJsonValue& jsonValue);
28};
29
33class FactBitset : public Fact
34{
35 Q_OBJECT
36public:
37 FactBitset(QObject* parent, Fact* integerFact, int offset);
38
39 virtual ~FactBitset() = default;
40
41private slots:
42 void onIntegerFactChanged();
43 void onThisFactChanged();
44private:
45 Fact* _integerFact{nullptr};
46 const int _offset;
47 bool _ignoreChange{false};
48};
49
53class FactFloatAsBool : public Fact
54{
55 Q_OBJECT
56public:
57 FactFloatAsBool(QObject* parent, Fact* floatFact);
58
59 virtual ~FactFloatAsBool() = default;
60
61private slots:
62 void onFloatFactChanged();
63 void onThisFactChanged();
64private:
65 Fact* _floatFact{nullptr};
66 bool _ignoreChange{false};
67};
68
73{
74public:
75 enum class Operation {
78 GreaterThan, // >
79 GreaterEqual, // >=
80 Equal, // ==
81 NotEqual, // !=
82 LessThan, // <
83 LessEqual // <=
84 };
85
86 Condition() = default;
87
95 Condition(const QString& condition, ParameterManager* parameterManager, const QString& label = QString());
96
97 bool evaluate() const;
98
99 bool hasCondition() const { return _operation != Operation::AlwaysTrue; }
100
101 Fact* fact() const { return _fact; }
102
103private:
104 QString _parameter{};
105 QString _label{};
106 QString _alwaysTrueReason{QStringLiteral("empty/default")};
108 int32_t _value{0};
109 Fact* _fact{nullptr};
110};
111
112
bool hasCondition() const
Definition Common.h:99
bool evaluate() const
Definition Common.cc:176
Fact * fact() const
Definition Common.h:101
Condition()=default
virtual ~FactBitset()=default
virtual ~FactFloatAsBool()=default
A Fact is used to hold a single value within the system.
Definition Fact.h:17
int labelIndexOffset
Definition Common.h:142
ActuatorGeometry(Type type_=Type::Other, int index_=0, QVector3D position_={}, SpinDirection spinDirection_=SpinDirection::Unspecified)
Definition Common.h:136
static Type typeFromStr(const QString &type)
Definition Common.cc:244
RenderOptions renderOptions
Definition Common.h:146
QVector3D position
Definition Common.h:143
SpinDirection spinDirection
Definition Common.h:144
void parse(const QJsonValue &jsonValue)
Definition Common.cc:8
DisplayOption displayOption
Definition Common.h:24
int indexOffset
extra offset to the ${i} index, or bitset shift offset
Definition Common.h:23
DisplayOption
Definition Common.h:15
@ Bitset
integer displayed as boolean (checkbox), where the index defines the bit
@ BoolTrueIfPositive
Show checkbox for float/int value.
QString label
Definition Common.h:21
bool advanced
whether this should only be shown as advanced option
Definition Common.h:25
QString name
vehicle parameter name, this may have an index in the form '${i}'
Definition Common.h:22