diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-04-09 11:44:20 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-04-09 11:44:20 +1000 |
| commit | e5c6ffdb8b3f1a1a725b387283fdf14f463a8a44 (patch) | |
| tree | 4fd853f36abf8bc46c5d4e4601d3bff52095f60f /src/system_fsm/running.cpp | |
| parent | f93e3c1c69f90fcb963840f8b3a9592c35bd096b (diff) | |
| download | tangara-fw-e5c6ffdb8b3f1a1a725b387283fdf14f463a8a44.tar.gz | |
Unmount storage when there's a bad error
Diffstat (limited to 'src/system_fsm/running.cpp')
| -rw-r--r-- | src/system_fsm/running.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/system_fsm/running.cpp b/src/system_fsm/running.cpp index 8625ac66..796c96dc 100644 --- a/src/system_fsm/running.cpp +++ b/src/system_fsm/running.cpp @@ -8,6 +8,7 @@ #include "audio_events.hpp" #include "database.hpp" #include "db_events.hpp" +#include "ff.h" #include "file_gatherer.hpp" #include "freertos/portmacro.h" #include "freertos/projdefs.h" @@ -119,6 +120,13 @@ void Running::react(const SamdUsbMscChanged& ev) { } } +void Running::react(const StorageError& ev) { + ESP_LOGE(kTag, "storage error %u", ev.error); + if (ev.error == FR_DISK_ERR || ev.error == FR_INVALID_OBJECT) { + unmountStorage(); + } +} + auto Running::checkIdle() -> void { xTimerStop(sUnmountTimer, portMAX_DELAY); if (IdleCondition()) { |
