From a6aefdfe607a35ff927350c996bbfffbe6b7bd21 Mon Sep 17 00:00:00 2001 From: unlogisch04 <98281608+unlogisch04@users.noreply.github.com> Date: Fri, 5 Dec 2025 00:36:01 +0100 Subject: [PATCH] check if sensortoggle is populated (#501) Not sure if it will find any edge case. The use of .getValues() should be programmed in a different way. --- src/configuration/Configuration.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/configuration/Configuration.cpp b/src/configuration/Configuration.cpp index efc4f30..cadca18 100644 --- a/src/configuration/Configuration.cpp +++ b/src/configuration/Configuration.cpp @@ -123,14 +123,21 @@ void Configuration::save() { file.write((uint8_t*)&config, sizeof(SensorConfig)); file.close(); - sprintf(path, DIR_TOGGLES "/%zu", i); + if (i < m_SensorToggles.size()) { + sprintf(path, DIR_TOGGLES "/%zu", i); - m_Logger.trace("Saving sensor toggle state for %d", i); + m_Logger.trace("Saving sensor toggle state for %d", i); - file = LittleFS.open(path, "w"); - auto toggleValues = m_SensorToggles[i].getValues(); - file.write((uint8_t*)&toggleValues, sizeof(SensorToggleValues)); - file.close(); + file = LittleFS.open(path, "w"); + auto toggleValues = m_SensorToggles[i].getValues(); + file.write((uint8_t*)&toggleValues, sizeof(SensorToggleValues)); + file.close(); + } else { + m_Logger.trace( + "Skipping saving toggles for sensor %d, no toggles present", + i + ); + } } {