From bbe2c373bfd825c229e27dcadf7af4a948cce6b8 Mon Sep 17 00:00:00 2001 From: fvanroie <15969459+fvanroie@users.noreply.github.com> Date: Fri, 1 Oct 2021 13:58:26 +0200 Subject: [PATCH] Create default files after factory reset --- src/hasp/hasp_dispatch.cpp | 4 ++-- src/hasp/hasp_dispatch.h | 1 + src/hasp_config.cpp | 4 +--- src/hasp_filesystem.cpp | 24 +++++++++++++++--------- src/sys/svc/hasp_http.cpp | 2 +- src/sys/svc/hasp_http_async.cpp | 2 +- 6 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/hasp/hasp_dispatch.cpp b/src/hasp/hasp_dispatch.cpp index 17cf4b7d..05673ae2 100644 --- a/src/hasp/hasp_dispatch.cpp +++ b/src/hasp/hasp_dispatch.cpp @@ -615,7 +615,7 @@ void dispatch_parse_jsonl(std::istream& stream) { uint8_t savedPage = haspPages.get(); uint16_t line = 1; - DynamicJsonDocument jsonl(MQTT_MAX_PACKET_SIZE / 2 + 128); // max ~256 characters per line + DynamicJsonDocument jsonl(MQTT_MAX_PACKET_SIZE / 2 + 128); DeserializationError jsonError = deserializeJson(jsonl, stream); #ifdef ARDUINO @@ -1147,7 +1147,7 @@ bool dispatch_factory_reset() #endif #if HASP_USE_EEPROM > 0 - erased = false; + erased = configClearEeprom(); #endif return formated && erased; diff --git a/src/hasp/hasp_dispatch.h b/src/hasp/hasp_dispatch.h index 70b36e6a..7b2b93c9 100644 --- a/src/hasp/hasp_dispatch.h +++ b/src/hasp/hasp_dispatch.h @@ -63,6 +63,7 @@ void dispatch_page_next(lv_scr_load_anim_t effectid); void dispatch_page_prev(lv_scr_load_anim_t effectid); void dispatch_page_back(lv_scr_load_anim_t effectid); +bool dispatch_factory_reset(); void dispatch_reboot(bool saveConfig); void dispatch_current_state(uint8_t source); void dispatch_current_page(); diff --git a/src/hasp_config.cpp b/src/hasp_config.cpp index 3f0afa47..38a3d5f6 100644 --- a/src/hasp_config.cpp +++ b/src/hasp_config.cpp @@ -518,10 +518,8 @@ bool configClearEeprom() LOG_ERROR(TAG_CONF, F("Failed to clear to EEPROM")); return false; } -#elif HASP_USE_SPIFFS > 0 || HASP_USE_LITTLEFS > 0 - return HASP_FS.format(); #else - return false; + return true; // nothing to clear #endif } diff --git a/src/hasp_filesystem.cpp b/src/hasp_filesystem.cpp index 85a35a88..9b6ff03d 100644 --- a/src/hasp_filesystem.cpp +++ b/src/hasp_filesystem.cpp @@ -15,8 +15,7 @@ #endif #ifndef HASP_PAGES_JSONL -#define HASP_PAGES_JSONL \ - "{\"page\":1,\"id\":10,\"w\":240,\"obj\":\"label\",\"txt\":\"%hostname%\"}" +#define HASP_PAGES_JSONL "{\"page\":1,\"id\":10,\"w\":240,\"obj\":\"label\",\"txt\":\"%hostname%\"}" #endif #include @@ -186,20 +185,27 @@ void filesystemList() #endif } -static inline void filesystemCreateFile(const char* filename, const char* data) +static void filesystem_write_file(const char* filename, const char* data) { if(HASP_FS.exists(filename)) return; + + LOG_TRACE(TAG_CONF, F(D_FILE_SAVING), filename); File file = HASP_FS.open(filename, "w"); - if(!file) return; - file.print(data); - file.close(); + + if(file) { + file.print(data); + file.close(); + LOG_INFO(TAG_CONF, F(D_FILE_SAVED), filename); + } else { + LOG_ERROR(TAG_FILE, D_FILE_SAVE_FAILED, filename); + } } void filesystemSetupFiles() { - filesystemCreateFile("/pages.jsonl", HASP_PAGES_JSONL); - filesystemCreateFile("/online.cmd", HASP_ONLINE_CMD); - filesystemCreateFile("/offline.cmd", HASP_OFFLINE_CMD); + filesystem_write_file("/pages.jsonl", HASP_PAGES_JSONL); + filesystem_write_file("/online.cmd", HASP_ONLINE_CMD); + filesystem_write_file("/offline.cmd", HASP_OFFLINE_CMD); } bool filesystemSetup(void) diff --git a/src/sys/svc/hasp_http.cpp b/src/sys/svc/hasp_http.cpp index c41eb750..a398f2a3 100644 --- a/src/sys/svc/hasp_http.cpp +++ b/src/sys/svc/hasp_http.cpp @@ -2241,7 +2241,7 @@ void httpHandleResetConfig() httpMessage += F("
"); if(resetConfirmed) { // User has confirmed, so reset everything - bool formatted = configClearEeprom(); + bool formatted = dispatch_factory_reset(); // configClearEeprom(); if(formatted) { httpMessage += F("Resetting all saved settings and restarting device"); } else { diff --git a/src/sys/svc/hasp_http_async.cpp b/src/sys/svc/hasp_http_async.cpp index fdb78dc7..a316b4c7 100644 --- a/src/sys/svc/hasp_http_async.cpp +++ b/src/sys/svc/hasp_http_async.cpp @@ -2146,7 +2146,7 @@ void httpHandleResetConfig(AsyncWebServerRequest* request) httpMessage += F("
"); if(resetConfirmed) { // User has confirmed, so reset everything - bool formatted = configClearEeprom(); + bool formatted = dispatch_factory_reset(); // configClearEeprom(); if(formatted) { httpMessage += F("Resetting all saved settings and restarting device"); } else {