change uart pins without restart

This commit is contained in:
MichaelDvP
2025-11-28 09:08:53 +01:00
parent 056cf3cbd6
commit 5ed4970d62
2 changed files with 3 additions and 2 deletions

View File

@@ -106,6 +106,7 @@ void EMSuart::start(const uint8_t tx_mode, const uint8_t rx_gpio, const uint8_t
xTaskCreatePinnedToCore(uart_event_task, "uart_event_task", EMSESP_UART_STACKSIZE, NULL, EMSESP_UART_PRIORITY, &xHandle, EMSESP_UART_RUNNING_CORE);
#endif
} else {
uart_set_pin(EMSUART_NUM, tx_gpio, rx_gpio, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
vTaskResume(xHandle);
}
tx_mode_ = tx_mode;

View File

@@ -134,10 +134,10 @@ StateUpdateResult WebSettings::update(JsonObject root, WebSettings & settings) {
EMSESP::system_.remove_gpio(original_settings.tx_gpio);
// now add new gpio assignment, start with rx/tx
check_flag(original_settings.rx_gpio, settings.rx_gpio, ChangeFlags::RESTART);
check_flag(original_settings.rx_gpio, settings.rx_gpio, ChangeFlags::UART);
have_valid_gpios = have_valid_gpios && EMSESP::system_.add_gpio(settings.rx_gpio, "UART Rx");
check_flag(original_settings.tx_gpio, settings.tx_gpio, ChangeFlags::RESTART);
check_flag(original_settings.tx_gpio, settings.tx_gpio, ChangeFlags::UART);
have_valid_gpios = have_valid_gpios && EMSESP::system_.add_gpio(settings.tx_gpio, "UART Tx");
check_flag(original_settings.led_gpio, settings.led_gpio, ChangeFlags::LED);