diff --git a/esphome/components/weikai/weikai.cpp b/esphome/components/weikai/weikai.cpp index 8f581fab112..c8c194104f8 100644 --- a/esphome/components/weikai/weikai.cpp +++ b/esphome/components/weikai/weikai.cpp @@ -38,19 +38,19 @@ const char *p2s(uart::UARTParityOptions parity) { } /// @brief Display a buffer in hexadecimal format (32 hex values / line) for debug -void print_buffer(const char *tag, const uint8_t *data, size_t length) { +void print_buffer(const char *tag, const uint8_t *data, size_t length, int level) { char hex_buffer[100]; hex_buffer[(3 * 32) + 1] = 0; for (size_t i = 0; i < length; i++) { snprintf(&hex_buffer[3 * (i % 32)], sizeof(hex_buffer), "%02X ", data[i]); if (i % 32 == 31) { - ESP_LOGVV(tag, " %s", hex_buffer); + esp_log_printf_(level, tag, __LINE__, ESPHOME_LOG_FORMAT(" %s"), hex_buffer); } } if (length % 32) { // null terminate if incomplete line hex_buffer[3 * (length % 32) + 2] = 0; - ESP_LOGVV(tag, " %s", hex_buffer); + esp_log_printf_(level, tag, __LINE__, ESPHOME_LOG_FORMAT(" %s"), hex_buffer); } } @@ -492,24 +492,6 @@ class Increment { uint8_t i_; }; -/// @brief Hex converter to print/display a buffer in hexadecimal format (32 hex values / line). -/// @param buffer contains the values to display -void print_buffer(std::vector buffer) { - char hex_buffer[100]; - hex_buffer[(3 * 32) + 1] = 0; - for (size_t i = 0; i < buffer.size(); i++) { - snprintf(&hex_buffer[3 * (i % 32)], sizeof(hex_buffer), "%02X ", buffer[i]); - if (i % 32 == 31) { - ESP_LOGI(TAG, " %s", hex_buffer); - } - } - if (buffer.size() % 32) { - // null terminate if incomplete line - hex_buffer[3 * (buffer.size() % 32) + 1] = 0; - ESP_LOGI(TAG, " %s", hex_buffer); - } -} - /// @brief test the write_array method void WeikaiChannel::uart_send_test_(char *message) { auto start_exec = micros(); @@ -557,7 +539,7 @@ bool WeikaiChannel::uart_receive_test_(char *message) { for (size_t i = 0; i < RING_BUFFER_SIZE; i++) { if (buffer[i] != i % XFER_MAX_SIZE) { ESP_LOGE(TAG, "Read buffer contains error b=%x i=%x", buffer[i], i % XFER_MAX_SIZE); - print_buffer(buffer); + print_buffer(TAG, buffer.data(), buffer.size(), ESPHOME_LOG_LEVEL_INFO); status = false; break; } diff --git a/esphome/components/weikai/weikai.h b/esphome/components/weikai/weikai.h index 2acd03daa53..d732e028e78 100644 --- a/esphome/components/weikai/weikai.h +++ b/esphome/components/weikai/weikai.h @@ -43,8 +43,8 @@ constexpr size_t RING_BUFFER_SIZE = FIFO_SIZE; /// @brief Name of a register for the log messages const LogString *reg_to_str(int reg, bool page1); -/// Logs a buffer in hexadecimal, 32 values per line, at very verbose level under @p tag. -void print_buffer(const char *tag, const uint8_t *data, size_t length); +/// Logs a buffer in hexadecimal, 32 values per line, under @p tag at @p level. +void print_buffer(const char *tag, const uint8_t *data, size_t length, int level = ESPHOME_LOG_LEVEL_VERY_VERBOSE); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// @brief This is an helper class that provides a simple ring buffers that works as a FIFO