From d42829b643bfce9d426528dfaf4a6b30ecd7133b Mon Sep 17 00:00:00 2001 From: Erki Date: Sat, 3 Jun 2023 15:40:32 +0300 Subject: [PATCH] Add logging to main module --- main/app_networking.cpp | 5 ----- main/app_networking.hpp | 1 - main/esp_tunnel.cpp | 24 ++++++++++++++++++++---- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/main/app_networking.cpp b/main/app_networking.cpp index 50f0cb6..3f3d563 100644 --- a/main/app_networking.cpp +++ b/main/app_networking.cpp @@ -86,11 +86,6 @@ QueueHandle_t setupEspNow() return s_esp_now_queue; } -bool isTxInFlight() -{ - return s_tx_inflight; -} - const std::array& getRxBuffer() { return s_rx_buffer; diff --git a/main/app_networking.hpp b/main/app_networking.hpp index 44d9051..f2d3e41 100644 --- a/main/app_networking.hpp +++ b/main/app_networking.hpp @@ -26,7 +26,6 @@ void setupWifi(); [[nodiscard]] QueueHandle_t setupEspNow(); void sendData(const std::array& buffer, const std::size_t length); -bool isTxInFlight(); const std::array& getRxBuffer(); }// namespace App diff --git a/main/esp_tunnel.cpp b/main/esp_tunnel.cpp index 3095c4f..7325ff5 100644 --- a/main/esp_tunnel.cpp +++ b/main/esp_tunnel.cpp @@ -1,6 +1,6 @@ +#include #include #include -#include #include "app_networking.hpp" #include "app_serial.hpp" @@ -9,10 +9,13 @@ #include "freertos/queue.h" #include "nvs_flash.h" #include "driver/uart.h" +#include "esp_log.h" namespace { +static const char* TAG = "App"; + TaskHandle_t s_main_task = nullptr; QueueSetHandle_t s_queue_set = nullptr; @@ -25,8 +28,11 @@ void s_sendUartData() uart_get_buffered_data_len(UART_NUM_0, &uart_rx_size); if (uart_rx_size > 128 / 2) { + ESP_LOGD(TAG, "Sending %ull bytes via UART.", uart_rx_size); + std::array tx_buffer; uart_read_bytes(UART_NUM_0, tx_buffer.data(), uart_rx_size, 0); + Networking::sendData(tx_buffer, uart_rx_size); } } @@ -37,28 +43,33 @@ void s_sendUartData() { QueueSetMemberHandle_t queue_select = xQueueSelectFromSet(s_queue_set, portMAX_DELAY); + ESP_LOGI(TAG, "Event: %s.", queue_select == s_esp_now_queue ? "ESP-NOW event" : "UART event"); + if (queue_select == s_esp_now_queue) { Networking::EspNowEvent event; xQueueReceive(queue_select, &event, 0); + ESP_LOGD(TAG, "ESP-NOW event: %u, rx-length: %ull.", event.type, event.rx_length); + if (event.type == Networking::EspNowEvent::MSG_RECEIVED) { std::size_t uart_free = 0; uart_get_tx_buffer_free_size(UART_NUM_0, &uart_free); if (uart_free >= event.rx_length) { + ESP_LOGD(TAG, "ESP-NOW event: wrote %ull bytes to UART RX.", uart_free); const auto& esp_rx_buffer = Networking::getRxBuffer(); uart_write_bytes(UART_NUM_0, esp_rx_buffer.data(), event.rx_length); } else { - // log data drop + ESP_LOGW(TAG, "ESP-NOW event: dropped RX data due to full UART RX buffer."); } } - else if (event.type == Networking::EspNowEvent::MSG_SEND_COMPLETE && Networking::isTxInFlight()) + else if (event.type == Networking::EspNowEvent::MSG_SEND_COMPLETE) { - // check if we have an UART_RX buffer, send if possible. + ESP_LOGD(TAG, "ESP-NOW event: TX completed. Checking to send data."); s_sendUartData(); } } @@ -67,6 +78,8 @@ void s_sendUartData() uart_event_t event; xQueueReceive(s_uart_queue, &event, 0); + ESP_LOGD(TAG, "UART event: %d", event.type); + if (event.type == UART_DATA) { s_sendUartData(); @@ -81,6 +94,8 @@ extern "C" void app_main(void) { ESP_ERROR_CHECK(nvs_flash_init()); + ESP_LOGD(TAG, "Starting main."); + Networking::setupWifi(); s_esp_now_queue = Networking::setupEspNow(); s_uart_queue = Serial::setupSerial(); @@ -89,5 +104,6 @@ extern "C" void app_main(void) xQueueAddToSet(s_esp_now_queue, s_queue_set); xQueueAddToSet(s_uart_queue, s_queue_set); + ESP_LOGI(TAG, "Setup completed."); xTaskCreate(s_mainTask, "main_task", 2048, nullptr, 4, &s_main_task); }