#ifndef COMPASSSENSORDUMMY_H #define COMPASSSENSORDUMMY_H #include "../CompassSensor.h" #include "RandomSensor.h" #include class CompassSensorDummy : public RandomSensor { private: std::thread thread; /** hidden ctor */ CompassSensorDummy() : RandomSensor(Timestamp::fromMS(100)) { ; } public: /** singleton access */ static CompassSensorDummy& get() { static CompassSensorDummy compass; return compass; } protected: std::minstd_rand gen; std::uniform_real_distribution distNoise = std::uniform_real_distribution(-0.07, +0.07); CompassData getRandomEntry() override { const Timestamp ts = Timestamp::fromRunningTime(); const float azimuth = 0 + std::sin(ts.sec()) * 0.5 + distNoise(gen); return CompassData(azimuth); } }; #endif // COMPASSSENSORDUMMY_H