16 this->
matchers_.push_back({event_name, match_data, match_data_len});
28 bool match_found =
false;
29 for (
const auto &matcher : this->
matchers_) {
30 if (this->
buffer_.size() < matcher.data_len) {
34 if (std::equal(matcher.data, matcher.data + matcher.data_len, this->buffer_.end() - matcher.data_len)) {
35 this->
trigger(matcher.event_name);
void trigger(const char *event_type)
Trigger an event; the type is matched against the configured types by string compare.
bool read_byte(uint8_t *data)
void dump_config() override
std::vector< uint8_t > buffer_
void add_event_matcher(const char *event_name, const uint8_t *match_data, size_t match_data_len)
std::vector< EventMatcher > matchers_
ESPHOME_LOG_TAG(TAG, "uart.button")