Implemented first Hangar-Service

Dependencies:   CalibrateMagneto QuaternionMath

Fork of SML2 by TobyRich GmbH

Committer:
pvaibhav
Date:
Mon May 04 15:16:57 2015 +0000
Revision:
32:d37447aec6b4
Parent:
14:d9fbb3ccd482
Child:
34:01dec68de3ed
Interrupt lines added to all sensors and motor driver, power aware I2C subclass added (currently doesn't do anything)

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 12:1632d7391453 21
pvaibhav 11:d21275e60ebb 22 private:
pvaibhav 11:d21275e60ebb 23 // Calibration data
pvaibhav 11:d21275e60ebb 24 int8_t dig_x1;
pvaibhav 11:d21275e60ebb 25 int8_t dig_y1;
pvaibhav 11:d21275e60ebb 26 int8_t dig_x2;
pvaibhav 11:d21275e60ebb 27 int8_t dig_y2;
pvaibhav 11:d21275e60ebb 28 uint16_t dig_z1;
pvaibhav 11:d21275e60ebb 29 int16_t dig_z2;
pvaibhav 11:d21275e60ebb 30 int16_t dig_z3;
pvaibhav 11:d21275e60ebb 31 int16_t dig_z4;
pvaibhav 11:d21275e60ebb 32 uint8_t dig_xy1;
pvaibhav 11:d21275e60ebb 33 int8_t dig_xy2;
pvaibhav 11:d21275e60ebb 34 uint16_t dig_xyz1;
pvaibhav 12:1632d7391453 35
pvaibhav 11:d21275e60ebb 36 // Hard iron cancellation data
pvaibhav 14:d9fbb3ccd482 37 CalibrateMagneto calibrator;
pvaibhav 12:1632d7391453 38
pvaibhav 11:d21275e60ebb 39 void readCalibrationData();
pvaibhav 32:d37447aec6b4 40
pvaibhav 32:d37447aec6b4 41 InterruptIn int1;
pvaibhav 32:d37447aec6b4 42 InterruptIn int2;
pvaibhav 4:e759b8c756da 43 };
pvaibhav 4:e759b8c756da 44
pvaibhav 4:e759b8c756da 45 #endif//_H_MAGNETOMETER_H