From 592f231627843bc44ebaaa4506aec26da1f56499 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 8 Aug 2023 17:11:13 +1000 Subject: [PATCH] Improve sd card errors --- src/drivers/storage.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/drivers/storage.cpp b/src/drivers/storage.cpp index db257dee..f253a79a 100644 --- a/src/drivers/storage.cpp +++ b/src/drivers/storage.cpp @@ -63,7 +63,7 @@ auto SdStorage::Create(IGpios* gpio) -> cpp::result { // Will return ESP_ERR_INVALID_RESPONSE if there is no card esp_err_t err = sdmmc_card_init(host.get(), card.get()); if (err != ESP_OK) { - ESP_LOGW(kTag, "Failed to read, err: %d", err); + ESP_LOGW(kTag, "Failed to read, err: %s", esp_err_to_name(err)); return cpp::fail(Error::FAILED_TO_READ); } @@ -74,7 +74,21 @@ auto SdStorage::Create(IGpios* gpio) -> cpp::result { // Mount right now, not on first operation. FRESULT ferr = f_mount(fs, "", 1); if (ferr != FR_OK) { - ESP_LOGW(kTag, "Failed to mount, err: %d", ferr); + std::string err_str; + switch (ferr) { + case FR_DISK_ERR: + err_str = "FR_DISK_ERR"; + break; + case FR_NOT_READY: + err_str = "FR_NOT_READY"; + break; + case FR_NO_FILESYSTEM: + err_str = "FR_NO_FILESYSTEM"; + break; + default: + err_str = std::to_string(ferr); + } + ESP_LOGW(kTag, "Failed to mount, err: %s", err_str.c_str()); return cpp::fail(Error::FAILED_TO_MOUNT); }