6 namespace key_collector {
8 static const char *
const TAG =
"key_collector";
11 : progress_trigger_(new
Trigger<
std::string, uint8_t>()),
12 result_trigger_(new
Trigger<
std::string, uint8_t, uint8_t>()),
13 timeout_trigger_(new
Trigger<
std::string, uint8_t>()) {}
23 ESP_LOGCONFIG(TAG,
"Key Collector:");
25 ESP_LOGCONFIG(TAG,
" min length: %d", this->
min_length_);
27 ESP_LOGCONFIG(TAG,
" max length: %d", this->
max_length_);
29 ESP_LOGCONFIG(TAG,
" erase keys '%s'", this->
back_keys_.c_str());
31 ESP_LOGCONFIG(TAG,
" clear keys '%s'", this->
clear_keys_.c_str());
33 ESP_LOGCONFIG(TAG,
" start keys '%s'", this->
start_keys_.c_str());
35 ESP_LOGCONFIG(TAG,
" end keys '%s'", this->
end_keys_.c_str());
39 ESP_LOGCONFIG(TAG,
" allowed keys '%s'", this->
allowed_keys_.c_str());
41 ESP_LOGCONFIG(TAG,
" entry timeout: %0.1f", this->
timeout_ / 1000.0);
60 if (this->
start_keys_.find(key) != std::string::npos) {
66 if (this->
back_keys_.find(key) != std::string::npos) {
73 if (this->
clear_keys_.find(key) != std::string::npos) {
78 if (this->
end_keys_.find(key) != std::string::npos) {
std::string allowed_keys_
void key_pressed_(uint8_t key)
interface for components that provide keypresses
Trigger< std::string, uint8_t > * progress_trigger_
uint32_t IRAM_ATTR HOT millis()
void trigger(Ts... x)
Inform the parent automation that the event has triggered.
void add_on_key_callback(std::function< void(uint8_t)> &&callback)
void set_provider(key_provider::KeyProvider *provider)
Trigger< std::string, uint8_t, uint8_t > * result_trigger_
void dump_config() override
Implementation of SPI Controller mode.
Trigger< std::string, uint8_t > * timeout_trigger_
void clear(bool progress_update=true)
void send_key(uint8_t key)