sensorfw
rotationsensor.h
Go to the documentation of this file.
27#ifndef ROTATION_SENSOR_CHANNEL_H
28#define ROTATION_SENSOR_CHANNEL_H
29
30#include <QMutex>
31#include "abstractsensor.h"
32#include "abstractchain.h"
33#include "rotationsensor_a.h"
34#include "dataemitter.h"
36
37class Bin;
38template <class TYPE> class BufferReader;
39class FilterBase;
40
45 public AbstractSensorChannel,
46 public DataEmitter<TimedXyzData>
47{
48 Q_OBJECT;
49 Q_PROPERTY(XYZ rotation READ rotation);
50 Q_PROPERTY(bool hasZ READ hasZ);
51
52public:
57 static AbstractSensorChannel* factoryMethod(const QString& id)
58 {
61
62 return sc;
63 }
64
65 XYZ rotation() const
66 {
67 return XYZ(prevRotation_);
68 }
69
70 bool hasZ() const
71 {
72 return compassReader_;
73 }
74
75 virtual unsigned int interval() const;
76 virtual bool setInterval(unsigned int value, int sessionId);
77
78 virtual void removeSession(int sessionId);
79
80 virtual bool downsamplingSupported() const;
81
82public Q_SLOTS:
83 bool start();
84 bool stop();
85
86signals:
91 void dataAvailable(const XYZ& data);
92
93protected:
94 RotationSensorChannel(const QString& id);
96
97private:
98 Bin* filterBin_;
99 Bin* marshallingBin_;
100 AbstractChain* accelerometerChain_;
101 AbstractChain* compassChain_;
102 BufferReader<TimedXyzData>* accelerometerReader_;
103 BufferReader<CompassData>* compassReader_;
104 FilterBase* rotationFilter_;
105 RingBuffer<TimedXyzData>* outputBuffer_;
106 TimedXyzData prevRotation_;
107 TimedXyzDownsampleBuffer downsampleBuffer_;
108 QMutex mutex_;
109
110 void emitData(const TimedXyzData& value);
111};
112
113#endif // ROTATION_SENSOR_CHANNEL_H
Sensor providing device rotation around axes.
virtual bool downsamplingSupported() const
virtual ~RotationSensorChannel()
RotationSensorChannel(const QString &id)
virtual bool setInterval(unsigned int value, int sessionId)
virtual unsigned int interval() const
virtual void removeSession(int sessionId)
static AbstractSensorChannel * factoryMethod(const QString &id)
Factory method for RotationSensorChannel.
void dataAvailable(const XYZ &data)
Sent when new measurement data has become available.
Class for vector type measurement data (timestamp, x, y, z).
Definition: genericdata.h:53
QObject facade for XYZData.
Definition: xyz.h:37
Datatypes for different filters.
D-Bus adaptor for RotationSensor.