From d4602012f1269dfe71ad780daece7fc900736391 Mon Sep 17 00:00:00 2001 From: Johnathon Slightham Date: Wed, 4 Mar 2026 11:35:46 -0500 Subject: [PATCH] Update code for demo --- components/dataLink/DataLinkManager.cpp | 7 +++---- components/dataLink/DataLinkScheduler.cpp | 4 ++-- main/RemoteDebugging.cpp | 5 +++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/components/dataLink/DataLinkManager.cpp b/components/dataLink/DataLinkManager.cpp index 75a8a1b..bee3c2d 100644 --- a/components/dataLink/DataLinkManager.cpp +++ b/components/dataLink/DataLinkManager.cpp @@ -50,8 +50,9 @@ DataLinkManager::DataLinkManager(uint8_t board_id, uint8_t num_channels = MAX_CH init_rip(); init_scheduler(); - // Start the periodic LUT flush task - xTaskCreate(lut_flush_task, "lut_flush", 2048, this, 2, &lut_flush_task_handle); + // Start the periodic LUT flush task (priority 1 – below all other link-layer tasks + // to avoid preempting tasks that hold internal C++ or FreeRTOS locks) + xTaskCreate(lut_flush_task, "lut_flush", 2048, this, 1, &lut_flush_task_handle); } /** @@ -319,7 +320,6 @@ void DataLinkManager::lut_insert(uint32_t hash, const uint8_t* message, size_t m */ void DataLinkManager::lut_flush(){ if (xSemaphoreTake(control_frame_lut_mutex, pdMS_TO_TICKS(SEQUENCE_NUM_MAP_MUTEX_MAX_WAIT_MS)) != pdTRUE){ - ESP_LOGW(DEBUG_LINK_TAG, "LUT flush: could not acquire mutex, skipping"); return; } @@ -330,7 +330,6 @@ void DataLinkManager::lut_flush(){ } xSemaphoreGive(control_frame_lut_mutex); - ESP_LOGI(DEBUG_LINK_TAG, "Control-frame LUT flushed"); } /** diff --git a/components/dataLink/DataLinkScheduler.cpp b/components/dataLink/DataLinkScheduler.cpp index e60ab75..0e024e7 100644 --- a/components/dataLink/DataLinkScheduler.cpp +++ b/components/dataLink/DataLinkScheduler.cpp @@ -128,7 +128,7 @@ esp_err_t DataLinkManager::scheduler_send(uint8_t channel){ size_t frame_size = isControlFrame ? sizeof(ControlFrame) : sizeof(GenericFrame); uint8_t send_data[frame_size]; - ESP_LOGI(DEBUG_LINK_TAG, "Sending frame on channel %d, type: %s", channel, isControlFrame ? "Control" : "Generic"); + // ESP_LOGI(DEBUG_LINK_TAG, "Sending frame on channel %d, type: %s", channel, isControlFrame ? "Control" : "Generic"); if (isControlFrame){ //control frame @@ -291,7 +291,7 @@ esp_err_t DataLinkManager::scheduler_send_rmt(uint8_t channel, SchedulerMetadata ESP_LOGE(DEBUG_LINK_TAG, "Failed to find entry for %d", frame.header.receiver_id); return ESP_FAIL; } - ESP_LOGI(DEBUG_LINK_TAG, "Sending frame %d on channel %d to board %d frag_info 0x%X", frame.header.seq_num, channel, frame.header.receiver_id, frame.header.frag_info); + // ESP_LOGI(DEBUG_LINK_TAG, "Sending frame %d on channel %d to board %d frag_info 0x%X", frame.header.seq_num, channel, frame.header.receiver_id, frame.header.frag_info); res = phys_comms->send(send_data, frame_size, &config, channel_to_route); // if (wait_for_tx_done){ // phys_comms->wait_until_send_complete(channel_to_route); diff --git a/main/RemoteDebugging.cpp b/main/RemoteDebugging.cpp index ba746a8..178e418 100644 --- a/main/RemoteDebugging.cpp +++ b/main/RemoteDebugging.cpp @@ -19,8 +19,9 @@ std::string RemoteDebugging::get_task_manager() { std::string RemoteDebugging::get_logs() { std::string out; - for (const auto& log : log_buffer->peek_drain()) { - out.append(log); + auto logs = log_buffer->peek_drain(); + for (auto it = logs.rbegin(); it != logs.rend(); ++it) { + out.append(*it); } out.resize(800); return out;