ESPHome  2024.12.2
Data Structures | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
esphome::bmp3xx_base::BMP3XXComponent Class Referenceabstract

This class implements support for the BMP3XX Temperature+Pressure sensor. More...

#include <bmp3xx_base.h>

Inheritance diagram for esphome::bmp3xx_base::BMP3XXComponent:
esphome::PollingComponent esphome::Component esphome::bmp3xx_i2c::BMP3XXI2CComponent esphome::bmp3xx_spi::BMP3XXSPIComponent

Data Structures

struct  FloatParams
 

Public Member Functions

void setup () override
 
void dump_config () override
 
float get_setup_priority () const override
 
void update () override
 
void set_temperature_sensor (sensor::Sensor *temperature_sensor)
 
void set_pressure_sensor (sensor::Sensor *pressure_sensor)
 
void set_temperature_oversampling_config (Oversampling temperature_oversampling)
 Set the oversampling value for the temperature sensor. Default is 16x. More...
 
void set_pressure_oversampling_config (Oversampling pressure_oversampling)
 Set the oversampling value for the pressure sensor. Default is 16x. More...
 
void set_iir_filter_config (IIRFilter iir_filter)
 Set the IIR Filter used to increase accuracy, defaults to no IIR Filter. More...
 
uint8_t reset ()
 Soft reset the sensor. More...
 
bool start_normal_conversion ()
 Start continuous measurement in NORMAL_MODE. More...
 
bool start_forced_conversion ()
 Start a one shot measurement in FORCED_MODE. More...
 
bool stop_conversion ()
 Stop the conversion and return to SLEEP_MODE. More...
 
bool set_pressure_oversampling (Oversampling pressure_oversampling)
 Set the pressure oversampling: OFF, X1, X2, X4, X8, X16, X32. More...
 
bool set_temperature_oversampling (Oversampling temperature_oversampling)
 Set the temperature oversampling: OFF, X1, X2, X4, X8, X16, X32. More...
 
bool set_iir_filter (IIRFilter iir_filter)
 Set the IIR filter setting: OFF, 2, 3, 8, 16, 32. More...
 
bool get_temperature (float &temperature)
 Get a temperature measurement. More...
 
bool get_pressure (float &pressure)
 Get a pressure measurement. More...
 
bool get_measurements (float &temperature, float &pressure)
 Get a temperature and pressure measurement. More...
 
bool get_measurement ()
 Get a temperature and pressure measurement. More...
 
bool set_mode (OperationMode mode)
 Set the barometer mode. More...
 
bool set_oversampling_register (Oversampling pressure_oversampling, Oversampling temperature_oversampling)
 Set the BMP388 oversampling register. More...
 
bool data_ready ()
 Checks if a measurement is ready. More...
 
- Public Member Functions inherited from esphome::PollingComponent
 PollingComponent ()
 
 PollingComponent (uint32_t update_interval)
 Initialize this polling component with the given update interval in ms. More...
 
virtual void set_update_interval (uint32_t update_interval)
 Manually set the update interval in ms for this polling object. More...
 
void call_setup () override
 
virtual uint32_t get_update_interval () const
 Get the update interval in ms of this sensor. More...
 
void start_poller ()
 
void stop_poller ()
 
- Public Member Functions inherited from esphome::Component
virtual void loop ()
 This method will be called repeatedly. More...
 
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop(). More...
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
uint32_t get_component_state () const
 
virtual void mark_failed ()
 Mark this component as failed. More...
 
bool is_failed () const
 
bool is_ready () const
 
virtual bool can_proceed ()
 
bool status_has_warning () const
 
bool status_has_error () const
 
void status_set_warning (const char *message="unspecified")
 
void status_set_error (const char *message="unspecified")
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const std::string &name, uint32_t length=5000)
 
void status_momentary_error (const std::string &name, uint32_t length=5000)
 
bool has_overridden_loop () const
 
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages. More...
 
const char * get_component_source () const
 Get the integration where this component was declared as a string. More...
 

Protected Types

enum  ErrorCode {
  NONE = 0, ERROR_COMMUNICATION_FAILED, ERROR_WRONG_CHIP_ID, ERROR_SENSOR_STATUS,
  ERROR_SENSOR_RESET
}
 

Protected Member Functions

struct {
   uint16_t   param_T1
 
   uint16_t   param_T2
 
   int8_t   param_T3
 
   int16_t   param_P1
 
   int16_t   param_P2
 
   int8_t   param_P3
 
