ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
uart_component_esp_idf.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef USE_ESP32
4
5#include <driver/uart.h>
7#include "uart_component.h"
8
9namespace esphome::uart {
10
12 public:
13 void setup() override;
14 void dump_config() override;
15 float get_setup_priority() const override { return setup_priority::BUS; }
16
17 void set_rx_full_threshold(size_t rx_full_threshold) override;
18 void set_rx_timeout(size_t rx_timeout) override;
19
20 void write_array(const uint8_t *data, size_t len) override;
21
22 bool peek_byte(uint8_t *data) override;
23 bool read_array(uint8_t *data, size_t len) override;
24
25 int available() override;
26 void flush() override;
27
28 uint8_t get_hw_serial_number() { return this->uart_num_; }
29 QueueHandle_t *get_uart_event_queue() { return &this->uart_event_queue_; }
30
43 void load_settings(bool dump_config) override;
44 void load_settings() override { this->load_settings(true); }
45
46 protected:
47 void check_logger_conflict() override;
48 uart_port_t uart_num_;
49 QueueHandle_t uart_event_queue_;
50 uart_config_t get_config_();
51 SemaphoreHandle_t lock_;
52
53 bool has_peek_{false};
54 uint8_t peek_byte_;
55
56#ifdef USE_UART_WAKE_LOOP_ON_RX
57 // RX notification support
59 static void rx_event_task_func(void *param);
60
61 TaskHandle_t rx_event_task_handle_{nullptr};
62#endif // USE_UART_WAKE_LOOP_ON_RX
63};
64
65} // namespace esphome::uart
66#endif // USE_ESP32
void set_rx_timeout(size_t rx_timeout) override
static void rx_event_task_func(void *param)
bool peek_byte(uint8_t *data) override
void write_array(const uint8_t *data, size_t len) override
void set_rx_full_threshold(size_t rx_full_threshold) override
bool read_array(uint8_t *data, size_t len) override
float get_setup_priority() const override
const float BUS
For communication buses like i2c/spi.
Definition component.cpp:78
std::string size_t len
Definition helpers.h:533