From d8733548fd4d75d362c170de4e4015787ec1f077 Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Sat, 26 Dec 2020 22:50:30 +0100
Subject: [PATCH] One fewer dependency

---
 ampel-firmware.ino |  2 +-
 lorawan.cpp        | 12 ++++++------
 lorawan.h          |  3 +--
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/ampel-firmware.ino b/ampel-firmware.ino
index a903956..cfa4a2c 100644
--- a/ampel-firmware.ino
+++ b/ampel-firmware.ino
@@ -142,7 +142,7 @@ void loop() {
 #endif
 
 #if defined(LORAWAN) && defined(ESP32)
-    lorawan::preparePayloadIfTimehasCome();
+    lorawan::preparePayloadIfTimeHasCome(sensor::co2, sensor::temperature, sensor::humidity);
 #endif
   }
 
diff --git a/lorawan.cpp b/lorawan.cpp
index 1840727..9bf7476 100644
--- a/lorawan.cpp
+++ b/lorawan.cpp
@@ -143,18 +143,18 @@ namespace lorawan {
     }
   }
 
-  void preparePayload() {
+  void preparePayload(int16_t co2, float temperature, float humidity) {
     // Check if there is not a current TX/RX job running
     if (LMIC.opmode & OP_TXRXPEND) {
       Serial.println(F("OP_TXRXPEND, not sending"));
     } else {
       uint8_t buff[3];
       // Mapping CO2 from 0ppm to 5100ppm to [0, 255], with 20ppm increments.
-      buff[0] = (util::min(util::max(sensor::co2, 0), 5100) + 10) / 20;
+      buff[0] = (util::min(util::max(co2, 0), 5100) + 10) / 20;
       // Mapping temperatures from [-10°C, 41°C] to [0, 255], with 0.2°C increment
-      buff[1] = static_cast<uint8_t>((util::min(util::max(sensor::temperature, -10), 41) + 10.1f) * 5);
+      buff[1] = static_cast<uint8_t>((util::min(util::max(temperature, -10), 41) + 10.1f) * 5);
       // Mapping humidity from [0%, 100%] to [0, 200], with 0.5°C increment (0.4°C would also be possible)
-      buff[2] = static_cast<uint8_t>(util::min(util::max(sensor::humidity, 0) + 0.25f, 100) * 2);
+      buff[2] = static_cast<uint8_t>(util::min(util::max(humidity, 0) + 0.25f, 100) * 2);
 
       Serial.print(F("LoRa - Payload : '"));
       printHex2(buff[0]);
@@ -183,12 +183,12 @@ namespace lorawan {
     }
   }
 
-  void preparePayloadIfTimehasCome() {
+  void preparePayloadIfTimeHasCome(int16_t co2, float temperature, float humidity) {
     static unsigned long last_sent_at = 0;
     unsigned long now = seconds();
     if (now - last_sent_at > config::lorawan_sending_interval) {
       last_sent_at = now;
-      preparePayload();
+      preparePayload(co2, temperature, humidity);
     }
   }
 }
diff --git a/lorawan.h b/lorawan.h
index 8296260..c6da1e7 100644
--- a/lorawan.h
+++ b/lorawan.h
@@ -9,7 +9,6 @@
 #include <arduino_lmic_hal_boards.h>
 #include <SPI.h>
 
-#include "co2_sensor.h"
 #include "led_effects.h"
 #include "config.h"
 
@@ -41,7 +40,7 @@ namespace lorawan {
   extern String last_transmission;
   void initialize();
   void process();
-  void preparePayloadIfTimehasCome();
+  void preparePayloadIfTimeHasCome(int16_t co2, float temp, float hum);
 }
 
 #endif
-- 
GitLab