diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index eac41c8a..12057109 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -444,6 +444,12 @@ config AUDIO_DEBUG_UDP_SERVER help UDP服务器地址,格式: IP:PORT,用于接收音频调试数据 +config RECEIVE_CUSTOM_MESSAGE + bool "Enable Custom Message Reception" + default n + help + 启用接收自定义消息功能,允许设备接收来自服务器的自定义消息(最好通过 MQTT 协议) + choice IOT_PROTOCOL prompt "IoT Protocol" default IOT_PROTOCOL_MCP diff --git a/main/application.cc b/main/application.cc index 198bbb0c..09f260ba 100644 --- a/main/application.cc +++ b/main/application.cc @@ -554,6 +554,18 @@ void Application::Start() { display->SetEmotion(emotion_str.c_str()); }); } +#if CONFIG_RECEIVE_CUSTOM_MESSAGE + } else if (strcmp(type->valuestring, "custom") == 0) { + auto payload = cJSON_GetObjectItem(root, "payload"); + ESP_LOGI(TAG, "Received custom message: %s", cJSON_PrintUnformatted(root)); + if (cJSON_IsObject(payload)) { + Schedule([this, display, payload_str = std::string(cJSON_PrintUnformatted(payload))]() { + display->SetChatMessage("system", payload_str.c_str()); + }); + } else { + ESP_LOGW(TAG, "Invalid custom message format: missing payload"); + } +#endif #if CONFIG_IOT_PROTOCOL_MCP } else if (strcmp(type->valuestring, "mcp") == 0) { auto payload = cJSON_GetObjectItem(root, "payload"); diff --git a/main/boards/common/wifi_board.cc b/main/boards/common/wifi_board.cc index 77781adb..92ce68a9 100644 --- a/main/boards/common/wifi_board.cc +++ b/main/boards/common/wifi_board.cc @@ -51,7 +51,7 @@ void WifiBoard::EnterWifiConfigMode() { // 播报配置 WiFi 的提示 application.Alert(Lang::Strings::WIFI_CONFIG_MODE, hint.c_str(), "", Lang::Sounds::P3_WIFICONFIG); - #if USE_ACOUSTIC_WIFI_PROVISIONING + #if CONFIG_USE_ACOUSTIC_WIFI_PROVISIONING audio_wifi_config::ReceiveWifiCredentialsFromAudio(&application, &wifi_ap); #endif