This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
YASMIN/sensors/SensorFactory.h
kazu 075d8bb633 a lot!!! of changes
added main menu
added debug display
many debug widgets for plotting live data
worked on android live sensors
added offline-data sensor feeding
some dummy data sensors
worked on the map display
added ui debug for grid-points, particles and weights
added a cool dude to display the estimation
added real filtering based on the Indoor components
c++11 fixes for android compilation
online and offline filtering support
new resampling technique for testing
map loading via dialog
2016-09-16 19:30:04 +02:00

81 lines
1.8 KiB
C++

#ifndef SENSORFACTORY_H
#define SENSORFACTORY_H
#include "Sensor.h"
#include "WiFiSensor.h"
#include "dummy/WiFiSensorDummy.h"
#include "linux/WiFiSensorLinux.h"
#include "android/WiFiSensorAndroid.h"
#include "AccelerometerSensor.h"
#include "dummy/AccelerometerSensorDummy.h"
#include "android/AccelerometerSensorAndroid.h"
#include "GyroscopeSensor.h"
#include "android/GyroscopeSensorAndroid.h"
#include "dummy/GyroscopeSensorDummy.h"
#include "BarometerSensor.h"
#include "android/BarometerSensorAndroid.h"
#include "dummy/BarometerSensorDummy.h"
#include "StepSensor.h"
#include "TurnSensor.h"
class SensorFactory {
private:
/** this one is a dirty hack, as static class member variables do not work header-only */
static SensorFactory** getPtr() {
static SensorFactory* ptr = nullptr;
return &ptr;
}
public:
/** set the to-be-used sensor-fatory */
static void set(SensorFactory* fac) {
Assert::isNull(*getPtr(), "set() was already called. currentely this is not intended");
*getPtr() = fac;
}
/** get the currently configured sensory factory */
static SensorFactory& get() {
Assert::isNotNull(*getPtr(), "call set() first to set an actual factory instance!");
return **getPtr();
}
public:
/** get the WiFi sensor */
virtual WiFiSensor& getWiFi() = 0;
/** get the Accelerometer sensor */
virtual AccelerometerSensor& getAccelerometer() = 0;
/** get the Gyroscope sensor */
virtual GyroscopeSensor& getGyroscope() = 0;
/** get the Barometer sensor */
virtual BarometerSensor& getBarometer() = 0;
/** get the Step sensor */
StepSensor& getSteps() {
static StepSensor steps(getAccelerometer());
return steps;
}
/** get the Turn sensor */
TurnSensor& getTurns() {
static TurnSensor turns(getAccelerometer(), getGyroscope());
return turns;
}
};
#endif // SENSORFACTORY_H