8#if !(defined(__linux__) || defined(__APPLE__))
9#error This HostUartComponent implementation is not supported on this host OS
26speed_t get_baud(
int baud) {
101static const char *
const TAG =
"uart.host";
111 ESP_LOGCONFIG(TAG,
"Opening UART port");
114 ESP_LOGE(TAG,
"Unsupported baud rate: %d", this->
baud_rate_);
128 options.c_cflag |= CREAD | CLOCAL;
134 options.c_iflag &= ~(IXON | IXOFF | IXANY);
135 options.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL);
142 options.c_cflag |= CS5;
158 options.c_cflag &= ~PARENB;
171 options.c_cflag |= CSTOPB;
181 ESP_LOGCONFIG(TAG,
"UART:");
182 ESP_LOGCONFIG(TAG,
" Port: %s", this->
port_name_.c_str());
184 ESP_LOGCONFIG(TAG,
" Port status: Not opened");
186 ESP_LOGCONFIG(TAG,
" Error: %s", this->
first_error_.c_str());
191 " Port status: opened\n"
209 if (written !=
len) {
213#ifdef USE_UART_DEBUGGER
214 for (
size_t i = 0; i <
len; i++) {
245 uint8_t *data_ptr = data;
246 size_t length_to_read =
len;
253 if (length_to_read > 0) {
260#ifdef USE_UART_DEBUGGER
261 for (
size_t i = 0; i <
len; i++) {
288 ESP_LOGV(TAG,
" Flushing");
295 ESP_LOGE(TAG,
"Port error: %s", error.c_str());
virtual void mark_failed()
Mark this component as failed.
bool read_array(uint8_t *data, size_t len) override
void write_array(const uint8_t *data, size_t len) override
void update_error_(const std::string &error)
void check_logger_conflict() override
void dump_config() override
virtual ~HostUartComponent()
bool peek_byte(uint8_t *data) override
UARTParityOptions parity_
bool check_read_timeout_(size_t len=1)
CallbackManager< void(UARTDirection, uint8_t)> debug_callback_
@ UART_CONFIG_PARITY_EVEN
@ UART_CONFIG_PARITY_NONE