From 3ae4adb617848b48b670bbb93b68cf350a7c9dac Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Fri, 16 Apr 2021 22:52:40 +0200
Subject: [PATCH] CSV interval

---
 ampel-firmware/csv_writer.cpp | 10 ++++++++++
 ampel-firmware/csv_writer.h   |  1 +
 ampel-firmware/mqtt.cpp       | 13 -------------
 3 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/ampel-firmware/csv_writer.cpp b/ampel-firmware/csv_writer.cpp
index 6536303..4dd0936 100644
--- a/ampel-firmware/csv_writer.cpp
+++ b/ampel-firmware/csv_writer.cpp
@@ -86,6 +86,14 @@ namespace csv_writer {
     return getTotalSpace() - getUsedSpace();
   }
 
+  void setCSVinterval(int32_t csv_interval) {
+    config::csv_interval = csv_interval;
+    Serial.print(F("Setting CSV Interval to : "));
+    Serial.print(config::csv_interval);
+    Serial.println("s.");
+    led_effects::showKITTWheel(color::green, 1);
+  }
+
   void initialize() {
     Serial.print(F("Initializing FS..."));
     if (mountFS()) {
@@ -116,6 +124,8 @@ namespace csv_writer {
     Serial.println("Filesystem content:");
     showFilesystemContent();
     Serial.println();
+
+    sensor_commands::defineCallback("csv", setCSVinterval);
   }
 
   File openOrCreate() {
diff --git a/ampel-firmware/csv_writer.h b/ampel-firmware/csv_writer.h
index e0e0d53..4ed3888 100644
--- a/ampel-firmware/csv_writer.h
+++ b/ampel-firmware/csv_writer.h
@@ -14,6 +14,7 @@
 #include "config.h"
 #include "util.h"
 #include "led_effects.h"
+#include "sensor_commands.h"
 
 namespace config {
   extern uint16_t csv_interval; // [s]
diff --git a/ampel-firmware/mqtt.cpp b/ampel-firmware/mqtt.cpp
index 6427647..ba73e4e 100644
--- a/ampel-firmware/mqtt.cpp
+++ b/ampel-firmware/mqtt.cpp
@@ -64,17 +64,6 @@ namespace mqtt {
     led_effects::showKITTWheel(color::green, 1);
   }
 
-#ifdef AMPEL_CSV
-  void setCSVinterval(String messageString) {
-    messageString.replace("csv ", "");
-    config::csv_interval = messageString.toInt();
-    Serial.print(F("Setting CSV Interval to : "));
-    Serial.print(config::csv_interval);
-    Serial.println("s.");
-    led_effects::showKITTWheel(color::green, 1);
-  }
-#endif
-
   void calibrateSensorToSpecificPPM(String messageString) {
     messageString.replace("calibrate ", "");
     long int calibrationLevel = messageString.toInt();
@@ -135,8 +124,6 @@ namespace mqtt {
       Serial.println(F("Forcing MQTT publish now."));
       publish(sensor::timestamp, sensor::co2, sensor::temperature, sensor::humidity);
 #ifdef AMPEL_CSV
-    } else if (messageString.startsWith("csv ")) {
-      setCSVinterval(messageString);
     } else if (messageString == "format_filesystem") {
       FS_LIB.format();
       led_effects::showKITTWheel(color::blue, 2);
-- 
GitLab