From 4a0ff0d0eb2092e08c5daa5900a48f80e02b0058 Mon Sep 17 00:00:00 2001 From: jim Date: Fri, 1 Aug 2025 14:00:40 +0800 Subject: [PATCH] esp_rainmaker: make esp_rmaker_params_mqtt_init function execute in queue so that it will not block event task --- components/esp_rainmaker/idf_component.yml | 2 +- components/esp_rainmaker/src/core/esp_rmaker_core.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/components/esp_rainmaker/idf_component.yml b/components/esp_rainmaker/idf_component.yml index 053a384..1c6def2 100644 --- a/components/esp_rainmaker/idf_component.yml +++ b/components/esp_rainmaker/idf_component.yml @@ -1,5 +1,5 @@ ## IDF Component Manager Manifest File -version: "1.6.1" +version: "1.6.2" description: ESP RainMaker firmware agent url: https://github.com/espressif/esp-rainmaker/tree/master/components/esp_rainmaker repository: https://github.com/espressif/esp-rainmaker.git diff --git a/components/esp_rainmaker/src/core/esp_rmaker_core.c b/components/esp_rainmaker/src/core/esp_rmaker_core.c index e8a517b..7f51188 100644 --- a/components/esp_rainmaker/src/core/esp_rmaker_core.c +++ b/components/esp_rainmaker/src/core/esp_rmaker_core.c @@ -225,6 +225,10 @@ esp_err_t esp_rmaker_change_node_id(char *node_id, size_t len) return ESP_ERR_INVALID_STATE; } +static void esp_rmaker_params_mqtt_init_cb(void *data) +{ + esp_rmaker_params_mqtt_init(); +} /* Event handler for catching system events */ static void esp_rmaker_event_handler(void* arg, esp_event_base_t event_base, @@ -261,7 +265,7 @@ static void esp_rmaker_event_handler(void* arg, esp_event_base_t event_base, (event_id == RMAKER_EVENT_USER_NODE_MAPPING_DONE || event_id == RMAKER_EVENT_USER_NODE_MAPPING_RESET)) { esp_event_handler_unregister(RMAKER_EVENT, event_id, &esp_rmaker_event_handler); - esp_rmaker_params_mqtt_init(); + esp_rmaker_work_queue_add_task(esp_rmaker_params_mqtt_init_cb, NULL); } else if (event_base == RMAKER_COMMON_EVENT && event_id == RMAKER_MQTT_EVENT_CONNECTED) { if (rmaker_core_event_group) { /* Signal rmaker thread to continue execution */