From d0bd8e50be948b142e453c0b12e3fa3df2e72a13 Mon Sep 17 00:00:00 2001 From: gullradriel <3157857+gullradriel@users.noreply.github.com> Date: Fri, 22 Dec 2023 11:00:27 +0100 Subject: [PATCH] Added USB serial checkbox (#1664) --- firmware/application/apps/ble_rx_app.cpp | 20 +++++++++++++++----- firmware/application/apps/ble_rx_app.hpp | 9 +++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/firmware/application/apps/ble_rx_app.cpp b/firmware/application/apps/ble_rx_app.cpp index b5a27faf..88cdb19f 100644 --- a/firmware/application/apps/ble_rx_app.cpp +++ b/firmware/application/apps/ble_rx_app.cpp @@ -426,6 +426,7 @@ BLERxView::BLERxView(NavigationView& nav) &options_sort, &label_found, &text_found_count, + &check_serial_log, &button_filter, &button_save_list, &button_clear_list, @@ -436,7 +437,15 @@ BLERxView::BLERxView(NavigationView& nav) nav_.push(entry); }; - usb_serial_thread = std::make_unique(); + check_serial_log.on_select = [this](Checkbox&, bool v) { + serial_logging = v; + if (v) { + usb_serial_thread = std::make_unique(); + } else { + usb_serial_thread.reset(); + } + }; + check_serial_log.set_value(serial_logging); ensure_directory(find_packet_path); ensure_directory(log_packets_path); @@ -456,8 +465,6 @@ BLERxView::BLERxView(NavigationView& nav) logger = std::make_unique(); - check_log.set_value(logging); - check_log.on_select = [this](Checkbox&, bool v) { str_log = ""; logging = v; @@ -468,6 +475,7 @@ BLERxView::BLERxView(NavigationView& nav) "/BLELOG_" + to_string_timestamp(rtc_time::now()) + ".TXT"); }; + check_log.set_value(logging); button_save_list.on_select = [this, &nav](const ui::Button&) { listFileBuffer = ""; @@ -723,8 +731,10 @@ void BLERxView::on_data(BlePacketData* packet) { logger->log_raw_data(str_console + "\r\n"); } - usb_serial_thread->serial_str = str_console + "\r\n"; - usb_serial_thread->str_ready = true; + if (serial_logging) { + usb_serial_thread->serial_str = str_console + "\r\n"; + usb_serial_thread->str_ready = true; + } str_console = ""; if (!searchList.empty()) { diff --git a/firmware/application/apps/ble_rx_app.hpp b/firmware/application/apps/ble_rx_app.hpp index 8735c545..f3e81444 100644 --- a/firmware/application/apps/ble_rx_app.hpp +++ b/firmware/application/apps/ble_rx_app.hpp @@ -215,6 +215,7 @@ class BLERxView : public View { uint8_t sort_index{0}; std::string filter{}; bool logging{false}; + bool serial_logging{false}; bool name_enable{true}; app_settings::SettingsManager settings_{ @@ -225,6 +226,8 @@ class BLERxView : public View { {"sort_index"sv, &sort_index}, {"filter"sv, &filter}, {"log"sv, &logging}, + // disabled to always start without USB serial activated until we can make it non blocking if not connected + // {"serial_log"sv, &serial_logging}, {"name"sv, &name_enable}, }}; @@ -320,6 +323,12 @@ class BLERxView : public View { {11 * 8, 3 * 16, 20 * 8, 16}, "0/0"}; + Checkbox check_serial_log{ + {17 * 8, 3 * 16 - 2}, + 7, + "USB Log", + true}; + Console console{ {0, 4 * 16, 240, 240}};