Warn when UART and logger operating on same bus (#803)

This commit is contained in:
Otto Winter 2019-10-27 12:27:46 +01:00
parent 6ae59bb43d
commit 1bf01a9081
No known key found for this signature in database
GPG key ID: DB66C0BE6013F97E
2 changed files with 19 additions and 0 deletions

View file

@ -30,6 +30,7 @@ class Logger : public Component {
/// Manually set the baud rate for serial, set to 0 to disable. /// Manually set the baud rate for serial, set to 0 to disable.
void set_baud_rate(uint32_t baud_rate); void set_baud_rate(uint32_t baud_rate);
uint32_t get_baud_rate() const { return baud_rate_; }
/// Get the UART used by the logger. /// Get the UART used by the logger.
UARTSelection get_uart() const; UARTSelection get_uart() const;

View file

@ -2,6 +2,11 @@
#include "esphome/core/log.h" #include "esphome/core/log.h"
#include "esphome/core/helpers.h" #include "esphome/core/helpers.h"
#include "esphome/core/application.h" #include "esphome/core/application.h"
#include "esphome/core/defines.h"
#ifdef USE_LOGGER
#include "esphome/components/logger/logger.h"
#endif
namespace esphome { namespace esphome {
namespace uart { namespace uart {
@ -41,6 +46,12 @@ void UARTComponent::dump_config() {
} }
ESP_LOGCONFIG(TAG, " Baud Rate: %u baud", this->baud_rate_); ESP_LOGCONFIG(TAG, " Baud Rate: %u baud", this->baud_rate_);
ESP_LOGCONFIG(TAG, " Stop bits: %u", this->stop_bits_); ESP_LOGCONFIG(TAG, " Stop bits: %u", this->stop_bits_);
#ifdef USE_LOGGER
if (this->hw_serial_ == &Serial && logger::global_logger->get_baud_rate() != 0) {
ESP_LOGW(TAG, " You're using the same serial port for logging and the UART component. Please "
"disable logging over the serial port by setting logger->baud_rate to 0.");
}
#endif
} }
void UARTComponent::write_byte(uint8_t data) { void UARTComponent::write_byte(uint8_t data) {
@ -145,6 +156,13 @@ void UARTComponent::dump_config() {
} else { } else {
ESP_LOGCONFIG(TAG, " Using software serial"); ESP_LOGCONFIG(TAG, " Using software serial");
} }
#ifdef USE_LOGGER
if (this->hw_serial_ == &Serial && logger::global_logger->get_baud_rate() != 0) {
ESP_LOGW(TAG, " You're using the same serial port for logging and the UART component. Please "
"disable logging over the serial port by setting logger->baud_rate to 0.");
}
#endif
} }
void UARTComponent::write_byte(uint8_t data) { void UARTComponent::write_byte(uint8_t data) {