Implemented first Hangar-Service

Dependencies:   CalibrateMagneto QuaternionMath

Fork of SML2 by TobyRich GmbH

Revision:
8:cba37530d480
Parent:
7:604a8369b801
Child:
12:1632d7391453
--- a/Sensor.h	Tue Feb 17 16:53:50 2015 +0000
+++ b/Sensor.h	Wed Feb 18 15:13:41 2015 +0000
@@ -1,24 +1,16 @@
 #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:
-    /// Base class for sensor data frame. Sensors may derive from this and add their own data fields.
-    class Data {
-    public:
-        int16_t x; ///< x-axis sensor data
-        int16_t y; ///< y-axis sensor data
-        int16_t z; ///< z-axis sensor data
-        int16_t reserved; ///< (reserved, do not use)
-        float timestamp; ///< Timestamp in sec
-    };
-    
     /// 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(Sensor* source, Data frame) = 0;
+        virtual void sensorUpdate(Sensor* source, Vector3 data) = 0;
     };
     
     virtual void setDelegate(Delegate &d) {
@@ -35,11 +27,11 @@
     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 Data read() = 0; ///< Read and return instantaneous (current) sensor data. No need to start the sensor.
+    virtual Vector3 read() = 0; ///< Read and return instantaneous (current) sensor data. No need to start the sensor.
     
 protected:
     /// Derived classes should use this method to pass sensor data to their owner. Delegate existence check is automatically done before dispatching.
-    void sendData(Data frame) {
+    void sendData(Vector3 frame) {
         if (_delegate)
             _delegate->sensorUpdate(this, frame);
     }