ESPHome 2025.9.0-dev
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 void update() override;
34
35 void loop() override;
36
37 void set_signal_rate_limit(float signal_rate_limit) { signal_rate_limit_ = signal_rate_limit; }
38 void set_long_range(bool long_range) { long_range_ = long_range; }
39 void set_timeout_us(uint32_t timeout_us) { this->timeout_us_ = timeout_us; }
40 void set_enable_pin(GPIOPin *enable) { this->enable_pin_ = enable; }
41 void set_timing_budget(uint32_t timing_budget) { this->measurement_timing_budget_us_ = timing_budget; }
42
43 protected:
45 bool set_measurement_timing_budget_(uint32_t budget_us);
49 uint32_t get_macro_period_(uint8_t vcsel_period_pclks);
50
51 uint32_t timeout_mclks_to_microseconds_(uint16_t timeout_period_mclks, uint8_t vcsel_period_pclks);
52 uint32_t timeout_microseconds_to_mclks_(uint32_t timeout_period_us, uint8_t vcsel_period_pclks);
53
54 uint16_t decode_timeout_(uint16_t reg_val);
55 uint16_t encode_timeout_(uint16_t timeout_mclks);
56
57 bool perform_single_ref_calibration_(uint8_t vhv_init_byte);
58
63 bool initiated_read_{false};
66
68 uint16_t timeout_us_{};
69
70 static std::list<VL53L0XSensor *> vl53_sensors; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
71 static bool enable_pin_setup_complete; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
72};
73
74} // namespace vl53l0x
75} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:425
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:59
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)
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
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7