ESPHome
2026.2.1
Loading...
Searching...
No Matches
esphome
components
lvgl
number
lvgl_number.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <utility>
4
5
#include "
esphome/components/number/number.h
"
6
#include "
esphome/core/component.h
"
7
#include "
esphome/core/preferences.h
"
8
9
namespace
esphome
{
10
namespace
lvgl {
11
12
class
LVGLNumber
:
public
number::Number
,
public
Component
{
13
public
:
14
LVGLNumber
(std::function<
void
(
float
)> control_lambda, std::function<
float
()> value_lambda, lv_event_code_t event,
15
bool
restore)
16
:
control_lambda_
(std::move(control_lambda)),
17
value_lambda_
(std::move(value_lambda)),
18
event_
(event),
19
restore_
(restore) {}
20
21
void
setup
()
override
{
22
float
value = this->
value_lambda_
();
23
if
(this->
restore_
) {
24
this->
pref_
= this->
make_entity_preference<float>
();
25
if
(this->
pref_
.
load
(&value)) {
26
this->
control_lambda_
(value);
27
}
28
}
29
this->
publish_state
(value);
30
}
31
32
void
on_value
() { this->
publish_
(this->
value_lambda_
()); }
33
34
protected
:
35
void
publish_
(
float
value) {
36
this->
publish_state
(value);
37
if
(this->
restore_
)
38
this->
pref_
.
save
(&value);
39
}
40
void
control
(
float
value)
override
{
41
this->
control_lambda_
(value);
42
this->
publish_
(value);
43
}
44
std::function<void(
float
)>
control_lambda_
;
45
std::function<float()>
value_lambda_
;
46
lv_event_code_t
event_
;
47
bool
restore_
;
48
ESPPreferenceObject
pref_
{};
49
};
50
51
}
// namespace lvgl
52
}
// namespace esphome
esphome::Component
Definition
component.h:84
esphome::ESPPreferenceObject
Definition
preferences.h:16
esphome::ESPPreferenceObject::save
bool save(const T *src)
Definition
preferences.h:21
esphome::ESPPreferenceObject::load
bool load(T *dest)
Definition
preferences.h:27
esphome::EntityBase::make_entity_preference
ESPPreferenceObject make_entity_preference(uint32_t version=0)
Create a preference object for storing this entity's state/settings.
Definition
entity_base.h:163
esphome::lvgl::LVGLNumber
Definition
lvgl_number.h:12
esphome::lvgl::LVGLNumber::value_lambda_
std::function< float()> value_lambda_
Definition
lvgl_number.h:45
esphome::lvgl::LVGLNumber::event_
lv_event_code_t event_
Definition
lvgl_number.h:46
esphome::lvgl::LVGLNumber::LVGLNumber
LVGLNumber(std::function< void(float)> control_lambda, std::function< float()> value_lambda, lv_event_code_t event, bool restore)
Definition
lvgl_number.h:14
esphome::lvgl::LVGLNumber::restore_
bool restore_
Definition
lvgl_number.h:47
esphome::lvgl::LVGLNumber::control
void control(float value) override
Definition
lvgl_number.h:40
esphome::lvgl::LVGLNumber::control_lambda_
std::function< void(float)> control_lambda_
Definition
lvgl_number.h:44
esphome::lvgl::LVGLNumber::pref_
ESPPreferenceObject pref_
Definition
lvgl_number.h:48
esphome::lvgl::LVGLNumber::publish_
void publish_(float value)
Definition
lvgl_number.h:35
esphome::lvgl::LVGLNumber::setup
void setup() override
Definition
lvgl_number.h:21
esphome::lvgl::LVGLNumber::on_value
void on_value()
Definition
lvgl_number.h:32
esphome::number::Number
Base-class for all numbers.
Definition
number.h:29
esphome::number::Number::publish_state
void publish_state(float state)
Definition
number.cpp:22
component.h
preferences.h
esphome
Providing packet encoding functions for exchanging data with a remote host.
Definition
a01nyub.cpp:7
number.h
Generated by
1.12.0