initial version

This commit is contained in:
2016-07-15 15:00:49 +02:00
parent 888b4f8cc5
commit 43148f4d54
19 changed files with 837 additions and 0 deletions

50
sensors/Sensor.h Normal file
View File

@@ -0,0 +1,50 @@
#ifndef SENSOR_H
#define SENSOR_H
#include <vector>
#include <QObject>
/** listen for sensor events */
template <typename T> class SensorListener {
public:
/** incoming sensor data */
virtual void onSensorData(const T& data) = 0;
};
/** base-class for all sensors */
template <typename T> class Sensor {
private:
std::vector<SensorListener<T>*> listeners;
public:
/** start this sensor */
virtual void start() = 0;
/** stop this sensor */
virtual void stop() = 0;
/** add the given listener to the sensor */
void addListener(SensorListener<T>* l) {
listeners.push_back(l);
}
protected:
/** inform all attached listeners */
void informListeners(const T& sensorData) const {
for (SensorListener<T>* l : listeners) {
l->onSensorData(sensorData);
}
}
};
#endif // SENSOR_H