   int8_t   param_P4
 
   uint16_t   param_P5
 
   uint16_t   param_P6
 
   int8_t   param_P7
 
   int8_t   param_P8
 
   int16_t   param_P9
 
   int8_t   param_P10
 
   int8_t   param_P11
 
__attribute__ ((packed)) compensation_params_
 
float bmp388_compensate_temperature_ (float uncomp_temp)
 
float bmp388_compensate_pressure_ (float uncomp_press, float t_lin)
 
virtual bool read_byte (uint8_t a_register, uint8_t *data)=0
 
virtual bool write_byte (uint8_t a_register, uint8_t data)=0
 
virtual bool read_bytes (uint8_t a_register, uint8_t *data, size_t len)=0
 
virtual bool write_bytes (uint8_t a_register, uint8_t *data, size_t len)=0
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_dump_config ()
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name. More...
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function. More...
 
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name. More...
 
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 
bool cancel_retry (const std::string &name)
 Cancel a retry function. More...
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name. More...
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function. More...
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty. More...
 

Protected Attributes

Oversampling temperature_oversampling_ {OVERSAMPLING_X16}
 
Oversampling pressure_oversampling_ {OVERSAMPLING_X16}
 
IIRFilter iir_filter_ {IIR_FILTER_OFF}
 
OperationMode operation_mode_ {FORCED_MODE}
 
sensor::Sensortemperature_sensor_ {nullptr}
 
sensor::Sensorpressure_sensor_ {nullptr}
 
enum esphome::bmp3xx_base::BMP3XXComponent::ErrorCode NONE
 
struct esphome::bmp3xx_base::BMP3XXComponent::FloatParams compensation_float_params_
 
union {
   struct {
      uint8_t   chip_id_nvm: 4
 
      uint8_t   chip_id_fixed: 4
 
   }   bit
 
   uint8_t   reg
 
chip_id_ = {.reg = 0}
 
union {
   struct {
      uint8_t   por_detected: 1
 
   }   bit
 
   uint8_t   reg
 
event_ = {.reg = 0}
 
union {
   struct {
      uint8_t   fwm_int: 1
 
      uint8_t   ffull_int: 1
 
      uint8_t   __pad0__: 1
 
      uint8_t   drdy: 1
 
   }   bit
 
   uint8_t   reg
 
int_status_ = {.reg = 0}
 
union {
   struct {
      uint8_t   press_en: 1
 
      uint8_t   temp_en: 1
 
      uint8_t   __pad0__: 2
 
      uint8_t   mode: 2
 
   }   bit
 
   uint8_t   reg
 
pwr_ctrl_ = {.reg = 0}
 
union {
   struct {
      uint8_t   osr_p: 3
 
      uint8_t   osr_t: 3
 
   }   bit
 
   uint8_t   reg
 
osr_ = {.reg = 0}
 
union {
   struct {
      uint8_t   odr_sel: 5
 
   }   bit
 
   uint8_t   reg
 
odr_ = {.reg = 0}
 
union {
   struct {
      uint8_t   __pad0__: 1
 
      uint8_t   iir_filter: 3
 
   }   bit
 
