From 168ea9b65893a681e377b50112aca4aa97028566 Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Thu, 17 Feb 2022 12:26:40 +0100
Subject: [PATCH] Add save to save config

---
 ampel-firmware/co2_sensor.cpp     | 3 +--
 ampel-firmware/csv_writer.cpp     | 1 -
 ampel-firmware/lorawan.cpp        | 1 -
 ampel-firmware/mqtt.cpp           | 3 +--
 ampel-firmware/sensor_console.cpp | 2 +-
 ampel-firmware/web_config.cpp     | 7 ++++---
 6 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/ampel-firmware/co2_sensor.cpp b/ampel-firmware/co2_sensor.cpp
index bac7fde..40f725e 100644
--- a/ampel-firmware/co2_sensor.cpp
+++ b/ampel-firmware/co2_sensor.cpp
@@ -103,7 +103,7 @@ namespace sensor {
     Serial.println(F(" s during acclimatization."));
     scd30.setMeasurementInterval(config::measurement_timestep_bootup); // [s]
 
-    sensor_console::defineIntCommand("co2", setCO2forDebugging, F("1500 (Sets co2 level, for debugging purposes)"));
+    sensor_console::defineIntCommand("co2", setCO2forDebugging, F("1500 (Sets co2 level, for debugging)"));
     sensor_console::defineIntCommand("timer", setTimer, F("30 (Sets measurement interval, in s)"));
     sensor_console::defineCommand("calibrate", startCalibrationProcess, F("(Starts calibration process)"));
     sensor_console::defineIntCommand("calibrate", calibrateSensorToSpecificPPM,
@@ -305,7 +305,6 @@ namespace sensor {
       Serial.println(F("s (change will only be applied after next measurement)."));
       scd30.setMeasurementInterval(timestep);
       config::measurement_timestep = timestep;
-      config::save();
       led_effects::showKITTWheel(color::green, 1);
     }
   }
diff --git a/ampel-firmware/csv_writer.cpp b/ampel-firmware/csv_writer.cpp
index 2cbf77e..d718947 100644
--- a/ampel-firmware/csv_writer.cpp
+++ b/ampel-firmware/csv_writer.cpp
@@ -176,7 +176,6 @@ namespace csv_writer {
     Serial.print(F("Setting CSV Interval to : "));
     Serial.print(config::csv_interval);
     Serial.println("s.");
-    config::save();
     led_effects::showKITTWheel(color::green, 1);
   }
 
diff --git a/ampel-firmware/lorawan.cpp b/ampel-firmware/lorawan.cpp
index dfb256a..ad4e22e 100644
--- a/ampel-firmware/lorawan.cpp
+++ b/ampel-firmware/lorawan.cpp
@@ -220,7 +220,6 @@ namespace lorawan {
     Serial.print(F("Setting LoRa sending interval to : "));
     Serial.print(config::lorawan_sending_interval);
     Serial.println("s.");
-    config::save();
     led_effects::showKITTWheel(color::green, 1);
   }
 }
diff --git a/ampel-firmware/mqtt.cpp b/ampel-firmware/mqtt.cpp
index b0ab9a4..f13dd96 100644
--- a/ampel-firmware/mqtt.cpp
+++ b/ampel-firmware/mqtt.cpp
@@ -180,8 +180,7 @@ namespace mqtt {
     config::mqtt_sending_interval = sending_interval;
     Serial.print(F("Setting MQTT sending interval to : "));
     Serial.print(config::mqtt_sending_interval);
-    Serial.println("s.");
-    config::save();
+    Serial.println(F("s."));
     led_effects::showKITTWheel(color::green, 1);
   }
 
diff --git a/ampel-firmware/sensor_console.cpp b/ampel-firmware/sensor_console.cpp
index 7e50c21..88790b4 100644
--- a/ampel-firmware/sensor_console.cpp
+++ b/ampel-firmware/sensor_console.cpp
@@ -1,7 +1,7 @@
 #include "sensor_console.h"
 
 namespace sensor_console {
-  const uint8_t MAX_COMMANDS = 22;
+  const uint8_t MAX_COMMANDS = 25;
   const uint8_t MAX_COMMAND_SIZE = 20; // Should be enough for "set_time 1618829570\n"
 
   uint8_t commands_count = 0;
diff --git a/ampel-firmware/web_config.cpp b/ampel-firmware/web_config.cpp
index e8fa324..852f129 100644
--- a/ampel-firmware/web_config.cpp
+++ b/ampel-firmware/web_config.cpp
@@ -223,20 +223,21 @@ namespace web_config {
     //TODO: Add "ap" command?
     //TODO: Add "wifi_ssid" command?
     //TODO: Add "wifi_password" command?
-    //TODO: Add "save_config" command?
+    sensor_console::defineCommand("save_config", config::save, F("(Saves the config to EEPROM)"));
+
     sensor_console::defineCommand("reset_config", []() {
       Serial.println(F("Resetting config..."));
       iotWebConf->getRootParameterGroup()->applyDefaultValue();
       iotWebConf->saveConfig();
       Serial.println(F("Done!"));
-    }, F("(resets the complete IotWeb config)"));
+    }, F("(Resets the complete IotWeb config)"));
 
     sensor_console::defineIntCommand("wifi", [](int32_t onOff) {
       config::is_wifi_on = onOff;
       iotWebConf->saveConfig();
       Serial.print(F("WiFi - "));
       Serial.println(onOff ? F("On!") : F("Off!"));
-    }, F("0/1 (Turns Wifi on/off)."));
+    }, F("0/1 (Turns Wifi on/off)"));
 
     iotWebConf->loadConfig();
 
-- 
GitLab