Поскольку я понимаю, что функция отката должна быть реализована, и приложение должно войти в режим диагностики, как только я включу функцию APP_ROLLBACK_ENABLE, но мое приложение не переходит в состояние диагностики. Состояние указано в коде:
Как видно, мое состояние предположительно не ESP_VERIFY
esp_partition_get_sha256(esp_ota_get_running_partition(), sha_256);
print_sha256(sha_256, "SHA-256 for current firmware: ");
const esp_partition_t *running = esp_ota_get_running_partition();
esp_ota_img_states_t ota_state;
if (esp_ota_get_state_partition(running, &ota_state) == ESP_OK) {
ESP_LOGI(TAG, "Get State Partition was Successfull");
if (ota_state == ESP_OTA_IMG_PENDING_VERIFY) {
// run diagnostic function ...
bool diagnostic_is_ok = true;
if (diagnostic_is_ok) {
ESP_LOGI(TAG, "Diagnostics completed successfully! Continuing execution ...");
esp_ota_mark_app_valid_cancel_rollback();
} else {
ESP_LOGE(TAG, "Diagnostics failed! Start rollback to the previous version ...");
esp_ota_mark_app_invalid_rollback_and_reboot();
}
}
}
ОЖИДАЕТСЯ: должна появиться диагностика приложения
ACTUAL: код диагностики приложения не получает состояние: ESP_OTA_IMG_PENDING_VERIFY