From 225fa4719daca4a8c577793a0e67f67fbcc3cfd8 Mon Sep 17 00:00:00 2001
From: Bilal Hassan <bilal.hassan@student.uibk.ac.at>
Date: Fri, 4 Nov 2022 15:44:09 +0100
Subject: [PATCH] setup multiple dendrometer on a single client, new setup with
 2 dendrometer is on the desk of room 3N10

---
 client/client/lib/dr26_analogue/dr26.cpp | 21 +++++++++++---
 client/client/lib/dr26_analogue/dr26.hpp |  3 ++
 client/client/src/main.cpp               | 37 +++++++++++-------------
 3 files changed, 37 insertions(+), 24 deletions(-)

diff --git a/client/client/lib/dr26_analogue/dr26.cpp b/client/client/lib/dr26_analogue/dr26.cpp
index b9b4d26..f4d06ef 100644
--- a/client/client/lib/dr26_analogue/dr26.cpp
+++ b/client/client/lib/dr26_analogue/dr26.cpp
@@ -3,9 +3,14 @@
 void ForteDR26 ::setup()
 {
 	Wire.begin(6, 7);
-    ads.setGain(GAIN_ONE);
-    ads.begin() ?  Serial.println("ADS initialized") : Serial.println("failed to initialize ADS");
+  //  ads.setGain(GAIN_ONE);
+  //  ads.begin() ?  Serial.println("ADS initialized") : Serial.println("failed to initialize ADS");
+
+
+    ads1.setGain(GAIN_ONE);
+    ads1.begin() ?  Serial.println("ADS initialized") : Serial.println("failed to initialize ADS");
     delay(100);
+    channel=0;
 }
 
 float ForteDR26 ::readData()
@@ -16,8 +21,8 @@ float ForteDR26 ::readData()
         float volt = 0;
         try
         {
-            adc = ads.readADC_SingleEnded(0);
-            volt = ads.computeVolts(adc);
+            adc = ads1.readADC_SingleEnded(channel);
+            volt = ads1.computeVolts(adc);
         }
         catch(NoDataAvailableException& e)
         {
@@ -50,6 +55,11 @@ void ForteDR26 ::changeGain(adsGain_t gain)
 	ads.setGain(gain);
 }
 
+void ForteDR26 ::setChannel(int c)
+{
+	channel=c;
+}
+
 std::list<Message> ForteDR26::buildMessages()
 {
 	std::list<Message> messages;
@@ -62,3 +72,6 @@ SensorInformation ForteDR26::getSensorInformation() const
 {
 	return sensorInformation;
 }
+
+
+Adafruit_ADS1115 ForteDR26::ads1=ads1;
\ No newline at end of file
diff --git a/client/client/lib/dr26_analogue/dr26.hpp b/client/client/lib/dr26_analogue/dr26.hpp
index 7d259b8..d6927ec 100644
--- a/client/client/lib/dr26_analogue/dr26.hpp
+++ b/client/client/lib/dr26_analogue/dr26.hpp
@@ -14,12 +14,15 @@ class ForteDR26 : public ForteSensor<float> {
 	void setup() override;
 	float readData() override;
 	void changeGain(adsGain_t gain);
+	void setChannel(int channel);
 	std::list<Message> buildMessages() override;
 	[[nodiscard]] SensorInformation getSensorInformation() const override;
+	static Adafruit_ADS1115 ads1;
 
   private:
 	Adafruit_ADS1115 ads;
 	const SensorInformation sensorInformation{"DR26", Protocol::Analog};
+	int channel;
 };
 
 #endif
\ No newline at end of file
diff --git a/client/client/src/main.cpp b/client/client/src/main.cpp
index ce27aa4..f449b3c 100644
--- a/client/client/src/main.cpp
+++ b/client/client/src/main.cpp
@@ -11,7 +11,9 @@
 static const std::string TAG = "MAIN";
 
 
-ForteDR26 dr26;
+ForteDR26 dr26_channel0;
+ForteDR26 dr26_channel1;
+
 void setup()
 {
 	Serial.begin(115200);
@@ -20,27 +22,27 @@ void setup()
 	DeepSleep::bootCount++;
 	ESP_LOGD(TAG.c_str(), "Boot number: %d", DeepSleep::bootCount);
 
-//	drs26.setup();
-	dr26.setup();
+
+	dr26_channel1.setup();
+	dr26_channel0.setChannel(0);
+	dr26_channel1.setChannel(1);
+
 	espnow_setup();
 	//	log_e("Setup complete.");
 }
 
 void loop()
 {
-	float data= dr26.readData();
-	Serial.printf("data circumfrence");
-	Serial.printf(String(dr26.readData()).c_str());
-
 	
+Serial.println("***********************1-DRS26**********************************");
+Serial.println(dr26_channel0.readData(),5);
+Serial.println("***********************2-DRS26**********************************");
+Serial.println(dr26_channel1.readData(),5);
+
 	try {
-	//	out_data_drs26 data= dr26.readData();
-	//	Serial.printf("data circumfrence");
-	//	Serial.printf(String( data.circumferenceIncrement).c_str());
-		//auto messages = drs26.buildMessages();
-		auto messages = dr26.buildMessages();
 
-		// auto scdMessages = scd30.buildmessages();
+		auto messages = dr26_channel0.buildMessages();
+		messages=dr26_channel1.buildMessages();
 
 		for (const Message &message : messages) {
 			if(message.send() != ESP_OK){
@@ -56,14 +58,9 @@ void loop()
 		std::cerr << e.what() << '\n';
 	}
 
-	// ESP_LOGE(TAG.c_str(), "Sensor Circumference: ");
-	//	log_e("Temperature: ");
-	//	log_e("Id: ");
-
 	Serial.print("This device: ");
-	
-//	Serial.println(WiFi.macAddress());
 	Serial.println("\n");
-	delay(10000);
+
+	delay(5000);
 	DeepSleep::deep_sleep(5);
 }
-- 
GitLab