APM:Libraries
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
AP_Compass_BMM150 Class Reference

#include <AP_Compass_BMM150.h>

Inheritance diagram for AP_Compass_BMM150:
[legend]
Collaboration diagram for AP_Compass_BMM150:
[legend]

Public Member Functions

void read () override
 
- Public Member Functions inherited from AP_Compass_Backend
 AP_Compass_Backend (Compass &compass)
 
virtual ~AP_Compass_Backend (void)
 
virtual void accumulate (void)
 
virtual void handle_mag_msg (Vector3f &mag)
 

Static Public Member Functions

static AP_Compass_Backendprobe (Compass &compass, AP_HAL::OwnPtr< AP_HAL::I2CDevice > dev)
 

Static Public Attributes

static constexpr const char * name = "BMM150"
 

Private Member Functions

 AP_Compass_BMM150 (Compass &compass, AP_HAL::OwnPtr< AP_HAL::Device > dev)
 
bool init ()
 
void _update ()
 
bool _load_trim_values ()
 
int16_t _compensate_xy (int16_t xy, uint32_t rhall, int32_t txy1, int32_t txy2)
 
int16_t _compensate_z (int16_t z, uint32_t rhall)
 

Private Attributes

AP_HAL::OwnPtr< AP_HAL::Device_dev
 
Vector3f _mag_accum
 
uint32_t _accum_count
 
uint8_t _compass_instance
 
struct {
   int8_t   x1
 
   int8_t   y1
 
   int8_t   x2
 
   int8_t   y2
 
   uint16_t   z1
 
   int16_t   z2
 
   int16_t   z3
 
   int16_t   z4
 
   uint8_t   xy1
 
   int8_t   xy2
 