   uint8_t   reg
 
config_ = {.reg = 0}
 
- Protected Attributes inherited from esphome::PollingComponent
uint32_t update_interval_
 
- Protected Attributes inherited from esphome::Component
uint32_t component_state_ {0x0000}
 State of this component. More...
 
float setup_priority_override_ {NAN}
 
const char * component_source_ {nullptr}
 

Detailed Description

This class implements support for the BMP3XX Temperature+Pressure sensor.

Definition at line 72 of file bmp3xx_base.h.

Member Enumeration Documentation

◆ ErrorCode

Enumerator
NONE 
ERROR_COMMUNICATION_FAILED 
ERROR_WRONG_CHIP_ID 
ERROR_SENSOR_STATUS 
ERROR_SENSOR_RESET 

Definition at line 129 of file bmp3xx_base.h.

Member Function Documentation

◆ __attribute__()

struct esphome::bmp3xx_base::BMP3XXComponent::@24 esphome::bmp3xx_base::BMP3XXComponent::__attribute__ ( (packed)  )
protected

◆ bmp388_compensate_pressure_()

float esphome::bmp3xx_base::BMP3XXComponent::bmp388_compensate_pressure_ ( float  uncomp_press,
float  t_lin 
)
protected

Definition at line 370 of file bmp3xx_base.cpp.

◆ bmp388_compensate_temperature_()

float esphome::bmp3xx_base::BMP3XXComponent::bmp388_compensate_temperature_ ( float  uncomp_temp)
protected

Definition at line 364 of file bmp3xx_base.cpp.

◆ data_ready()

bool esphome::bmp3xx_base::BMP3XXComponent::data_ready ( )

Checks if a measurement is ready.

Definition at line 336 of file bmp3xx_base.cpp.

◆ dump_config()

void esphome::bmp3xx_base::BMP3XXComponent::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 150 of file bmp3xx_base.cpp.

◆ get_measurement()

bool esphome::bmp3xx_base::BMP3XXComponent::get_measurement ( )

Get a temperature and pressure measurement.

◆ get_measurements()

bool esphome::bmp3xx_base::BMP3XXComponent::get_measurements ( float &  temperature,
float &  pressure 
)

Get a temperature and pressure measurement.

Definition at line 296 of file bmp3xx_base.cpp.

◆ get_pressure()

bool esphome::bmp3xx_base::BMP3XXComponent::get_pressure ( float &  pressure)

Get a pressure measurement.

Definition at line 290 of file bmp3xx_base.cpp.

◆ get_setup_priority()

float esphome::bmp3xx_base::BMP3XXComponent::get_setup_priority ( ) const
overridevirtual

Reimplemented from esphome::Component.

Definition at line 183 of file bmp3xx_base.cpp.

◆ get_temperature()

bool esphome::bmp3xx_base::BMP3XXComponent::get_temperature ( float &  temperature)

Get a temperature measurement.

Definition at line 271 of file bmp3xx_base.cpp.

◆ read_byte()

virtual bool esphome::bmp3xx_base::BMP3XXComponent::read_byte ( uint8_t  a_register,
uint8_t *  data 
)
protectedpure virtual

◆ read_bytes()

virtual bool esphome::bmp3xx_base::BMP3XXComponent::read_bytes ( uint8_t  a_register,
uint8_t *  data,
size_t  len 
)
protectedpure virtual

◆ reset()

uint8_t esphome::bmp3xx_base::BMP3XXComponent::reset ( )

Soft reset the sensor.

Definition at line 232 of file bmp3xx_base.cpp.

◆ set_iir_filter()

bool esphome::bmp3xx_base::BMP3XXComponent::set_iir_filter ( IIRFilter  iir_filter)

Set the IIR filter setting: OFF, 2, 3, 8, 16, 32.

Definition at line 265 of file bmp3xx_base.cpp.

◆ set_iir_filter_config()

void esphome::bmp3xx_base::BMP3XXComponent::set_iir_filter_config ( IIRFilter  iir_filter)
inline

Set the IIR Filter used to increase accuracy, defaults to no IIR Filter.

Definition at line 91 of file bmp3xx_base.h.

◆ set_mode()

bool esphome::bmp3xx_base::BMP3XXComponent::set_mode ( OperationMode  mode)

Set the barometer mode.

Definition at line 323 of file bmp3xx_base.cpp.

◆ set_oversampling_register()

bool esphome::bmp3xx_base::BMP3XXComponent::set_oversampling_register ( Oversampling  pressure_oversampling,
Oversampling  temperature_oversampling 
)

Set the BMP388 oversampling register.

Definition at line 329 of file bmp3xx_base.cpp.

◆ set_pressure_oversampling()

bool esphome::bmp3xx_base::BMP3XXComponent::set_pressure_oversampling ( Oversampling  pressure_oversampling)

Set the pressure oversampling: OFF, X1, X2, X4, X8, X16, X32.

Definition at line 253 of file bmp3xx_base.cpp.

◆ set_pressure_oversampling_config()

void esphome::bmp3xx_base::BMP3XXComponent::set_pressure_oversampling_config ( Oversampling  pressure_oversampling)
inline

Set the oversampling value for the pressure sensor. Default is 16x.

Definition at line 87 of file bmp3xx_base.h.

◆ set_pressure_sensor()

void esphome::bmp3xx_base::BMP3XXComponent::set_pressure_sensor ( sensor::Sensor pressure_sensor)
inline

Definition at line 80 of file bmp3xx_base.h.

◆ set_temperature_oversampling()

bool esphome::bmp3xx_base::BMP3XXComponent::set_temperature_oversampling ( Oversampling  temperature_oversampling)

Set the temperature oversampling: OFF, X1, X2, X4, X8, X16, X32.

Definition at line 259 of file bmp3xx_base.cpp.

◆ set_temperature_oversampling_config()

void esphome::bmp3xx_base::BMP3XXComponent::set_temperature_oversampling_config ( Oversampling  temperature_oversampling)
inline

Set the oversampling value for the temperature sensor. Default is 16x.

Definition at line 83 of file bmp3xx_base.h.

◆ set_temperature_sensor()

void esphome::bmp3xx_base::BMP3XXComponent::set_temperature_sensor ( sensor::Sensor temperature_sensor)
inline

Definition at line 79 of file bmp3xx_base.h.

◆ setup()

void esphome::bmp3xx_base::BMP3XXComponent::setup ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 71 of file bmp3xx_base.cpp.

◆ start_forced_conversion()

bool esphome::bmp3xx_base::BMP3XXComponent::start_forced_conversion ( )

Start a one shot measurement in FORCED_MODE.

Definition at line 241 of file bmp3xx_base.cpp.

◆ start_normal_conversion()

bool esphome::bmp3xx_base::BMP3XXComponent::start_normal_conversion ( )

Start continuous measurement in NORMAL_MODE.

◆ stop_conversion()

bool esphome::bmp3xx_base::BMP3XXComponent::stop_conversion ( )

Stop the conversion and return to SLEEP_MODE.

Definition at line 250 of file bmp3xx_base.cpp.

◆ update()

void esphome::bmp3xx_base::BMP3XXComponent::update ( )
overridevirtual

Implements esphome::PollingComponent.

Definition at line 187 of file bmp3xx_base.cpp.

◆ write_byte()

virtual bool esphome::bmp3xx_base::BMP3XXComponent::write_byte ( uint8_t  a_register,
uint8_t  data 
)
protectedpure virtual

◆ write_bytes()

virtual bool esphome::bmp3xx_base::BMP3XXComponent::write_bytes ( uint8_t  a_register,
uint8_t *  data,
size_t  len 
)
protectedpure virtual

Field Documentation

◆ __pad0__

uint8_t esphome::bmp3xx_base::BMP3XXComponent::__pad0__

Definition at line 190 of file bmp3xx_base.h.

◆ bit [1/7]

struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit

◆ bit [2/7]

struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit

◆ bit [3/7]

struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit

◆ bit [4/7]

struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit

◆ bit [5/7]

struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit

◆ bit [6/7]

struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit

◆ bit [7/7]

struct { ... } esphome::bmp3xx_base::BMP3XXComponent::bit

◆ chip_id_

union { ... } esphome::bmp3xx_base::BMP3XXComponent::chip_id_

◆ chip_id_fixed

uint8_t esphome::bmp3xx_base::BMP3XXComponent::chip_id_fixed

Definition at line 174 of file bmp3xx_base.h.

◆ chip_id_nvm

uint8_t esphome::bmp3xx_base::BMP3XXComponent::chip_id_nvm

Definition at line 173 of file bmp3xx_base.h.

◆ compensation_float_params_

struct esphome::bmp3xx_base::BMP3XXComponent::FloatParams esphome::bmp3xx_base::BMP3XXComponent::compensation_float_params_
protected

◆ config_

union { ... } esphome::bmp3xx_base::BMP3XXComponent::config_

◆ drdy

uint8_t esphome::bmp3xx_base::BMP3XXComponent::drdy

Definition at line 191 of file bmp3xx_base.h.

◆ event_

union { ... } esphome::bmp3xx_base::BMP3XXComponent::event_

◆ ffull_int

uint8_t esphome::bmp3xx_base::BMP3XXComponent::ffull_int

Definition at line 189 of file bmp3xx_base.h.

◆ fwm_int

uint8_t esphome::bmp3xx_base::BMP3XXComponent::fwm_int

Definition at line 188 of file bmp3xx_base.h.

◆ iir_filter

uint8_t esphome::bmp3xx_base::BMP3XXComponent::iir_filter

Definition at line 224 of file bmp3xx_base.h.

◆ iir_filter_

IIRFilter esphome::bmp3xx_base::BMP3XXComponent::iir_filter_ {IIR_FILTER_OFF}
protected

Definition at line 125 of file bmp3xx_base.h.

◆ int_status_

union { ... } esphome::bmp3xx_base::BMP3XXComponent::int_status_

◆ mode

uint8_t esphome::bmp3xx_base::BMP3XXComponent::mode

Definition at line 201 of file bmp3xx_base.h.

◆ NONE

enum esphome::bmp3xx_base::BMP3XXComponent::ErrorCode esphome::bmp3xx_base::BMP3XXComponent::NONE
protected

◆ odr_

union { ... } esphome::bmp3xx_base::BMP3XXComponent::odr_

◆ odr_sel

uint8_t esphome::bmp3xx_base::BMP3XXComponent::odr_sel

Definition at line 216 of file bmp3xx_base.h.

◆ operation_mode_

OperationMode esphome::bmp3xx_base::BMP3XXComponent::operation_mode_ {FORCED_MODE}
protected

Definition at line 126 of file bmp3xx_base.h.

◆ osr_

union { ... } esphome::bmp3xx_base::BMP3XXComponent::osr_

◆ osr_p

uint8_t esphome::bmp3xx_base::BMP3XXComponent::osr_p

Definition at line 208 of file bmp3xx_base.h.

◆ osr_t

uint8_t esphome::bmp3xx_base::BMP3XXComponent::osr_t

Definition at line 209 of file bmp3xx_base.h.

◆ param_P1

int16_t esphome::bmp3xx_base::BMP3XXComponent::param_P1

Definition at line 141 of file bmp3xx_base.h.

◆ param_P10

int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P10

Definition at line 150 of file bmp3xx_base.h.

◆ param_P11

int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P11

Definition at line 151 of file bmp3xx_base.h.

◆ param_P2

int16_t esphome::bmp3xx_base::BMP3XXComponent::param_P2

Definition at line 142 of file bmp3xx_base.h.

◆ param_P3

int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P3

Definition at line 143 of file bmp3xx_base.h.

◆ param_P4

int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P4

Definition at line 144 of file bmp3xx_base.h.

◆ param_P5

uint16_t esphome::bmp3xx_base::BMP3XXComponent::param_P5

Definition at line 145 of file bmp3xx_base.h.

◆ param_P6

uint16_t esphome::bmp3xx_base::BMP3XXComponent::param_P6

Definition at line 146 of file bmp3xx_base.h.

◆ param_P7

int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P7

Definition at line 147 of file bmp3xx_base.h.

◆ param_P8

int8_t esphome::bmp3xx_base::BMP3XXComponent::param_P8

Definition at line 148 of file bmp3xx_base.h.

◆ param_P9

int16_t esphome::bmp3xx_base::BMP3XXComponent::param_P9

Definition at line 149 of file bmp3xx_base.h.

◆ param_T1

uint16_t esphome::bmp3xx_base::BMP3XXComponent::param_T1

Definition at line 138 of file bmp3xx_base.h.

◆ param_T2

uint16_t esphome::bmp3xx_base::BMP3XXComponent::param_T2

Definition at line 139 of file bmp3xx_base.h.

◆ param_T3

int8_t esphome::bmp3xx_base::BMP3XXComponent::param_T3

Definition at line 140 of file bmp3xx_base.h.

◆ por_detected

uint8_t esphome::bmp3xx_base::BMP3XXComponent::por_detected

Definition at line 181 of file bmp3xx_base.h.

◆ press_en

uint8_t esphome::bmp3xx_base::BMP3XXComponent::press_en

Definition at line 198 of file bmp3xx_base.h.

◆ pressure_oversampling_

Oversampling esphome::bmp3xx_base::BMP3XXComponent::pressure_oversampling_ {OVERSAMPLING_X16}
protected

Definition at line 124 of file bmp3xx_base.h.

◆ pressure_sensor_

sensor::Sensor* esphome::bmp3xx_base::BMP3XXComponent::pressure_sensor_ {nullptr}
protected

Definition at line 128 of file bmp3xx_base.h.

◆ pwr_ctrl_

union { ... } esphome::bmp3xx_base::BMP3XXComponent::pwr_ctrl_

◆ reg

uint8_t esphome::bmp3xx_base::BMP3XXComponent::reg

Definition at line 176 of file bmp3xx_base.h.

◆ temp_en

uint8_t esphome::bmp3xx_base::BMP3XXComponent::temp_en

Definition at line 199 of file bmp3xx_base.h.

◆ temperature_oversampling_

Oversampling esphome::bmp3xx_base::BMP3XXComponent::temperature_oversampling_ {OVERSAMPLING_X16}
protected

Definition at line 123 of file bmp3xx_base.h.

◆ temperature_sensor_

sensor::Sensor* esphome::bmp3xx_base::BMP3XXComponent::temperature_sensor_ {nullptr}
protected

Definition at line 127 of file bmp3xx_base.h.


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