Implemented first Hangar-Service
Dependencies: CalibrateMagneto QuaternionMath
Fork of SML2 by
Sensor.h
- Committer:
- pvaibhav
- Date:
- 2015-04-09
- Revision:
- 21:5a0c9406e119
- Parent:
- 15:4488660e1a3b
- Child:
- 46:fd5a62296b12
File content as of revision 21:5a0c9406e119:
#ifndef _H_SENSOR_H #define _H_SENSOR_H #include "Vector3.h" /// Base class for I2C-connected sensors. Defines functionality supported by all sensors. class Sensor { public: /// Defines protocol used to send data back to owner. Derive from this class and use Sensor.setDelegate() to receive sensor updates. class Delegate { public: /// A new sensor data frame, might be called several (hundred) times a second. virtual void sensorUpdate(Vector3 data) {} }; virtual void setDelegate(Delegate &d) { delegate = &d; } /// Power on a sensor and make it ready for use. /// @return true if power-up was successful, false otherwise. virtual bool powerOn() = 0; /// Power off a sensor. This will generally only put the sensor into deep sleep. virtual void powerOff() = 0; virtual void start() = 0; ///< Start continuous data capture. If a delegate is set, its sensorUpdate() method will be called for each data frame. virtual void stop() = 0; ///< Stop capturing data. virtual Vector3 read() = 0; ///< Read and return instantaneous (current) sensor data. No need to start the sensor. Sensor() : delegate(&defaultDelegate) {} protected: Delegate defaultDelegate; Delegate *delegate; }; #endif//_H_SENSOR_H