forked from espressif/esp-idf
Update advanced_https_ota_example and native_ota_example to use esp_ota_abort in case of error
This commit is contained in:
@@ -144,9 +144,7 @@ void advanced_ota_example_task(void *pvParameter)
|
|||||||
if (esp_https_ota_is_complete_data_received(https_ota_handle) != true) {
|
if (esp_https_ota_is_complete_data_received(https_ota_handle) != true) {
|
||||||
// the OTA image was not completely received and user can customise the response to this situation.
|
// the OTA image was not completely received and user can customise the response to this situation.
|
||||||
ESP_LOGE(TAG, "Complete data was not received.");
|
ESP_LOGE(TAG, "Complete data was not received.");
|
||||||
}
|
} else {
|
||||||
|
|
||||||
ota_end:
|
|
||||||
ota_finish_err = esp_https_ota_finish(https_ota_handle);
|
ota_finish_err = esp_https_ota_finish(https_ota_handle);
|
||||||
if ((err == ESP_OK) && (ota_finish_err == ESP_OK)) {
|
if ((err == ESP_OK) && (ota_finish_err == ESP_OK)) {
|
||||||
ESP_LOGI(TAG, "ESP_HTTPS_OTA upgrade successful. Rebooting ...");
|
ESP_LOGI(TAG, "ESP_HTTPS_OTA upgrade successful. Rebooting ...");
|
||||||
@@ -156,9 +154,15 @@ ota_end:
|
|||||||
if (ota_finish_err == ESP_ERR_OTA_VALIDATE_FAILED) {
|
if (ota_finish_err == ESP_ERR_OTA_VALIDATE_FAILED) {
|
||||||
ESP_LOGE(TAG, "Image validation failed, image is corrupted");
|
ESP_LOGE(TAG, "Image validation failed, image is corrupted");
|
||||||
}
|
}
|
||||||
ESP_LOGE(TAG, "ESP_HTTPS_OTA upgrade failed %d", ota_finish_err);
|
ESP_LOGE(TAG, "ESP_HTTPS_OTA upgrade failed 0x%x", ota_finish_err);
|
||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ota_end:
|
||||||
|
esp_https_ota_abort(https_ota_handle);
|
||||||
|
ESP_LOGE(TAG, "ESP_HTTPS_OTA upgrade failed");
|
||||||
|
vTaskDelete(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void app_main(void)
|
void app_main(void)
|
||||||
|
@@ -187,18 +187,21 @@ static void ota_example_task(void *pvParameter)
|
|||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
ESP_LOGE(TAG, "esp_ota_begin failed (%s)", esp_err_to_name(err));
|
ESP_LOGE(TAG, "esp_ota_begin failed (%s)", esp_err_to_name(err));
|
||||||
http_cleanup(client);
|
http_cleanup(client);
|
||||||
|
esp_ota_abort(update_handle);
|
||||||
task_fatal_error();
|
task_fatal_error();
|
||||||
}
|
}
|
||||||
ESP_LOGI(TAG, "esp_ota_begin succeeded");
|
ESP_LOGI(TAG, "esp_ota_begin succeeded");
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGE(TAG, "received package is not fit len");
|
ESP_LOGE(TAG, "received package is not fit len");
|
||||||
http_cleanup(client);
|
http_cleanup(client);
|
||||||
|
esp_ota_abort(update_handle);
|
||||||
task_fatal_error();
|
task_fatal_error();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = esp_ota_write( update_handle, (const void *)ota_write_data, data_read);
|
err = esp_ota_write( update_handle, (const void *)ota_write_data, data_read);
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
http_cleanup(client);
|
http_cleanup(client);
|
||||||
|
esp_ota_abort(update_handle);
|
||||||
task_fatal_error();
|
task_fatal_error();
|
||||||
}
|
}
|
||||||
binary_file_length += data_read;
|
binary_file_length += data_read;
|
||||||
@@ -222,6 +225,7 @@ static void ota_example_task(void *pvParameter)
|
|||||||
if (esp_http_client_is_complete_data_received(client) != true) {
|
if (esp_http_client_is_complete_data_received(client) != true) {
|
||||||
ESP_LOGE(TAG, "Error in receiving complete file");
|
ESP_LOGE(TAG, "Error in receiving complete file");
|
||||||
http_cleanup(client);
|
http_cleanup(client);
|
||||||
|
esp_ota_abort(update_handle);
|
||||||
task_fatal_error();
|
task_fatal_error();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user