sensorfw
alssensor.h
Go to the documentation of this file.
1 
26 #ifndef ALS_SENSOR_CHANNEL_H
27 #define ALS_SENSOR_CHANNEL_H
28 
29 #include <QObject>
30 
31 #include "deviceadaptor.h"
32 #include "abstractsensor.h"
33 #include "alssensor_a.h"
34 #include "dataemitter.h"
36 #include "datatypes/unsigned.h"
37 
38 class Bin;
39 template <class TYPE> class BufferReader;
40 class FilterBase;
41 
42 #ifdef PROVIDE_CONTEXT_INFO
43 #include <ContextProvider>
44 #endif
45 
53  public AbstractSensorChannel,
54  public DataEmitter<TimedUnsigned>
55 {
56  Q_OBJECT;
57  Q_PROPERTY(Unsigned lux READ lux);
58 
59 public:
64  static AbstractSensorChannel* factoryMethod(const QString& id)
65  {
66  ALSSensorChannel* sc = new ALSSensorChannel(id);
68 
69  return sc;
70  }
71 
76  Unsigned lux() const { return previousValue_; }
77 
78 public Q_SLOTS:
79  bool start();
80  bool stop();
81 
82 signals:
87  void ALSChanged(const Unsigned& value);
88 
89 protected:
90  ALSSensorChannel(const QString& id);
91  virtual ~ALSSensorChannel();
92 
93 private:
94  TimedUnsigned previousValue_;
95  Bin* filterBin_;
96  Bin* marshallingBin_;
97  DeviceAdaptor* alsAdaptor_;
98  BufferReader<TimedUnsigned>* alsReader_;
99  RingBuffer<TimedUnsigned>* outputBuffer_;
100 
101  void emitData(const TimedUnsigned& value);
102 
103 #ifdef PROVIDE_CONTEXT_INFO
104  ContextProvider::Service service;
105  ContextProvider::Property isDarkProperty;
106  ContextProvider::Property isBrightProperty;
107  ContextProvider::Group propertyGroup;
108 #endif
109 };
110 
111 #endif // ALS_SENSOR_CHANNEL_H
Unsigned lux() const
Property for accessing the measured value.
Definition: alssensor.h:76
Datatype for unsigned integer value with timestamp.
Definition: timedunsigned.h:34
static AbstractSensorChannel * factoryMethod(const QString &id)
Factory method for ALSSensorChannel.
Definition: alssensor.h:64
void ALSChanged(const Unsigned &value)
Sent when a change in measured data is observed.
QObject facae for TimedUnsigned.
Definition: unsigned.h:36
virtual ~ALSSensorChannel()
QObject based datatype for TimedUnsigned.
ALSSensorChannel(const QString &id)
Sensor for accessing the internal ambient light sensor measurements.
Definition: alssensor.h:52
Datatype for unsigned values.
D-Bus adaptor for ALSSensor.