ESPHome  2024.3.1
automation.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "uart.h"
5 
6 #include <vector>
7 
8 namespace esphome {
9 namespace uart {
10 
11 template<typename... Ts> class UARTWriteAction : public Action<Ts...>, public Parented<UARTComponent> {
12  public:
13  void set_data_template(std::function<std::vector<uint8_t>(Ts...)> func) {
14  this->data_func_ = func;
15  this->static_ = false;
16  }
17  void set_data_static(const std::vector<uint8_t> &data) {
18  this->data_static_ = data;
19  this->static_ = true;
20  }
21 
22  void play(Ts... x) override {
23  if (this->static_) {
24  this->parent_->write_array(this->data_static_);
25  } else {
26  auto val = this->data_func_(x...);
27  this->parent_->write_array(val);
28  }
29  }
30 
31  protected:
32  bool static_{false};
33  std::function<std::vector<uint8_t>(Ts...)> data_func_{};
34  std::vector<uint8_t> data_static_{};
35 };
36 
37 } // namespace uart
38 } // namespace esphome
uint16_t x
Definition: tt21100.cpp:17
mopeka_std_values val[4]
void set_data_template(std::function< std::vector< uint8_t >(Ts...)> func)
Definition: automation.h:13
std::vector< uint8_t > data_static_
Definition: automation.h:34
void set_data_static(const std::vector< uint8_t > &data)
Definition: automation.h:17
This is a workaround until we can figure out a way to get the tflite-micro idf component code availab...
Definition: a01nyub.cpp:7
std::function< std::vector< uint8_t >Ts...)> data_func_
Definition: automation.h:33
void play(Ts... x) override
Definition: automation.h:22
Helper class to easily give an object a parent of type T.
Definition: helpers.h:515