sensorfw
compass.h
Go to the documentation of this file.
1 
27 #ifndef COMPASS_H
28 #define COMPASS_H
29 
30 #include <QDBusArgument>
31 
33 
37 class Compass : public QObject
38 {
39 public:
40  Q_OBJECT
41 
42  Q_PROPERTY(int degrees READ degrees)
43  Q_PROPERTY(int level READ level)
44 
45 public:
46 
50  Compass() {}
51 
58  Compass(const CompassData& data, bool declinationCorrection = true);
59 
65  Compass(const Compass& data);
66 
73  Compass(const Compass& data, bool declinationCorrection);
74 
79  const CompassData& data() const { return data_; }
80 
85  int degrees() const { return data_.degrees_; }
86 
91  int level() const { return data_.level_; }
92 
98  Compass& operator=(const Compass& origin)
99  {
100  data_ = origin.data();
101  return *this;
102  }
103 
110  bool operator==(const Compass& right) const
111  {
112  CompassData rdata = right.data();
113  return (data_.degrees_ == rdata.degrees_ &&
114  data_.level_ == rdata.level_ &&
115  data_.timestamp_ == rdata.timestamp_);
116  }
117 
118 private:
119  CompassData data_;
120 
121  friend const QDBusArgument &operator>>(const QDBusArgument &argument, Compass& data);
122 };
123 
125 
126 
133 inline QDBusArgument &operator<<(QDBusArgument &argument, const Compass &data)
134 {
135  argument.beginStructure();
136  argument << data.data().timestamp_ << data.data().degrees_ << data.data().rawDegrees_ << data.data().correctedDegrees_ << data.data().level_;
137  argument.endStructure();
138  return argument;
139 }
140 
148 inline const QDBusArgument &operator>>(const QDBusArgument &argument, Compass &data)
149 {
150  argument.beginStructure();
151  argument >> data.data_.timestamp_ >> data.data_.degrees_ >> data.data_.rawDegrees_ >> data.data_.correctedDegrees_ >> data.data_.level_;
152  argument.endStructure();
153  return argument;
154 }
155 
156 #endif // COMPASS_H
int rawDegrees_
Angle to north without declination correction.
Compass()
Default constructor.
Definition: compass.h:50
int level() const
Returns the value for level.
Definition: compass.h:91
Compass & operator=(const Compass &origin)
Assignment operator.
Definition: compass.h:98
const QDBusArgument & operator>>(const QDBusArgument &argument, Compass &data)
Unmarshall Compass data from the D-Bus argument.
Definition: compass.h:148
int correctedDegrees_
Declination corrected angle to north.
quint64 timestamp_
monotonic time (microsec)
Definition: genericdata.h:46
Q_DECLARE_METATYPE(TMatrix)
int level_
Magnetometer calibration level.
Datatypes for different filters.
QObject facade for CompassData.
Definition: compass.h:37
const CompassData & data() const
Returns the contained CompassData.
Definition: compass.h:79
bool operator==(const Compass &right) const
Comparison operator.
Definition: compass.h:110
Datatype for compass measurements.
friend const QDBusArgument & operator>>(const QDBusArgument &argument, Compass &data)
Unmarshall Compass data from the D-Bus argument.
Definition: compass.h:148
int degrees() const
Returns the value for degrees.
Definition: compass.h:85
int degrees_
Angle to north which may be declination corrected or not.