From 6f73271bcdf03f717a17bbd30e12a25ce6bc343e Mon Sep 17 00:00:00 2001 From: Joseph Hewitt <2086589+JosephHewitt@users.noreply.github.com> Date: Sun, 30 Jun 2024 10:59:29 +0100 Subject: [PATCH] Full restart on factory reset, increment bootcount to match filesystem (#160) Closes #152 by performing ESP.restart() during factory reset Closes #154 by incrementing bootcount when a colliding filename is detected --- A/A.ino | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/A/A.ino b/A/A.ino index c6096f4..f76e21f 100644 --- a/A/A.ino +++ b/A/A.ino @@ -1279,7 +1279,7 @@ void boot_config(){ display.display(); preferences.clear(); delay(2000); - firstrun = true; + ESP.restart(); } if (!firstrun && !block_resets){ @@ -2419,9 +2419,24 @@ void setup() { Serial.println("Opening destination file for writing"); - String filename = "/wd3-"; - filename = filename + bootcount; - filename = filename + ".csv"; + String filename = ""; + while (filename == "" || SD.exists(filename)){ + filename = "/wd3-"; + filename = filename + bootcount; + filename = filename + ".csv"; + if (SD.exists(filename)){ + Serial.print("File already exists at "); + Serial.print(filename); + bootcount++; + filename = ""; + preferences.begin("wardriver", false); + preferences.putULong("bootcount", bootcount); + preferences.end(); + Serial.print("Incremented bootcount to "); + Serial.println(bootcount); + } + } + Serial.print("Opening file for main session: "); Serial.println(filename); filewriter = SD.open(filename, FILE_APPEND);