Implemented first Hangar-Service

Dependencies:   CalibrateMagneto QuaternionMath

Fork of SML2 by TobyRich GmbH

Revision:
44:5483079fa156
Parent:
43:6251c0169f4f
Child:
45:9cd917ed413a
--- a/SensorFusion.h	Wed May 27 11:45:00 2015 +0000
+++ b/SensorFusion.h	Fri May 29 12:21:31 2015 +0000
@@ -21,7 +21,14 @@
 
     virtual bool start() { return false; }
     virtual void stop() {}
-
+    
+    /* Calibrates the sensors: This needs to be separated out later for 
+       gyro and magneto because gyro need the plane to be at rest, while
+       magneto needs it to be in motion
+    */
+    virtual void calibrate() = 0;
+    virtual void reset() = 0;
+    bool isGyroCalibrated() = 0;
 protected:
     // protected ctor so that base class cannot be instantiated directly
     SensorFusion() : delegate(&defaultDelegate), q(1, 0, 0, 0) {}
@@ -37,7 +44,10 @@
     virtual void sensorUpdate(Vector3 gyro_degrees);
     virtual bool start();
     virtual void stop();
-    
+    virtual void calibrate();
+    virtual void reset();
+    virtual bool isGyroCalibrated();
+
 protected:
     Accelerometer   accel;
     Gyroscope       gyro;
@@ -57,7 +67,7 @@
     virtual void sensorUpdate(Vector3 gyro_degrees);
     virtual bool start();
     virtual void stop();
-    
+
 protected:
     Magnetometer    magneto;
     void updateFilter(float ax, float ay, float az, float gx, float gy, float gz, float mx, float my, float mz);