From d05d799d9774291f7bc15de4819510b457b20ffd Mon Sep 17 00:00:00 2001
From: Janis Streib <me@janis-streib.de>
Date: Tue, 01 Feb 2022 12:32:39 +0100
Subject: [PATCH] UPD: send enumare all sensors and check., if sensors are active

---
 src/G4Export.cpp |   35 ++++++++++++++++++++---------------
 src/G4Hub.h      |    1 +
 src/G4Hub.cpp    |    4 ++++
 3 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/src/G4Export.cpp b/src/G4Export.cpp
index 2908ae6..707e29c 100644
--- a/src/G4Export.cpp
+++ b/src/G4Export.cpp
@@ -54,23 +54,28 @@
 			p << osc::BeginBundleImmediate;
 		}
 		for (int i=0;i<prs->numHub;i++){
-			auto dat = prs->hubList[i].GetPnoData()[0];
-			//printf("sns: %i: [%f;%f;%f],[%f,%f,%f]\n",i, dat[0],dat[1],dat[2], dat[3],dat[4],dat[5]);
-			p << osc::BeginMessage( (string("/hub/") + std::to_string(i)).c_str() );
-			std::ostringstream ss;
-			if(use_text) {
-				ss << "[" << dat[0] << "," << dat[1] << "," << dat[2] << "," << dat[3] << "," << dat[4] << "," << dat[5] << "]";
-				auto res = ss.str();
-				p << res.c_str();
-			} else {
-				p << dat[0] << dat[1] << dat[2] << dat[3] << dat[4] << dat[5];
+			for(int j=0;j<G4_SENSORS_PER_HUB;j++) {
+				if(!prs->hubList[i].IsSenActive(j)){
+					continue;
+				}
+				auto dat = prs->hubList[i].GetPnoData()[j];
+				//printf("sns: %i: [%f;%f;%f],[%f,%f,%f]\n",i, dat[0],dat[1],dat[2], dat[3],dat[4],dat[5]);
+				p << osc::BeginMessage( (string("/g4/hub/") + std::to_string(i) + string("/") + std::to_string(j)).c_str());
+				std::ostringstream ss;
+				if(use_text) {
+					ss << "[" << dat[0] << "," << dat[1] << "," << dat[2] << "," << dat[3] << "," << dat[4] << "," << dat[5] << "]";
+					auto res = ss.str();
+					p << res.c_str();
+				} else {
+					p << dat[0] << dat[1] << dat[2] << dat[3] << dat[4] << dat[5];
+				}
+				p << osc::EndMessage;
 			}
-			p << osc::EndMessage;
+			if(!use_text) {
+				p << osc::EndBundle;
+			}
+			transmitSocket->Send( p.Data(), p.Size() );
 		}
-		if(!use_text) {
-			p << osc::EndBundle;
-		}
-		transmitSocket->Send( p.Data(), p.Size() );
 		usleep(15000);
 		// usleep(8000);
 	}
diff --git a/src/G4Hub.cpp b/src/G4Hub.cpp
index 14a6e01..657eec0 100644
--- a/src/G4Hub.cpp
+++ b/src/G4Hub.cpp
@@ -36,6 +36,10 @@
 	return m_id;
 }
 
+bool CG4Hub::IsSenActive(int i)
+{
+	return m_senActive[i];
+}
 
 
 void CG4Hub::SetId(int id)
diff --git a/src/G4Hub.h b/src/G4Hub.h
index 6187838..aef97f6 100644
--- a/src/G4Hub.h
+++ b/src/G4Hub.h
@@ -20,6 +20,7 @@
 	int GetId();
 	void SetPnoData(float* pno,int sen);
 	float (*GetPnoData())[6];
+	bool IsSenActive(int i);
 	CG4Hub();
 	virtual ~CG4Hub();
 

--
Gitblit v1.9.1