Implemented first Hangar-Service

Dependencies:   CalibrateMagneto QuaternionMath

Fork of SML2 by TobyRich GmbH

Committer:
pvaibhav
Date:
Wed May 06 07:50:02 2015 +0000
Revision:
34:01dec68de3ed
Parent:
32:d37447aec6b4
Child:
46:fd5a62296b12
motor voltage under 0.5V supported, magneto calibration initial values changed for smartplane2, complementary filter added to sensor fusion (default off), dt now sent with fusion parameters.

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 34:01dec68de3ed 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 32:d37447aec6b4 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