ESPHome 2025.5.0
Loading...
Searching...
No Matches
vl53l0x_sensor.h
Go to the documentation of this file.
1#pragma once
2
3#include <list>
4
6#include "esphome/core/hal.h"
9
10namespace esphome {
11namespace vl53l0x {
12
16
23
25
27 public:
29
30 void setup() override;
31
32 void dump_config() override;
33 float get_setup_priority() const override { return setup_priority::DATA; }
34 void update() override;
35
36 void loop() override;
37
38 void set_signal_rate_limit(float signal_rate_limit) { signal_rate_limit_ = signal_rate_limit; }
39 void set_long_range(bool long_range) { long_range_ = long_range; }
40 void set_timeout_us(uint32_t timeout_us) { this->timeout_us_ = timeout_us; }
41 void set_enable_pin(GPIOPin *enable) { this->enable_pin_ = enable; }
42 void set_timing_budget(uint32_t timing_budget) { this->measurement_timing_budget_us_ = timing_budget; }
43
44 protected:
46 bool set_measurement_timing_budget_(uint32_t budget_us);
50 uint32_t get_macro_period_(uint8_t vcsel_period_pclks);
51
52 uint32_t timeout_mclks_to_microseconds_(uint16_t timeout_period_mclks, uint8_t vcsel_period_pclks);
53 uint32_t timeout_microseconds_to_mclks_(uint32_t timeout_period_us, uint8_t vcsel_period_pclks);
54
55 uint16_t decode_timeout_(uint16_t reg_val);
56 uint16_t encode_timeout_(uint16_t timeout_mclks);
57
58 bool perform_single_ref_calibration_(uint8_t vhv_init_byte);
59
64 bool initiated_read_{false};
67
69 uint16_t timeout_us_{};
70
71 static std::list<VL53L0XSensor *> vl53_sensors; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
72 static bool enable_pin_setup_complete; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
73};
74
75} // namespace vl53l0x
76} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:301
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:133
Base-class for all sensors.
Definition sensor.h:57
uint32_t timeout_mclks_to_microseconds_(uint16_t timeout_period_mclks, uint8_t vcsel_period_pclks)
void get_sequence_step_enables_(SequenceStepEnables *enables)
void set_timing_budget(uint32_t timing_budget)
void set_enable_pin(GPIOPin *enable)
bool perform_single_ref_calibration_(uint8_t vhv_init_byte)
void set_long_range(bool long_range)
uint16_t decode_timeout_(uint16_t reg_val)
void set_timeout_us(uint32_t timeout_us)
uint32_t timeout_microseconds_to_mclks_(uint32_t timeout_period_us, uint8_t vcsel_period_pclks)
void set_signal_rate_limit(float signal_rate_limit)
static std::list< VL53L0XSensor * > vl53_sensors
void get_sequence_step_timeouts_(SequenceStepEnables const *enables, SequenceStepTimeouts *timeouts)
bool set_measurement_timing_budget_(uint32_t budget_us)
float get_setup_priority() const override
uint32_t get_macro_period_(uint8_t vcsel_period_pclks)
uint8_t get_vcsel_pulse_period_(VcselPeriodType type)
uint16_t encode_timeout_(uint16_t timeout_mclks)
uint8_t type
const float DATA
For components that import data from directly connected sensors like DHT.
Definition component.cpp:19
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7