From 7fde24bbdc2208dca6c2436f62ee1cb5eb9eb7b0 Mon Sep 17 00:00:00 2001 From: Janis Streib <me@janis-streib.de> Date: Fri, 19 May 2023 17:25:10 +0200 Subject: [PATCH] ADD: digio support --- src/G4Trk.cpp | 1 + src/G4Export.cpp | 10 ++++++++++ src/G4Hub.h | 3 +++ src/G4Hub.cpp | 8 ++++++++ 4 files changed, 22 insertions(+), 0 deletions(-) diff --git a/src/G4Export.cpp b/src/G4Export.cpp index 515caae..40cf212 100644 --- a/src/G4Export.cpp +++ b/src/G4Export.cpp @@ -56,6 +56,16 @@ if(!use_text) { p << osc::BeginBundleImmediate; } + p << osc::BeginMessage( (string("/g4/hub/") + std::to_string(prs->hubList[i].GetId()) + string("/digio")).c_str()); + std::ostringstream ss; + if(use_text) { + ss << prs->hubList[i].GetDigIOData(); + auto res = ss.str(); + p << res.c_str(); + } else { + p << osc::int64(prs->hubList[i].GetDigIOData()); + } + p << osc::EndMessage; auto dat = prs->hubList[i].GetPnoData(); for(int j=0;j<G4_SENSORS_PER_HUB;j++) { if(!prs->hubList[i].IsSenActive(j)){ diff --git a/src/G4Hub.cpp b/src/G4Hub.cpp index 657eec0..8b8b5bd 100644 --- a/src/G4Hub.cpp +++ b/src/G4Hub.cpp @@ -35,6 +35,14 @@ { return m_id; } +uint32_t CG4Hub::GetDigIOData() +{ + return digio; +} +void CG4Hub::SetDigIOData(uint32_t data) +{ + digio = data; +} bool CG4Hub::IsSenActive(int i) { diff --git a/src/G4Hub.h b/src/G4Hub.h index aef97f6..207b6f9 100644 --- a/src/G4Hub.h +++ b/src/G4Hub.h @@ -20,6 +20,8 @@ int GetId(); void SetPnoData(float* pno,int sen); float (*GetPnoData())[6]; + void SetDigIOData(uint32_t pno); + uint32_t GetDigIOData(); bool IsSenActive(int i); CG4Hub(); virtual ~CG4Hub(); @@ -30,6 +32,7 @@ float m_col[3][3]; int m_id; float m_pno[G4_SENSORS_PER_HUB][6]; + uint32_t digio; }; #endif // !defined(AFX_G4HUB_H__41DD193E_B016_4FF7_93E6_CF8AEC652FF1__INCLUDED_) diff --git a/src/G4Trk.cpp b/src/G4Trk.cpp index 958b378..bdea402 100644 --- a/src/G4Trk.cpp +++ b/src/G4Trk.cpp @@ -125,6 +125,7 @@ for (int a=0;a<m_numHubs;a++){ if ((unsigned int)prs->hubList[a].GetId()==m_pframeData[i].hub){ prs->hubreadmap|=(0x01<<a); + prs->hubList[a].SetDigIOData(m_pframeData[i].dig_io); // set digio for (int j=0;j<G4_SENSORS_PER_HUB;j++){ if (m_pframeData[i].stationMap&(0x01<<j)) prs->hubList[a].SetPnoData(m_pframeData[i].sfd[j].pos,j); // set it -- Gitblit v1.9.1