ESPHome
2026.3.0-dev
Loading...
Searching...
No Matches
esphome
components
text
text.cpp
Go to the documentation of this file.
1
#include "
text.h
"
2
#include "
esphome/core/defines.h
"
3
#include "
esphome/core/controller_registry.h
"
4
#include "
esphome/core/log.h
"
5
#include <cstring>
6
7
namespace
esphome::text
{
8
9
static
const
char
*
const
TAG
=
"text"
;
10
11
void
Text::publish_state
(
const
std::string &
state
) { this->
publish_state
(state.data(),
state
.size()); }
12
13
void
Text::publish_state
(
const
char
*
state
) { this->
publish_state
(state, strlen(
state
)); }
14
15
void
Text::publish_state
(
const
char
*
state
,
size_t
len
) {
16
this->
set_has_state
(
true
);
17
// Only assign if changed to avoid heap allocation
18
if
(len != this->state.size() || memcmp(
state
, this->state.data(),
len
) != 0) {
19
this->state.assign(
state
,
len
);
20
}
21
if
(this->
traits
.
get_mode
() ==
TEXT_MODE_PASSWORD
) {
22
ESP_LOGD(TAG,
"'%s' >> "
LOG_SECRET(
"'%s'"
), this->
get_name
().c_str(), this->state.
c_str
());
23
}
else
{
24
ESP_LOGD(TAG,
"'%s' >> '%s'"
, this->
get_name
().c_str(), this->state.
c_str
());
25
}
26
this->
state_callback_
.call(this->state);
27
#if defined(USE_TEXT) && defined(USE_CONTROLLER_REGISTRY)
28
ControllerRegistry::notify_text_update
(
this
);
29
#endif
30
}
31
32
void
Text::add_on_state_callback
(std::function<
void
(
const
std::string &)> &&callback) {
33
this->
state_callback_
.add(std::move(callback));
34
}
35
36
}
// namespace esphome::text
esphome::ControllerRegistry::notify_text_update
static void notify_text_update(text::Text *obj)
esphome::EntityBase::get_name
const StringRef & get_name() const
Definition
entity_base.cpp:11
esphome::EntityBase::set_has_state
void set_has_state(bool state)
Definition
entity_base.h:124
esphome::StringRef::c_str
constexpr const char * c_str() const
Definition
string_ref.h:73
esphome::text::Text::state_callback_
LazyCallbackManager< void(const std::string &)> state_callback_
Definition
text.h:46
esphome::text::Text::publish_state
void publish_state(const std::string &state)
Definition
text.cpp:11
esphome::text::Text::state
std::string state
Definition
text.h:23
esphome::text::Text::add_on_state_callback
void add_on_state_callback(std::function< void(const std::string &)> &&callback)
Definition
text.cpp:32
esphome::text::Text::traits
TextTraits traits
Definition
text.h:24
esphome::text::TextTraits::get_mode
TextMode get_mode() const
Definition
text_traits.h:30
controller_registry.h
defines.h
state
bool state
Definition
fan.h:2
log.h
esphome::spi::TAG
const char *const TAG
Definition
spi.cpp:7
esphome::text
Definition
automation.h:7
esphome::text::TEXT_MODE_PASSWORD
@ TEXT_MODE_PASSWORD
Definition
text_traits.h:11
esphome::len
std::string size_t len
Definition
helpers.h:817
text.h
Generated by
1.12.0