From 79654d428e10c44f994aebefab946ece8ff3f1ce Mon Sep 17 00:00:00 2001
From: Moritz Perschke <moritz.perschke@uibk.ac.at>
Date: Thu, 27 Oct 2022 12:52:03 +0200
Subject: [PATCH] fixed return value in Time, implemented build_messages for
 dr26 and scd30

---
 client/client/lib/dr26_analogue/dr26.cpp |  6 +++++-
 client/client/lib/scd30/scd30.cpp        | 14 +++++++++++++-
 client/client/lib/time/src/Time.cpp      |  2 +-
 client/client/lib/time/src/Time.hpp      |  2 +-
 4 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/client/client/lib/dr26_analogue/dr26.cpp b/client/client/lib/dr26_analogue/dr26.cpp
index e8d4555..fe9eb14 100644
--- a/client/client/lib/dr26_analogue/dr26.cpp
+++ b/client/client/lib/dr26_analogue/dr26.cpp
@@ -46,7 +46,11 @@ void ForteDR26 ::changeGain(adsGain_t gain)
 
 std::list<Message> ForteDR26::buildMessages()
 {
-	throw "Not implemented";
+	std::list<Message> messages;
+	float data = readData();
+	MeasurementData IncrementData{data, 0, {}, "CIRCUMFERENCE_INCREMENT"};
+	messages.emplace_back((IncrementData, sensorInformation, Time::getInstance().getEpochSeconds()));
+	return messages;
 }
 SensorInformation ForteDR26::getSensorInformation() const
 {
diff --git a/client/client/lib/scd30/scd30.cpp b/client/client/lib/scd30/scd30.cpp
index 507d815..7cff381 100644
--- a/client/client/lib/scd30/scd30.cpp
+++ b/client/client/lib/scd30/scd30.cpp
@@ -24,8 +24,20 @@ out_data_scd30 ForteSCD30 ::readData()
 
 std::list<Message> ForteSCD30::buildMessages()
 {
-	throw "Not yet implemented";
+	std::list<Message> messages;
+
+	out_data_scd30 data = readData();
+	MeasurementData CO2Data{data.C02, 0, {}, "CO2"};
+	MeasurementData TempData{data.Temperature, 0, {}, "Temperature"};
+	MeasurementData HumidData{data.Humidity, 0, {}, "Humidity"};
+
+	messages.emplace_back(Message(CO2Data, sensorInformation, Time::getInstance().getEpochSeconds()));
+	messages.emplace_back(Message(TempData, sensorInformation, Time::getInstance().getEpochSeconds()));
+	messages.emplace_back(Message(HumidData, sensorInformation, Time::getInstance().getEpochSeconds()));
+	
+	return messages;
 }
+
 SensorInformation ForteSCD30::getSensorInformation() const
 {
 	return sensorInformation;
diff --git a/client/client/lib/time/src/Time.cpp b/client/client/lib/time/src/Time.cpp
index 8fdf4b4..5cc3dbc 100644
--- a/client/client/lib/time/src/Time.cpp
+++ b/client/client/lib/time/src/Time.cpp
@@ -17,7 +17,7 @@ String Time::getTime(String format)
 {
 	return this->rtc.getTime(std::move(format));
 }
-long Time::getEpochSeconds()
+unsigned long Time::getEpochSeconds()
 {
 	return this->rtc.getEpoch();
 }
diff --git a/client/client/lib/time/src/Time.hpp b/client/client/lib/time/src/Time.hpp
index d53adb1..783bdef 100644
--- a/client/client/lib/time/src/Time.hpp
+++ b/client/client/lib/time/src/Time.hpp
@@ -45,7 +45,7 @@ class Time {
 	/*!
 	@brief  get the current epoch seconds as long
 	*/
-	long getEpochSeconds();
+	unsigned long getEpochSeconds();
 
 	/*!
 	@brief  get the current milliseconds as long
-- 
GitLab