86PROGMEM_STRING_TABLE(MeasRateStrings,
"1Hz",
"2Hz",
"4Hz",
"8Hz",
"16Hz",
"32Hz",
"64Hz",
"128Hz",
"1.5625Hz",
87 "3.125Hz",
"6.25Hz",
"12.5Hz",
"25Hz",
"50Hz",
"100Hz",
"200Hz");
90inline static const LogString *oversampling_to_str(
const Oversampling oversampling) {
91 return OversamplingStrings::get_log_str(
static_cast<uint8_t
>(oversampling), OversamplingStrings::LAST_INDEX);
93inline static const LogString *meas_rate_to_str(
SampleRate rate) {
94 return MeasRateStrings::get_log_str(
static_cast<uint8_t
>(rate), MeasRateStrings::LAST_INDEX);
103 void setup()
override;
154 bool interrupt_fifo =
false,
bool interrupt_tmp =
false,
155 bool interrupt_prs =
false,
bool enable_fifo =
false,
bool spi_3wire =
false);
This class simplifies creating components that periodically check a state.
Base-class for all sensors.
void set_pressure_sample_rate_config(SampleRate rate)
void set_temperature_oversampling_config(Oversampling temperature_oversampling)
void set_temperature_sample_rate_config(SampleRate rate)
union esphome::spa06_base::SPA06Component::@159 reset_
uint16_t conversion_time_
struct esphome::spa06_base::SPA06Component::@154::@161 bit
union esphome::spa06_base::SPA06Component::@155 meas_
virtual bool spa_write_bytes(uint8_t reg, uint8_t *data, size_t len)=0
Oversampling temperature_oversampling_
Oversampling pressure_oversampling_
union esphome::spa06_base::SPA06Component::@160 prod_id_
union esphome::spa06_base::SPA06Component::@156 int_status_
union esphome::spa06_base::SPA06Component::@157 cfg_
virtual bool spa_read_bytes(uint8_t reg, uint8_t *data, size_t len)=0
SampleRate temperature_rate_
union esphome::spa06_base::SPA06Component::@154 pt_meas_cfg_
void set_temperature_sensor(sensor::Sensor *temperature_sensor)
bool write_measurement_settings_(MeasCrtl crtl)
sensor::Sensor * pressure_sensor_
float convert_temperature_(const float &t_raw_sc)
bool read_temperature_(float &temperature, float &t_raw_sc)
virtual bool spa_write_byte(uint8_t reg, uint8_t data)=0
bool read_temperature_and_pressure_(float &temperature, float &pressure, float &t_raw_sc)
SampleRate pressure_rate_
bool write_temperature_settings_(Oversampling oversampling, SampleRate rate)
union esphome::spa06_base::SPA06Component::@158 fifo_sts_
virtual void protocol_reset()
void dump_config() override
sensor::Sensor * temperature_sensor_
bool write_pressure_settings_(Oversampling oversampling, SampleRate rate)
virtual bool spa_read_byte(uint8_t reg, uint8_t *data)=0
bool write_communication_settings_(bool pressure_shift, bool temperature_shift, bool interrupt_hl=false, bool interrupt_fifo=false, bool interrupt_tmp=false, bool interrupt_prs=false, bool enable_fifo=false, bool spi_3wire=false)
bool write_sensor_settings_(Oversampling oversampling, SampleRate rate, uint8_t reg)
float convert_pressure_(const float &p_raw_sc, const float &t_raw_sc)
bool read_coefficients_()
void set_pressure_oversampling_config(Oversampling pressure_oversampling)
void set_conversion_time(uint16_t conversion_time)
void set_pressure_sensor(sensor::Sensor *pressure_sensor)
constexpr size_t SPA06_COEF_LEN
uint32_t oversampling_to_scale_factor(const Oversampling oversampling)
constexpr uint8_t SPA06_SOFT_RESET
constexpr size_t SPA06_MEAS_LEN
constexpr uint32_t OVERSAMPLING_K_LUT[8]
PROGMEM_STRING_TABLE(MeasRateStrings, "1Hz", "2Hz", "4Hz", "8Hz", "16Hz", "32Hz", "64Hz", "128Hz", "1.5625Hz", "3.125Hz", "6.25Hz", "12.5Hz", "25Hz", "50Hz", "100Hz", "200Hz")