   uint16_t   xyz1
 
_dig
 
uint32_t _last_read_ms
 
AP_HAL::Util::perf_counter_t _perf_err
 

Additional Inherited Members

- Public Types inherited from AP_Compass_Backend
enum  DevTypes {
  DEVTYPE_HMC5883_OLD = 0x01, DEVTYPE_HMC5883 = 0x07, DEVTYPE_LSM303D = 0x02, DEVTYPE_AK8963 = 0x04,
  DEVTYPE_BMM150 = 0x05, DEVTYPE_LSM9DS1 = 0x06, DEVTYPE_LIS3MDL = 0x08, DEVTYPE_AK09916 = 0x09,
  DEVTYPE_IST8310 = 0x0A, DEVTYPE_ICM20948 = 0x0B, DEVTYPE_MMC3416 = 0x0C, DEVTYPE_QMC5883L = 0x0D,
  DEVTYPE_MAG3110 = 0x0E
}
 
- Protected Member Functions inherited from AP_Compass_Backend
void rotate_field (Vector3f &mag, uint8_t instance)
 
void publish_raw_field (const Vector3f &mag, uint8_t instance)
 
void correct_field (Vector3f &mag, uint8_t i)
 
void publish_filtered_field (const Vector3f &mag, uint8_t instance)
 
void set_last_update_usec (uint32_t last_update, uint8_t instance)
 
uint8_t register_compass (void) const
 
void set_dev_id (uint8_t instance, uint32_t dev_id)
 
void set_external (uint8_t instance, bool external)
 
bool is_external (uint8_t instance)
 
void set_rotation (uint8_t instance, enum Rotation rotation)
 
bool field_ok (const Vector3f &field)
 
uint32_t get_error_count () const
 
- Protected Attributes inherited from AP_Compass_Backend
Compass_compass
 
AP_HAL::Semaphore_sem
 

Detailed Description

Definition at line 27 of file AP_Compass_BMM150.h.

Constructor & Destructor Documentation

◆ AP_Compass_BMM150()

AP_Compass_BMM150::AP_Compass_BMM150 ( Compass compass,
AP_HAL::OwnPtr< AP_HAL::Device dev 
)
private

Definition at line 81 of file AP_Compass_BMM150.cpp.

Referenced by probe().

Here is the caller graph for this function:

Member Function Documentation

◆ _compensate_xy()

int16_t AP_Compass_BMM150::_compensate_xy ( int16_t  xy,
uint32_t  rhall,
int32_t  txy1,
int32_t  txy2 
)
private

Definition at line 247 of file AP_Compass_BMM150.cpp.

Referenced by _update().

Here is the caller graph for this function:

◆ _compensate_z()

int16_t AP_Compass_BMM150::_compensate_z ( int16_t  z,
uint32_t  rhall 
)
private

Definition at line 266 of file AP_Compass_BMM150.cpp.

Referenced by _update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _load_trim_values()

bool AP_Compass_BMM150::_load_trim_values ( )
private

Definition at line 88 of file AP_Compass_BMM150.cpp.

Referenced by init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _update()

void AP_Compass_BMM150::_update ( )
private

Definition at line 287 of file AP_Compass_BMM150.cpp.

Referenced by init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ init()

bool AP_Compass_BMM150::init ( void  )
private

Device periodic callback to read data from the sensor.

Definition at line 143 of file AP_Compass_BMM150.cpp.

Referenced by probe().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ probe()

AP_Compass_Backend * AP_Compass_BMM150::probe ( Compass compass,
AP_HAL::OwnPtr< AP_HAL::I2CDevice dev 
)
static

Definition at line 66 of file AP_Compass_BMM150.cpp.

Referenced by Compass::_detect_backends().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ read()

void AP_Compass_BMM150::read ( void  )
overridevirtual

Implements AP_Compass_Backend.

Definition at line 345 of file AP_Compass_BMM150.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ _accum_count

uint32_t AP_Compass_BMM150::_accum_count
private

Definition at line 52 of file AP_Compass_BMM150.h.

Referenced by _update(), and read().

◆ _compass_instance

uint8_t AP_Compass_BMM150::_compass_instance
private

Definition at line 54 of file AP_Compass_BMM150.h.

Referenced by _update(), init(), and read().

◆ _dev

AP_HAL::OwnPtr<AP_HAL::Device> AP_Compass_BMM150::_dev
private

Definition at line 49 of file AP_Compass_BMM150.h.

Referenced by _load_trim_values(), _update(), and init().

◆ _dig

struct { ... } AP_Compass_BMM150::_dig

◆ _last_read_ms

uint32_t AP_Compass_BMM150::_last_read_ms
private

Definition at line 70 of file AP_Compass_BMM150.h.

Referenced by _update(), and init().

◆ _mag_accum

Vector3f AP_Compass_BMM150::_mag_accum
private

Definition at line 51 of file AP_Compass_BMM150.h.

Referenced by _update(), and read().

◆ _perf_err

AP_HAL::Util::perf_counter_t AP_Compass_BMM150::_perf_err
private

Definition at line 71 of file AP_Compass_BMM150.h.

Referenced by _update(), and init().

◆ name

constexpr const char* AP_Compass_BMM150::name = "BMM150"
static

Definition at line 35 of file AP_Compass_BMM150.h.

Referenced by Compass::_detect_backends().

◆ x1

int8_t AP_Compass_BMM150::x1

Definition at line 57 of file AP_Compass_BMM150.h.

Referenced by _update().

◆ x2

int8_t AP_Compass_BMM150::x2

Definition at line 59 of file AP_Compass_BMM150.h.

◆ xy1

uint8_t AP_Compass_BMM150::xy1

Definition at line 65 of file AP_Compass_BMM150.h.

◆ xy2

int8_t AP_Compass_BMM150::xy2

Definition at line 66 of file AP_Compass_BMM150.h.

◆ xyz1

uint16_t AP_Compass_BMM150::xyz1

Definition at line 67 of file AP_Compass_BMM150.h.

◆ y1

int8_t AP_Compass_BMM150::y1

Definition at line 58 of file AP_Compass_BMM150.h.

◆ y2

int8_t AP_Compass_BMM150::y2

Definition at line 60 of file AP_Compass_BMM150.h.

◆ z1

uint16_t AP_Compass_BMM150::z1

Definition at line 61 of file AP_Compass_BMM150.h.

◆ z2

int16_t AP_Compass_BMM150::z2

Definition at line 62 of file AP_Compass_BMM150.h.

◆ z3

int16_t AP_Compass_BMM150::z3

Definition at line 63 of file AP_Compass_BMM150.h.

◆ z4

int16_t AP_Compass_BMM150::z4

Definition at line 64 of file AP_Compass_BMM150.h.


The documentation for this class was generated from the following files: