From 634af2434c2746ef59fc82fa88a7c71a3858920d Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Sat, 17 Apr 2021 14:01:51 +0200
Subject: [PATCH] Refactor. Fewer dependencies for MQTT

---
 ampel-firmware/csv_writer.cpp      | 7 ++++++-
 ampel-firmware/csv_writer.h        | 1 +
 ampel-firmware/mqtt.cpp            | 7 +------
 ampel-firmware/mqtt.h              | 4 ----
 ampel-firmware/sensor_commands.cpp | 4 ++++
 ampel-firmware/sensor_commands.h   | 2 +-
 6 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/ampel-firmware/csv_writer.cpp b/ampel-firmware/csv_writer.cpp
index 1ae9431..2a673a8 100644
--- a/ampel-firmware/csv_writer.cpp
+++ b/ampel-firmware/csv_writer.cpp
@@ -118,7 +118,7 @@ namespace csv_writer {
     Serial.println();
 
     sensor_commands::defineIntCallback("csv", setCSVinterval, " 60 (Sets CSV writing interval, in s)");
-    // sensor_commands::defineCallback("format_filesystem", FS_LIB.format);
+    sensor_commands::defineCallback("format_filesystem", formatFilesystem, "(Deletes the whole filesystem.)");
   }
 
   File openOrCreate() {
@@ -175,4 +175,9 @@ namespace csv_writer {
     Serial.println("s.");
     led_effects::showKITTWheel(color::green, 1);
   }
+
+  void formatFilesystem() {
+    FS_LIB.format();
+    led_effects::showKITTWheel(color::blue, 2);
+  }
 }
diff --git a/ampel-firmware/csv_writer.h b/ampel-firmware/csv_writer.h
index aa39f0e..0b15970 100644
--- a/ampel-firmware/csv_writer.h
+++ b/ampel-firmware/csv_writer.h
@@ -27,6 +27,7 @@ namespace csv_writer {
   extern const String filename;
 
   void setCSVinterval(int32_t csv_interval);
+  void formatFilesystem();
 }
 
 #endif
diff --git a/ampel-firmware/mqtt.cpp b/ampel-firmware/mqtt.cpp
index f723ddf..053b777 100644
--- a/ampel-firmware/mqtt.cpp
+++ b/ampel-firmware/mqtt.cpp
@@ -99,12 +99,7 @@ namespace mqtt {
 
     if (messageString == "publish") {
       Serial.println(F("Forcing MQTT publish now."));
-      publish(sensor::timestamp, sensor::co2, sensor::temperature, sensor::humidity);
-#ifdef AMPEL_CSV
-    } else if (messageString == "format_filesystem") {
-      FS_LIB.format();
-      led_effects::showKITTWheel(color::blue, 2);
-#endif
+      last_sent_at = 0;
     } else if (messageString == "night_mode") {
       led_effects::toggleNightMode();
     } else if (messageString == "local_ip") {
diff --git a/ampel-firmware/mqtt.h b/ampel-firmware/mqtt.h
index 4fbdd1d..26b5805 100644
--- a/ampel-firmware/mqtt.h
+++ b/ampel-firmware/mqtt.h
@@ -5,10 +5,6 @@
 #include "config.h"
 #include "led_effects.h"
 #include "sensor_commands.h"
-#ifdef AMPEL_CSV
-#  include "csv_writer.h"
-#endif
-#include "co2_sensor.h"
 #include "src/lib/PubSubClient/src/PubSubClient.h"
 #include "wifi_util.h"
 namespace config {
diff --git a/ampel-firmware/sensor_commands.cpp b/ampel-firmware/sensor_commands.cpp
index 0415a2a..c6bd77c 100644
--- a/ampel-firmware/sensor_commands.cpp
+++ b/ampel-firmware/sensor_commands.cpp
@@ -16,6 +16,10 @@ namespace sensor_commands {
 
   Callback callbacks[MAX_CALLBACKS];
 
+  void defineCallback(const char *name, void (*function)(void), const char *doc) {
+
+  }
+
   void defineIntCallback(const char *name, void (*function)(int32_t), const char *doc) {
     if (callbacks_count < MAX_CALLBACKS) {
       callbacks[callbacks_count] = Callback(name, function, doc);
diff --git a/ampel-firmware/sensor_commands.h b/ampel-firmware/sensor_commands.h
index 525e671..63c1e44 100644
--- a/ampel-firmware/sensor_commands.h
+++ b/ampel-firmware/sensor_commands.h
@@ -8,6 +8,6 @@
 
 namespace sensor_commands {
   void run(const char *command);
-  //TODO: Add defineIntCallback?
   void defineIntCallback(const char *command, void (*function)(int32_t), const char *doc);
+  void defineCallback(const char *command, void (*function)(void), const char *doc);
 }
-- 
GitLab