33#include "../../../SensorBuildOpt.h"
34#if !SENSORLIB_EXCLUDE_BMM150
35#include "../../../bosch/BMM150/bmm150.h"
36#include "../../../platform/comm/ComplexStaticDeviceWithHal.hpp"
37#include "../../MagnetometerBase.hpp"
40static constexpr uint8_t BMM150_DEFAULT_I2C_ADDRESS = 0x10;
41static constexpr uint8_t BMM150_I2C_ADDRESS_CSB_LOW_SDO_HIGH = 0x11;
42static constexpr uint8_t BMM150_I2C_ADDRESS_CSB_HIGH_SDO_LOW = 0x12;
43static constexpr uint8_t BMM150_I2C_ADDRESS_CSB_HIGH_SDO_HIGH = 0x13;
81 bool reset()
override;
139 bool initImpl(uint8_t param)
override;
140 bool updateInterruptStatus();
143 std::unique_ptr<struct bmm150_dev> _dev;
145 struct bmm150_settings _settings;
OperationMode
Enumeration of sensor operation modes.
MagFullScaleRange
Enumeration defining full-scale range settings for the sensor.
MagDownSampleRatio
Enumeration defining down-sample ratios for the sensor.
@ DSR_1
1x down-sample ratio
MagOverSampleRatio
Enumeration defining over-sample ratios for the sensor.
Driver for Bosch BMM150 magnetometer.
bool setOutputDataRate(float odr) override
Set output data rate.
bool readData(MagnetometerData &data) override
Read one magnetometer sample.
bool isDataReady() override
Check if fresh data is ready.
bool setOperationMode(OperationMode mode) override
Set operation mode.
bool setDownsamplingRate(MagDownSampleRatio dsr) override
Set downsampling rate.
bool selfTest() override
Execute BMM150 normal self-test.
bool reset() override
Reset the sensor using external pin and software reset.
bool configMagnetometer(OperationMode mode, MagFullScaleRange range, float odr, MagOverSampleRatio osr, MagDownSampleRatio dsr=MagDownSampleRatio::DSR_1) override
Apply combined magnetometer configuration.
~SensorBMM150()=default
Destroy the BMM150 driver instance.
bool setFullScaleRange(MagFullScaleRange range) override
Set full-scale range.
bool setOversamplingRate(MagOverSampleRatio osr) override
Set oversampling level by mapping to BMM150 XY/Z repetition values.
SensorBMM150()
Construct a BMM150 driver instance.
Structure representing magnetometer data.