Implemented first Hangar-Service
Dependencies: CalibrateMagneto QuaternionMath
Fork of SML2 by
Magnetometer.h@12:1632d7391453, 2015-03-13 (annotated)
- Committer:
- pvaibhav
- Date:
- Fri Mar 13 09:12:56 2015 +0000
- Revision:
- 12:1632d7391453
- Parent:
- 11:d21275e60ebb
- Child:
- 14:d9fbb3ccd482
Code reformatting
Who changed what in which revision?
User | Revision | Line number | New 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 | 4:e759b8c756da | 6 | |
pvaibhav | 12:1632d7391453 | 7 | class Magnetometer : public I2CPeripheral, public Sensor |
pvaibhav | 12:1632d7391453 | 8 | { |
pvaibhav | 4:e759b8c756da | 9 | public: |
pvaibhav | 4:e759b8c756da | 10 | Magnetometer(I2C &i2c); |
pvaibhav | 12:1632d7391453 | 11 | |
pvaibhav | 11:d21275e60ebb | 12 | virtual bool powerOn(); |
pvaibhav | 11:d21275e60ebb | 13 | virtual void powerOff(); |
pvaibhav | 11:d21275e60ebb | 14 | virtual void start(); |
pvaibhav | 11:d21275e60ebb | 15 | virtual void stop(); |
pvaibhav | 11:d21275e60ebb | 16 | |
pvaibhav | 11:d21275e60ebb | 17 | virtual Vector3 read(); |
pvaibhav | 12:1632d7391453 | 18 | |
pvaibhav | 12:1632d7391453 | 19 | bool performSelfTest(); |
pvaibhav | 12:1632d7391453 | 20 | |
pvaibhav | 11:d21275e60ebb | 21 | private: |
pvaibhav | 11:d21275e60ebb | 22 | // Calibration data |
pvaibhav | 11:d21275e60ebb | 23 | int8_t dig_x1; |
pvaibhav | 11:d21275e60ebb | 24 | int8_t dig_y1; |
pvaibhav | 11:d21275e60ebb | 25 | int8_t dig_x2; |
pvaibhav | 11:d21275e60ebb | 26 | int8_t dig_y2; |
pvaibhav | 11:d21275e60ebb | 27 | uint16_t dig_z1; |
pvaibhav | 11:d21275e60ebb | 28 | int16_t dig_z2; |
pvaibhav | 11:d21275e60ebb | 29 | int16_t dig_z3; |
pvaibhav | 11:d21275e60ebb | 30 | int16_t dig_z4; |
pvaibhav | 11:d21275e60ebb | 31 | uint8_t dig_xy1; |
pvaibhav | 11:d21275e60ebb | 32 | int8_t dig_xy2; |
pvaibhav | 11:d21275e60ebb | 33 | uint16_t dig_xyz1; |
pvaibhav | 12:1632d7391453 | 34 | |
pvaibhav | 11:d21275e60ebb | 35 | // Hard iron cancellation data |
pvaibhav | 11:d21275e60ebb | 36 | Vector3 sum; |
pvaibhav | 11:d21275e60ebb | 37 | Vector3 hardIron; |
pvaibhav | 11:d21275e60ebb | 38 | size_t numSamples; |
pvaibhav | 12:1632d7391453 | 39 | |
pvaibhav | 11:d21275e60ebb | 40 | void readCalibrationData(); |
pvaibhav | 4:e759b8c756da | 41 | }; |
pvaibhav | 4:e759b8c756da | 42 | |
pvaibhav | 4:e759b8c756da | 43 | #endif//_H_MAGNETOMETER_H |