mirror of
https://github.com/esphome/esphome.git
synced 2024-12-21 21:14:52 +01:00
'uart' and 'improv_serial' need to understand non-UART logger configurations (#6998)
This commit is contained in:
parent
b89dea97d9
commit
5278ae4b5e
24 changed files with 256 additions and 20 deletions
|
@ -57,7 +57,7 @@ optional<uint8_t> ImprovSerialComponent::read_byte_() {
|
|||
}
|
||||
}
|
||||
break;
|
||||
#if defined(CONFIG_ESP_CONSOLE_USB_CDC) && (defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3))
|
||||
#ifdef USE_LOGGER_USB_CDC
|
||||
case logger::UART_SELECTION_USB_CDC:
|
||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 0, 0)
|
||||
if (esp_usb_console_available_for_read()) {
|
||||
|
@ -68,15 +68,15 @@ optional<uint8_t> ImprovSerialComponent::read_byte_() {
|
|||
byte = data;
|
||||
}
|
||||
break;
|
||||
#endif // USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3
|
||||
#if defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32S3)
|
||||
#endif // USE_LOGGER_USB_CDC
|
||||
#ifdef USE_LOGGER_USB_SERIAL_JTAG
|
||||
case logger::UART_SELECTION_USB_SERIAL_JTAG: {
|
||||
if (usb_serial_jtag_read_bytes((char *) &data, 1, 0)) {
|
||||
byte = data;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif // USE_ESP32_VARIANT_ESP32C3 || USE_ESP32_VARIANT_ESP32C6 || USE_ESP32_VARIANT_ESP32S3
|
||||
#endif // USE_LOGGER_USB_SERIAL_JTAG
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -99,19 +99,19 @@ void ImprovSerialComponent::write_data_(std::vector<uint8_t> &data) {
|
|||
#endif // !USE_ESP32_VARIANT_ESP32C3 && !USE_ESP32_VARIANT_ESP32S2 && !USE_ESP32_VARIANT_ESP32S3
|
||||
uart_write_bytes(this->uart_num_, data.data(), data.size());
|
||||
break;
|
||||
#if defined(CONFIG_ESP_CONSOLE_USB_CDC) && (defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3))
|
||||
#ifdef USE_LOGGER_USB_CDC
|
||||
case logger::UART_SELECTION_USB_CDC: {
|
||||
const char *msg = (char *) data.data();
|
||||
esp_usb_console_write_buf(msg, data.size());
|
||||
break;
|
||||
}
|
||||
#endif // USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3
|
||||
#if defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32S3)
|
||||
#endif // USE_LOGGER_USB_CDC
|
||||
#ifdef USE_LOGGER_USB_SERIAL_JTAG
|
||||
case logger::UART_SELECTION_USB_SERIAL_JTAG:
|
||||
usb_serial_jtag_write_bytes((char *) data.data(), data.size(), 20 / portTICK_PERIOD_MS);
|
||||
usb_serial_jtag_ll_txfifo_flush(); // fixes for issue in IDF 4.4.7
|
||||
break;
|
||||
#endif // USE_ESP32_VARIANT_ESP32C3 || USE_ESP32_VARIANT_ESP32S3
|
||||
#endif // USE_LOGGER_USB_SERIAL_JTAG
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -96,10 +96,24 @@ void ESP32ArduinoUARTComponent::setup() {
|
|||
next_uart_num++;
|
||||
} else {
|
||||
#ifdef USE_LOGGER
|
||||
// The logger doesn't use this UART component, instead it targets the UARTs
|
||||
// directly (i.e. Serial/Serial0, Serial1, and Serial2). If the logger is
|
||||
// enabled, skip the UART that it is configured to use.
|
||||
if (logger::global_logger->get_baud_rate() > 0 && logger::global_logger->get_uart() == next_uart_num) {
|
||||
bool logger_uses_hardware_uart = true;
|
||||
|
||||
#ifdef USE_LOGGER_USB_CDC
|
||||
if (logger::global_logger->get_uart() == logger::UART_SELECTION_USB_CDC) {
|
||||
// this is not a hardware UART, ignore it
|
||||
logger_uses_hardware_uart = false;
|
||||
}
|
||||
#endif // USE_LOGGER_USB_CDC
|
||||
|
||||
#ifdef USE_LOGGER_USB_SERIAL_JTAG
|
||||
if (logger::global_logger->get_uart() == logger::UART_SELECTION_USB_SERIAL_JTAG) {
|
||||
// this is not a hardware UART, ignore it
|
||||
logger_uses_hardware_uart = false;
|
||||
}
|
||||
#endif // USE_LOGGER_USB_SERIAL_JTAG
|
||||
|
||||
if (logger_uses_hardware_uart && logger::global_logger->get_baud_rate() > 0 &&
|
||||
logger::global_logger->get_uart() == next_uart_num) {
|
||||
next_uart_num++;
|
||||
}
|
||||
#endif // USE_LOGGER
|
||||
|
|
|
@ -60,10 +60,30 @@ uart_config_t IDFUARTComponent::get_config_() {
|
|||
|
||||
void IDFUARTComponent::setup() {
|
||||
static uint8_t next_uart_num = 0;
|
||||
|
||||
#ifdef USE_LOGGER
|
||||
if (logger::global_logger->get_uart_num() == next_uart_num)
|
||||
bool logger_uses_hardware_uart = true;
|
||||
|
||||
#ifdef USE_LOGGER_USB_CDC
|
||||
if (logger::global_logger->get_uart() == logger::UART_SELECTION_USB_CDC) {
|
||||
// this is not a hardware UART, ignore it
|
||||
logger_uses_hardware_uart = false;
|
||||
}
|
||||
#endif // USE_LOGGER_USB_CDC
|
||||
|
||||
#ifdef USE_LOGGER_USB_SERIAL_JTAG
|
||||
if (logger::global_logger->get_uart() == logger::UART_SELECTION_USB_SERIAL_JTAG) {
|
||||
// this is not a hardware UART, ignore it
|
||||
logger_uses_hardware_uart = false;
|
||||
}
|
||||
#endif // USE_LOGGER_USB_SERIAL_JTAG
|
||||
|
||||
if (logger_uses_hardware_uart && logger::global_logger->get_baud_rate() > 0 &&
|
||||
logger::global_logger->get_uart_num() == next_uart_num) {
|
||||
next_uart_num++;
|
||||
#endif
|
||||
}
|
||||
#endif // USE_LOGGER
|
||||
|
||||
if (next_uart_num >= UART_NUM_MAX) {
|
||||
ESP_LOGW(TAG, "Maximum number of UART components created already.");
|
||||
this->mark_failed();
|
||||
|
|
8
tests/components/logger/common-usb_cdc.yaml
Normal file
8
tests/components/logger/common-usb_cdc.yaml
Normal file
|
@ -0,0 +1,8 @@
|
|||
esphome:
|
||||
on_boot:
|
||||
then:
|
||||
- logger.log: Hello world
|
||||
|
||||
logger:
|
||||
level: DEBUG
|
||||
hardware_uart: USB_CDC
|
8
tests/components/logger/common-usb_serial_jtag.yaml
Normal file
8
tests/components/logger/common-usb_serial_jtag.yaml
Normal file
|
@ -0,0 +1,8 @@
|
|||
esphome:
|
||||
on_boot:
|
||||
then:
|
||||
- logger.log: Hello world
|
||||
|
||||
logger:
|
||||
level: DEBUG
|
||||
hardware_uart: USB_SERIAL_JTAG
|
1
tests/components/logger/test-usb_cdc.esp32-c3-ard.yaml
Normal file
1
tests/components/logger/test-usb_cdc.esp32-c3-ard.yaml
Normal file
|
@ -0,0 +1 @@
|
|||
<<: !include common-usb_cdc.yaml
|
1
tests/components/logger/test-usb_cdc.esp32-s2-ard.yaml
Normal file
1
tests/components/logger/test-usb_cdc.esp32-s2-ard.yaml
Normal file
|
@ -0,0 +1 @@
|
|||
<<: !include common-usb_cdc.yaml
|
1
tests/components/logger/test-usb_cdc.esp32-s2-idf.yaml
Normal file
1
tests/components/logger/test-usb_cdc.esp32-s2-idf.yaml
Normal file
|
@ -0,0 +1 @@
|
|||
<<: !include common-usb_cdc.yaml
|
1
tests/components/logger/test-usb_cdc.esp32-s3-ard.yaml
Normal file
1
tests/components/logger/test-usb_cdc.esp32-s3-ard.yaml
Normal file
|
@ -0,0 +1 @@
|
|||
<<: !include common-usb_cdc.yaml
|
|
@ -0,0 +1 @@
|
|||
<<: !include common-usb_serial_jtag.yaml
|
|
@ -0,0 +1 @@
|
|||
<<: !include common-usb_serial_jtag.yaml
|
|
@ -1 +1 @@
|
|||
<<: !include common.yaml
|
||||
<<: !include common-default_uart.yaml
|
||||
|
|
|
@ -1 +1 @@
|
|||
<<: !include common.yaml
|
||||
<<: !include common-default_uart.yaml
|
||||
|
|
|
@ -1 +1 @@
|
|||
<<: !include common.yaml
|
||||
<<: !include common-default_uart.yaml
|
||||
|
|
|
@ -1 +1 @@
|
|||
<<: !include common.yaml
|
||||
<<: !include common-default_uart.yaml
|
||||
|
|
|
@ -1 +1 @@
|
|||
<<: !include common.yaml
|
||||
<<: !include common-default_uart.yaml
|
||||
|
|
|
@ -1 +1 @@
|
|||
<<: !include common.yaml
|
||||
<<: !include common-default_uart.yaml
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
<<: !include ../logger/common-usb_cdc.yaml
|
||||
|
||||
esphome:
|
||||
on_boot:
|
||||
then:
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: 'Hello World'
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: [0x00, 0x20, 0x42]
|
||||
|
||||
uart:
|
||||
- id: uart_1
|
||||
tx_pin: 4
|
||||
rx_pin: 5
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
||||
|
||||
- id: uart_2
|
||||
tx_pin: 6
|
||||
rx_pin: 7
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
|
@ -0,0 +1,30 @@
|
|||
<<: !include ../logger/common-usb_cdc.yaml
|
||||
|
||||
esphome:
|
||||
on_boot:
|
||||
then:
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: 'Hello World'
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: [0x00, 0x20, 0x42]
|
||||
|
||||
uart:
|
||||
- id: uart_1
|
||||
tx_pin: 4
|
||||
rx_pin: 5
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
||||
|
||||
- id: uart_2
|
||||
tx_pin: 6
|
||||
rx_pin: 7
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
|
@ -0,0 +1,30 @@
|
|||
<<: !include ../logger/common-usb_cdc.yaml
|
||||
|
||||
esphome:
|
||||
on_boot:
|
||||
then:
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: 'Hello World'
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: [0x00, 0x20, 0x42]
|
||||
|
||||
uart:
|
||||
- id: uart_1
|
||||
tx_pin: 4
|
||||
rx_pin: 5
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
||||
|
||||
- id: uart_2
|
||||
tx_pin: 6
|
||||
rx_pin: 7
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
|
@ -0,0 +1,30 @@
|
|||
<<: !include ../logger/common-usb_cdc.yaml
|
||||
|
||||
esphome:
|
||||
on_boot:
|
||||
then:
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: 'Hello World'
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: [0x00, 0x20, 0x42]
|
||||
|
||||
uart:
|
||||
- id: uart_1
|
||||
tx_pin: 4
|
||||
rx_pin: 5
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
||||
|
||||
- id: uart_2
|
||||
tx_pin: 6
|
||||
rx_pin: 7
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
|
@ -0,0 +1,30 @@
|
|||
<<: !include ../logger/common-usb_serial_jtag.yaml
|
||||
|
||||
esphome:
|
||||
on_boot:
|
||||
then:
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: 'Hello World'
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: [0x00, 0x20, 0x42]
|
||||
|
||||
uart:
|
||||
- id: uart_1
|
||||
tx_pin: 4
|
||||
rx_pin: 5
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
||||
|
||||
- id: uart_2
|
||||
tx_pin: 6
|
||||
rx_pin: 7
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
|
@ -0,0 +1,30 @@
|
|||
<<: !include ../logger/common-usb_serial_jtag.yaml
|
||||
|
||||
esphome:
|
||||
on_boot:
|
||||
then:
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: 'Hello World'
|
||||
- uart.write:
|
||||
id: uart_1
|
||||
data: [0x00, 0x20, 0x42]
|
||||
|
||||
uart:
|
||||
- id: uart_1
|
||||
tx_pin: 4
|
||||
rx_pin: 5
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
||||
|
||||
- id: uart_2
|
||||
tx_pin: 6
|
||||
rx_pin: 7
|
||||
baud_rate: 9600
|
||||
data_bits: 8
|
||||
rx_buffer_size: 512
|
||||
parity: EVEN
|
||||
stop_bits: 2
|
Loading…
Reference in a new issue