Implemented first Hangar-Service
Dependencies: CalibrateMagneto QuaternionMath
Fork of SML2 by
Magnetometer.h@34:01dec68de3ed, 2015-05-06 (annotated)
- 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?
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 | 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 |