From affea1f8eb2d8839ee458bdf23fc2b2ce966b059 Mon Sep 17 00:00:00 2001 From: Elfish Date: Mon, 3 Apr 2023 12:37:30 +0200 Subject: [PATCH] Added existance check for alarm.json and dev.json --- src/Globals.cpp | 39 +++++++------- src/PeripheryManager.cpp | 106 +++++++++++++++++++-------------------- 2 files changed, 71 insertions(+), 74 deletions(-) diff --git a/src/Globals.cpp b/src/Globals.cpp index 175aef4..c7272f0 100644 --- a/src/Globals.cpp +++ b/src/Globals.cpp @@ -35,30 +35,29 @@ void startLittleFS() void loadDevSettings() { Serial.println("loadSettings"); - File file = LittleFS.open("/dev.json", "r"); - if (!file) + if (LittleFS.exists("/dev.json")) { - return; - } - DynamicJsonDocument doc(128); - DeserializationError error = deserializeJson(doc, file); - if (error) - { - Serial.println(F("Failed to read dev settings")); - return; - } + File file = LittleFS.open("/dev.json", "r"); + DynamicJsonDocument doc(128); + DeserializationError error = deserializeJson(doc, file); + if (error) + { + Serial.println(F("Failed to read dev settings")); + return; + } - if (doc.containsKey("bootsound")) - { - BOOT_SOUND = doc["bootsound"].as(); - } + if (doc.containsKey("bootsound")) + { + BOOT_SOUND = doc["bootsound"].as(); + } - if (doc.containsKey("bootsound")) - { - UPPERCASE_LETTERS = doc["uppercase"].as(); - } + if (doc.containsKey("bootsound")) + { + UPPERCASE_LETTERS = doc["uppercase"].as(); + } - file.close(); + file.close(); + } } void loadSettings() diff --git a/src/PeripheryManager.cpp b/src/PeripheryManager.cpp index 12f42fe..dd8869d 100644 --- a/src/PeripheryManager.cpp +++ b/src/PeripheryManager.cpp @@ -329,63 +329,61 @@ time_t lastAlarmTime = 0; void PeripheryManager_::checkAlarms() { - File file = LittleFS.open("/alarms.json", "r"); - if (!file) + if (LittleFS.exists("/alarms.json")) { - return; - } - - DynamicJsonDocument doc(file.size() * 1.33); - DeserializationError error = deserializeJson(doc, file); - if (error) - { - Serial.println(F("Failed to read Alarm file")); - return; - } - JsonArray alarms = doc["alarms"]; - file.close(); - - time_t now1 = time(nullptr); - struct tm *timeInfo; - timeInfo = localtime(&now1); - int currentHour = timeInfo->tm_hour; - int currentMinute = timeInfo->tm_min; - int currentDay = timeInfo->tm_wday - 1; - - for (JsonObject alarm : alarms) - { - int alarmHour = alarm["hour"]; - int alarmMinute = alarm["minute"]; - String alarmDays = alarm["days"]; - - if (currentHour == alarmHour && currentMinute == alarmMinute && alarmDays.indexOf(String(currentDay)) != -1) + File file = LittleFS.open("/alarms.json", "r"); + DynamicJsonDocument doc(file.size() * 1.33); + DeserializationError error = deserializeJson(doc, file); + if (error) { - if (difftime(now1, lastAlarmTime) < MIN_ALARM_INTERVAL) - { - return; - } - - ALARM_ACTIVE = true; - lastAlarmTime = now1; - - if (alarm.containsKey("sound")) - { - ALARM_SOUND = alarm["sound"].as(); - } - else - { - ALARM_SOUND = ""; - } - - if (alarm.containsKey("snooze")) - { - SNOOZE_TIME = alarm["snooze"].as(); - } - else - { - SNOOZE_TIME = 0; - } + Serial.println(F("Failed to read Alarm file")); + return; } + JsonArray alarms = doc["alarms"]; + file.close(); + + time_t now1 = time(nullptr); + struct tm *timeInfo; + timeInfo = localtime(&now1); + int currentHour = timeInfo->tm_hour; + int currentMinute = timeInfo->tm_min; + int currentDay = timeInfo->tm_wday - 1; + + for (JsonObject alarm : alarms) + { + int alarmHour = alarm["hour"]; + int alarmMinute = alarm["minute"]; + String alarmDays = alarm["days"]; + + if (currentHour == alarmHour && currentMinute == alarmMinute && alarmDays.indexOf(String(currentDay)) != -1) + { + if (difftime(now1, lastAlarmTime) < MIN_ALARM_INTERVAL) + { + return; + } + + ALARM_ACTIVE = true; + lastAlarmTime = now1; + + if (alarm.containsKey("sound")) + { + ALARM_SOUND = alarm["sound"].as(); + } + else + { + ALARM_SOUND = ""; + } + + if (alarm.containsKey("snooze")) + { + SNOOZE_TIME = alarm["snooze"].as(); + } + else + { + SNOOZE_TIME = 0; + } + } + } } }