13#include <driver/uart.h>
14#if defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32S3) || \
15 defined(USE_ESP32_VARIANT_ESP32H2)
16#include <driver/usb_serial_jtag.h>
17#include <hal/usb_serial_jtag_ll.h>
19#if defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3)
20#include <esp_private/usb_console.h>
22#elif defined(USE_ARDUINO)
23#include <HardwareSerial.h>
27namespace improv_serial {
30static constexpr uint8_t TX_HEADER_SIZE = 6;
31static constexpr uint8_t TX_VERSION_IDX = 6;
32static constexpr uint8_t TX_TYPE_IDX = 7;
33static constexpr uint8_t TX_LENGTH_IDX = 8;
34static constexpr uint8_t TX_DATA_IDX = 9;
35static constexpr uint8_t TX_CHECKSUM_IDX = 10;
36static constexpr uint8_t TX_NEWLINE_IDX = 11;
37static constexpr uint8_t TX_BUFFER_SIZE = 12;
46static const uint16_t IMPROV_SERIAL_TIMEOUT = 100;
47static const uint8_t IMPROV_SERIAL_VERSION = 1;
51 void setup()
override;
70 void write_data_(
const uint8_t *data =
nullptr,
size_t size = 0);
79 IMPROV_SERIAL_VERSION,
89#elif defined(USE_ARDUINO)
96 improv::State
state_{improv::STATE_AUTHORIZED};
99extern ImprovSerialComponent
std::vector< uint8_t > rx_buffer_
float get_setup_priority() const override
std::vector< uint8_t > build_rpc_settings_response_(improv::Command command)
void set_state_(improv::State state)
wifi::WiFiAP connecting_sta_
void on_wifi_connect_timeout_()
void write_data_(const uint8_t *data=nullptr, size_t size=0)
void send_response_(std::vector< uint8_t > &response)
void dump_config() override
bool parse_improv_serial_byte_(uint8_t byte)
optional< uint8_t > read_byte_()
std::vector< uint8_t > build_version_info_()
uint8_t tx_header_[TX_BUFFER_SIZE]
bool parse_improv_payload_(improv::ImprovCommand &command)
void set_error_(improv::Error error)
ImprovSerialComponent * global_improv_serial_component
const float AFTER_WIFI
For components that should be initialized after WiFi is connected.
Providing packet encoding functions for exchanging data with a remote host.