From 557c5d645e2e8723116a0b063b2b8f586da638f5 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 30 Jan 2024 22:29:12 +0100 Subject: [PATCH] Remove all files but the pin_mapping.json from filesystem on factory reset This allows to create more user defined files and get them deleted on factory reset. --- include/Utils.h | 1 + src/Utils.cpp | 16 ++++++++++++++++ src/WebApi_config.cpp | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/include/Utils.h b/include/Utils.h index 4d4bfee..fddc2ab 100644 --- a/include/Utils.h +++ b/include/Utils.h @@ -11,4 +11,5 @@ public: static int getTimezoneOffset(); static void restartDtu(); static bool checkJsonAlloc(const DynamicJsonDocument& doc, const char* function, const uint16_t line); + static void removeAllFiles(); }; diff --git a/src/Utils.cpp b/src/Utils.cpp index 386e0ed..7ad0729 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -6,7 +6,9 @@ #include "Display_Graphic.h" #include "Led_Single.h" #include "MessageOutput.h" +#include "PinMapping.h" #include +#include uint32_t Utils::getChipId() { @@ -76,3 +78,17 @@ bool Utils::checkJsonAlloc(const DynamicJsonDocument& doc, const char* function, return true; } + +/// @brief Remove all files but the PINMAPPING_FILENAME +void Utils::removeAllFiles() +{ + auto root = LittleFS.open("/"); + auto file = root.getNextFileName(); + + while (file != "") { + if (file != PINMAPPING_FILENAME) { + LittleFS.remove(file); + } + file = root.getNextFileName(); + } +} diff --git a/src/WebApi_config.cpp b/src/WebApi_config.cpp index c275ffc..29f3531 100644 --- a/src/WebApi_config.cpp +++ b/src/WebApi_config.cpp @@ -108,7 +108,7 @@ void WebApiConfigClass::onConfigDelete(AsyncWebServerRequest* request) response->setLength(); request->send(response); - LittleFS.remove(CONFIG_FILENAME); + Utils::removeAllFiles(); Utils::restartDtu(); }