From 99aa15822b0c7fc73c6732a78f497e97e6f62baa Mon Sep 17 00:00:00 2001 From: Terrence Date: Mon, 15 Sep 2025 23:15:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E6=9C=BA=E5=90=AF=E5=8A=A8=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=BC=80=E5=8F=91=E6=9D=BF=E4=BF=A1=E6=81=AF=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E5=89=8D=E5=90=AF=E5=8A=A8event=20loop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/application.cc | 9 +++++++++ main/ota.cc | 4 +--- main/system_info.cc | 6 ++++++ main/system_info.h | 1 + 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/main/application.cc b/main/application.cc index adb4eb91..3d619def 100644 --- a/main/application.cc +++ b/main/application.cc @@ -332,6 +332,9 @@ void Application::Start() { /* Setup the display */ auto display = board.GetDisplay(); + // Print board name/version info + display->SetChatMessage("system", SystemInfo::GetUserAgent().c_str()); + /* Setup the audio service */ auto codec = board.GetAudioCodec(); audio_service_.Initialize(codec); @@ -349,6 +352,12 @@ void Application::Start() { }; audio_service_.SetCallbacks(callbacks); + // Start the main event loop task with priority 3 + xTaskCreate([](void* arg) { + ((Application*)arg)->MainEventLoop(); + vTaskDelete(NULL); + }, "main_event_loop", 2048 * 4, this, 3, &main_event_loop_task_handle_); + /* Start the clock timer to update the status bar */ esp_timer_start_periodic(clock_timer_handle_, 1000000); diff --git a/main/ota.cc b/main/ota.cc index e3a086e7..e7eecd30 100644 --- a/main/ota.cc +++ b/main/ota.cc @@ -51,11 +51,9 @@ std::string Ota::GetCheckVersionUrl() { std::unique_ptr Ota::SetupHttp() { auto& board = Board::GetInstance(); - auto app_desc = esp_app_get_description(); - auto network = board.GetNetwork(); auto http = network->CreateHttp(0); - auto user_agent = std::string(BOARD_NAME "/") + app_desc->version; + auto user_agent = SystemInfo::GetUserAgent(); http->SetHeader("Activation-Version", has_serial_number_ ? "2" : "1"); http->SetHeader("Device-Id", SystemInfo::GetMacAddress().c_str()); http->SetHeader("Client-Id", board.GetUuid()); diff --git a/main/system_info.cc b/main/system_info.cc index 22ce809a..51b00724 100644 --- a/main/system_info.cc +++ b/main/system_info.cc @@ -47,6 +47,12 @@ std::string SystemInfo::GetChipModelName() { return std::string(CONFIG_IDF_TARGET); } +std::string SystemInfo::GetUserAgent() { + auto app_desc = esp_app_get_description(); + auto user_agent = std::string(BOARD_NAME "/") + app_desc->version; + return user_agent; +} + esp_err_t SystemInfo::PrintTaskCpuUsage(TickType_t xTicksToWait) { #define ARRAY_SIZE_OFFSET 5 TaskStatus_t *start_array = NULL, *end_array = NULL; diff --git a/main/system_info.h b/main/system_info.h index b29c72fb..a466d712 100644 --- a/main/system_info.h +++ b/main/system_info.h @@ -13,6 +13,7 @@ public: static size_t GetFreeHeapSize(); static std::string GetMacAddress(); static std::string GetChipModelName(); + static std::string GetUserAgent(); static esp_err_t PrintTaskCpuUsage(TickType_t xTicksToWait); static void PrintTaskList(); static void PrintHeapStats();