diff --git a/main/boards/esp-hi/config.json b/main/boards/esp-hi/config.json index 90bc407e..79c5c82e 100644 --- a/main/boards/esp-hi/config.json +++ b/main/boards/esp-hi/config.json @@ -28,7 +28,8 @@ "CONFIG_MMAP_FILE_NAME_LENGTH=25", "CONFIG_ESP_CONSOLE_NONE=y", "CONFIG_USE_ESP_WAKE_WORD=y", - "CONFIG_IOT_PROTOCOL_MCP=y" + "CONFIG_IOT_PROTOCOL_MCP=y", + "CONFIG_COMPILER_OPTIMIZATION_SIZE=y" ] } ] diff --git a/main/boards/esp-hi/esp_hi.cc b/main/boards/esp-hi/esp_hi.cc index 9ca851da..9c621c48 100644 --- a/main/boards/esp-hi/esp_hi.cc +++ b/main/boards/esp-hi/esp_hi.cc @@ -85,17 +85,28 @@ private: int32_t event_id, void* event_data) { if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) { - EspHi* instance = static_cast(arg); - if (!instance->web_server_initialized_) { - ESP_LOGI(TAG, "WiFi connected, init web control server"); - esp_err_t err = esp_hi_web_control_server_init(); - if (err != ESP_OK) { - ESP_LOGE(TAG, "Failed to initialize web control server: %d", err); - } else { - ESP_LOGI(TAG, "Web control server initialized"); - instance->web_server_initialized_ = true; - } - } + + xTaskCreate( + [](void* arg) { + EspHi* instance = static_cast(arg); + + vTaskDelay(5000 / portTICK_PERIOD_MS); + + if (!instance->web_server_initialized_) { + ESP_LOGI(TAG, "WiFi connected, init web control server"); + esp_err_t err = esp_hi_web_control_server_init(); + if (err != ESP_OK) { + ESP_LOGE(TAG, "Failed to initialize web control server: %d", err); + } else { + ESP_LOGI(TAG, "Web control server initialized"); + instance->web_server_initialized_ = true; + } + } + + vTaskDelete(NULL); + }, + "web_server_init", + 1024 * 10, arg, 5, nullptr); } } #endif //CONFIG_ESP_HI_WEB_CONTROL_ENABLED