Implemented first Hangar-Service

Dependencies:   CalibrateMagneto QuaternionMath

Fork of SML2 by TobyRich GmbH

Magnetometer.h

Committer:
pvaibhav
Date:
2015-03-12
Revision:
11:d21275e60ebb
Parent:
4:e759b8c756da
Child:
12:1632d7391453

File content as of revision 11:d21275e60ebb:

#ifndef _H_MAGNETOMETER_H
#define _H_MAGNETOMETER_H

#include "I2CPeripheral.h"
#include "Sensor.h"

class Magnetometer : public I2CPeripheral, public Sensor {
public:
    Magnetometer(I2C &i2c);
    
    virtual bool powerOn();
    virtual void powerOff();
    virtual void start();
    virtual void stop();

    virtual Vector3 read();
    
private:
    // Calibration data
    int8_t   dig_x1;
    int8_t   dig_y1;
    int8_t   dig_x2;
    int8_t   dig_y2;
    uint16_t dig_z1;
    int16_t  dig_z2;
    int16_t  dig_z3;
    int16_t  dig_z4;
    uint8_t  dig_xy1;
    int8_t   dig_xy2;
    uint16_t dig_xyz1;
    
    // Hard iron cancellation data
    Vector3 sum;
    Vector3 hardIron;
    size_t numSamples;
    
    void readCalibrationData();
};

#endif//_H_MAGNETOMETER_H