Implemented first Hangar-Service

Dependencies:   CalibrateMagneto QuaternionMath

Fork of SML2 by TobyRich GmbH

Magnetometer.h

Committer:
pvaibhav
Date:
2015-03-17
Revision:
14:d9fbb3ccd482
Parent:
12:1632d7391453
Child:
32:d37447aec6b4

File content as of revision 14:d9fbb3ccd482:

#ifndef _H_MAGNETOMETER_H
#define _H_MAGNETOMETER_H

#include "I2CPeripheral.h"
#include "Sensor.h"
#include "CalibrateMagneto.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();

    bool performSelfTest();

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
    CalibrateMagneto calibrator;

    void readCalibrationData();
};

#endif//_H_MAGNETOMETER_H