From 7731f5f1ac3eee0398c0970dd2b1f9dc9ce1e584 Mon Sep 17 00:00:00 2001 From: Terrence Date: Thu, 16 Jan 2025 05:43:07 +0800 Subject: [PATCH] add upgrade alert message --- main/CMakeLists.txt | 2 +- main/application.cc | 18 ++++++++++++------ main/assets/upgrade.p3 | Bin 0 -> 3010 bytes .../{err_wificonfig.p3 => wificonfig.p3} | Bin main/boards/common/ml307_board.cc | 4 ++-- main/boards/common/wifi_board.cc | 6 +++--- 6 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 main/assets/upgrade.p3 rename main/assets/{err_wificonfig.p3 => wificonfig.p3} (100%) diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 1f798e24..00b374bc 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -76,7 +76,7 @@ if(CONFIG_IDF_TARGET_ESP32S3) endif() idf_component_register(SRCS ${SOURCES} - EMBED_FILES "assets/err_reg.p3" "assets/err_pin.p3" "assets/err_wificonfig.p3" + EMBED_FILES "assets/err_reg.p3" "assets/err_pin.p3" "assets/wificonfig.p3" "assets/upgrade.p3" INCLUDE_DIRS ${INCLUDE_DIRS} WHOLE_ARCHIVE ) diff --git a/main/application.cc b/main/application.cc index 8e8cd7fc..ec0498f2 100644 --- a/main/application.cc +++ b/main/application.cc @@ -21,8 +21,10 @@ extern const char p3_err_reg_start[] asm("_binary_err_reg_p3_start"); extern const char p3_err_reg_end[] asm("_binary_err_reg_p3_end"); extern const char p3_err_pin_start[] asm("_binary_err_pin_p3_start"); extern const char p3_err_pin_end[] asm("_binary_err_pin_p3_end"); -extern const char p3_err_wificonfig_start[] asm("_binary_err_wificonfig_p3_start"); -extern const char p3_err_wificonfig_end[] asm("_binary_err_wificonfig_p3_end"); +extern const char p3_wificonfig_start[] asm("_binary_wificonfig_p3_start"); +extern const char p3_wificonfig_end[] asm("_binary_wificonfig_p3_end"); +extern const char p3_upgrade_start[] asm("_binary_upgrade_p3_start"); +extern const char p3_upgrade_end[] asm("_binary_upgrade_p3_end"); static const char* const STATE_STRINGS[] = { "unknown", @@ -61,6 +63,7 @@ void Application::CheckNewVersion() { while (true) { if (ota_.CheckVersion()) { if (ota_.HasNewVersion()) { + Alert("Info", "正在升级固件"); // Wait for the chat state to be idle do { vTaskDelay(pdMS_TO_TICKS(3000)); @@ -73,6 +76,7 @@ void Application::CheckNewVersion() { display->SetIcon(FONT_AWESOME_DOWNLOAD); display->SetStatus("新版本 " + ota_.GetFirmwareVersion()); + board.SetPowerSaveMode(false); // 预先关闭音频输出,避免升级过程有音频操作 board.GetAudioCodec()->EnableOutput(false); { @@ -113,11 +117,13 @@ void Application::Alert(const std::string& title, const std::string& message) { auto display = Board::GetInstance().GetDisplay(); display->ShowNotification(message); - if (message == "PIN is not ready") { + if (message == "进入配网模式") { + PlayLocalFile(p3_wificonfig_start, p3_wificonfig_end - p3_wificonfig_start); + } else if (message == "正在升级固件") { + PlayLocalFile(p3_upgrade_start, p3_upgrade_end - p3_upgrade_start); + } else if (message == "请插入SIM卡") { PlayLocalFile(p3_err_pin_start, p3_err_pin_end - p3_err_pin_start); - } else if (message == "Configuring WiFi") { - PlayLocalFile(p3_err_wificonfig_start, p3_err_wificonfig_end - p3_err_wificonfig_start); - } else if (message == "Registration denied") { + } else if (message == "无法接入网络,请检查流量卡状态") { PlayLocalFile(p3_err_reg_start, p3_err_reg_end - p3_err_reg_start); } } diff --git a/main/assets/upgrade.p3 b/main/assets/upgrade.p3 new file mode 100644 index 0000000000000000000000000000000000000000..4447f26a5c0960c6487cc17ed9d5243f2310e192 GIT binary patch literal 3010 zcmb`J_ct317sq2n?GcTN(b_cjR#ff1q79)GwW&?*Su1vmnzi!SyY{TTsXePGstpN` zQHs`^K7Yge^S$T$`P_TXJ?8=d01X7dLNnx#cv7d)VwFaE?fCPired-HoP9L|i4*VQ z1HoI$nEjWg z+sjeZ91--@1>_7!hj%4`;4~Q`!BXZF6B3<;4{qA+R=dry^^*n$41AfK`NWxGUq804 zPY*bsO^Ln-O8*MKRtTh#+o^pdWiwTCu=)p|?26c~mVwM^1;9gQQECCw6#t?~Bmd=y zL?KTFYO6X{7C(*#DV2Gor=kP;chx(P`iTOH6DN{U4H>MBe`w{s+T8Wo1)ZX9ovCiv z(}Y`o6U&U>a_w3h6Ngv_lGI>{64-}Nis_UP8DWFH8Uwdf+>!z%weC5 zW2w@Lby-@kBk3gUt>FZ~IIM+BB4H+veSJm(ZSyT5ltN{Wj`1S^2R-c|c^qiQTz!tN z&Y^41Dd#p#W}4=)0G$ zsV4zVd4-d=21g`i>hl5%&4@Xw{W=eW{og*nn0g=QjE$b;(I0g5uojoo1O~q1h}OxH za6f3~*FMJ6{SmlDCNK$URaNY?09u6HgI-h0r7&B+dPC@#q}mhsasSsLh2?MyF|BGP zTdI&lYZ=W<``X(=<+!Bi`l>+Av#JR6C?kx9(Ip5@Ifx=venMz!ntiP&!mKEYxo zWgohws9zEn4kn81V2X!9BBIb?+KrlT*4hcsDsgW0w)hH){?JZ@@~XhXX8hciZ?ASC ztfs&!*gy=hKA`YM*7uB*CD=J|d*4p|Y>{`dQ{^|)#eslAsa+iBLB8!>GNnC#Iw;3t z`liQ@mHOZ73PbEo2V7Qb^6WHcf7*o%ny2hJBfYbHuNzy82>JTSs+9HWy+y$!N?(4_ zahz%`aXyXLE{hK{ChOMbjF;k`#LzmSF5-LgJYUj114~T4WNCar?*8z8_S%Pk#T_kZ z=Q%dA3dG#f+4AjcrzrnVf4Z!K~i}=XW{MLj48j;Gg0DO?|*;kuk3} z>%@OH(R&kntZGuHMD^6ng}%I4u*K&q*81J~iGj_p;Spy;vG&W4*(RTw4Zgokw#N8o z>`V*Ks@RJJx7v-ayv)v}3z3BnW}rzWpskuC$Le#=KCmO1hDnm}k@SOYt~1b9-Hwo& z@mfxXU!4j3tX*400rlf)1gbH%EDHVy-tcApWYZ%I*n0e-6=v*)ic&NhGEI zHE#mYhZ@Zhst8E1=@%_X|5@BSf=a^NmFDp-_7?`TSf0KO$sU2whQ8qbK3(Ldb6$^^ z2}f)TBSWj6#v@fkrJ~ES(|!M#`uvi6Y}1n*0a^41uE;EC%k?qZPdVpsat2`LC?Ea4 z+ebOk(wjE%)?w&5lK(X%xoegsOXnR($MuwLxu1x%Gd9`PT6R)}N%!N|fgyyn(i`f+ycREgN-*1@(4yIFI_guB{PizMK_5w^>=4G4NuC>Ix5{f zqTU3jJReh|5Zc~|`3ufK{Lmey%38Xa5Hp)1)FTSHZ&WKvIXA?os$RY?i}GmmxF?=E zTd2wANt3RVpCG|p)G$S0LiWWDQ~xqWpKb5TCO2Xj8}N7u%&($Y>+;LYW4TfCH43h3 z+o4z1TE@&lbrDO46y|ADqlmI_f{_V0~xrrPp5z)9JS1i8t0i!jD(FfNjPp$s0`}skFB?@V$?qB)Il4HIp^MX z;jqgX?(07>WC!LGeQBjLrMV-iT z$emZ{0t1m$C^K_Ip`1VUWJ4@O-wLZD1t_^6FSg6qR%y~6)aW|43 zqk~rV7Rifk7>WjfJLDcjN*Q=k_|M92oef=fA6U+ebtc1$W3Ot)!|=OoGG91(a#lFD z5vgq&lfKua#XMHM)ZU^4u;))iGB)Xprg-@%l;S_WSE`cl7}tcU;!2&*e^ zLJ9_`&W1YIGMnuP5Yg_uP|e*__%e?cHSdFD@&aHmYCHX@6*=j+<?`buAq}uwVN(v6a2l60@=-liF^y$P%7F>*36~vSetStatus("等待网络..."); int result = modem_.WaitForNetworkReady(); if (result == -1) { - application.Alert("Error", "PIN is not ready"); + application.Alert("Error", "请插入SIM卡"); return; } else if (result == -2) { - application.Alert("Error", "Registration denied"); + application.Alert("Error", "无法接入网络,请检查流量卡状态"); return; } diff --git a/main/boards/common/wifi_board.cc b/main/boards/common/wifi_board.cc index 9d5105da..bf1ec1a8 100644 --- a/main/boards/common/wifi_board.cc +++ b/main/boards/common/wifi_board.cc @@ -53,9 +53,6 @@ void WifiBoard::EnterWifiConfigMode() { auto& wifi_ap = WifiConfigurationAp::GetInstance(); wifi_ap.SetSsidPrefix("Xiaozhi"); wifi_ap.Start(); - - // 播报配置 WiFi 的提示 - application.Alert("Info", "Configuring WiFi"); // 显示 WiFi 配置 AP 的 SSID 和 Web 服务器 URL std::string hint = "请在手机上连接热点 "; @@ -65,6 +62,9 @@ void WifiBoard::EnterWifiConfigMode() { display->SetStatus(hint); + // 播报配置 WiFi 的提示 + application.Alert("Info", "进入配网模式"); + // Wait forever until reset after configuration while (true) { int free_sram = heap_caps_get_free_size(MALLOC_CAP_INTERNAL);