Implemented first Hangar-Service

Dependencies:   CalibrateMagneto QuaternionMath

Fork of SML2 by TobyRich GmbH

Committer:
pvaibhav
Date:
Wed May 27 13:01:43 2015 +0000
Revision:
46:fd5a62296b12
Parent:
34:01dec68de3ed
Code reformatted

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pvaibhav 4:e759b8c756da 1 #ifndef _H_MAGNETOMETER_H
pvaibhav 4:e759b8c756da 2 #define _H_MAGNETOMETER_H
pvaibhav 4:e759b8c756da 3
pvaibhav 4:e759b8c756da 4 #include "I2CPeripheral.h"
pvaibhav 11:d21275e60ebb 5 #include "Sensor.h"
pvaibhav 14:d9fbb3ccd482 6 #include "CalibrateMagneto.h"
pvaibhav 4:e759b8c756da 7
pvaibhav 12:1632d7391453 8 class Magnetometer : public I2CPeripheral, public Sensor
pvaibhav 12:1632d7391453 9 {
pvaibhav 4:e759b8c756da 10 public:
pvaibhav 4:e759b8c756da 11 Magnetometer(I2C &i2c);
pvaibhav 12:1632d7391453 12
pvaibhav 11:d21275e60ebb 13 virtual bool powerOn();
pvaibhav 11:d21275e60ebb 14 virtual void powerOff();
pvaibhav 11:d21275e60ebb 15 virtual void start();
pvaibhav 11:d21275e60ebb 16 virtual void stop();
pvaibhav 11:d21275e60ebb 17
pvaibhav 11:d21275e60ebb 18 virtual Vector3 read();
pvaibhav 12:1632d7391453 19
pvaibhav 12:1632d7391453 20 bool performSelfTest();
pvaibhav 46:fd5a62296b12 21
pvaibhav 34:01dec68de3ed 22 void getCalibration(Vector3 &mins, Vector3 &maxs);
pvaibhav 12:1632d7391453 23
pvaibhav 11:d21275e60ebb 24 private:
pvaibhav 11:d21275e60ebb 25 // Calibration data
pvaibhav 11:d21275e60ebb 26 int8_t dig_x1;
pvaibhav 11:d21275e60ebb 27 int8_t dig_y1;
pvaibhav 11:d21275e60ebb 28 int8_t dig_x2;
pvaibhav 11:d21275e60ebb 29 int8_t dig_y2;
pvaibhav 11:d21275e60ebb 30 uint16_t dig_z1;
pvaibhav 11:d21275e60ebb 31 int16_t dig_z2;
pvaibhav 11:d21275e60ebb 32 int16_t dig_z3;
pvaibhav 11:d21275e60ebb 33 int16_t dig_z4;
pvaibhav 11:d21275e60ebb 34 uint8_t dig_xy1;
pvaibhav 11:d21275e60ebb 35 int8_t dig_xy2;
pvaibhav 11:d21275e60ebb 36 uint16_t dig_xyz1;
pvaibhav 12:1632d7391453 37
pvaibhav 11:d21275e60ebb 38 // Hard iron cancellation data
pvaibhav 14:d9fbb3ccd482 39 CalibrateMagneto calibrator;
pvaibhav 12:1632d7391453 40
pvaibhav 11:d21275e60ebb 41 void readCalibrationData();
pvaibhav 46:fd5a62296b12 42
pvaibhav 32:d37447aec6b4 43 InterruptIn int1;
pvaibhav 32:d37447aec6b4 44 InterruptIn int2;
pvaibhav 4:e759b8c756da 45 };
pvaibhav 4:e759b8c756da 46
pvaibhav 4:e759b8c756da 47 #endif//_H_MAGNETOMETER_H