Janis Streib
19.05.23 b21ff09151ca7e87348f1ea38944decc1f46f5db
src/G4Export.cpp
@@ -12,6 +12,8 @@
#include <osc/OscOutboundPacketStream.h>
#include <sstream>
#include <signal.h>
#include <chrono>
#include <thread>
using namespace clipp; using std::cout; using std::string;
@@ -20,7 +22,7 @@
int RunCollect=0;
std::unique_ptr<UdpTransmitSocket> transmitSocket;
bool use_text = false;
int pollPeriod = 8;
int pollPeriod;
void* Collect(REND_STRUCT* prs){
@@ -56,6 +58,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)){
@@ -77,17 +89,16 @@
         }
         transmitSocket->Send( p.Data(), p.Size() );
      }
      usleep(pollPeriod*1000);
      // usleep(8000);
      std::this_thread::sleep_for(std::chrono::milliseconds(pollPeriod));
   }
   g4_close_tracker();
   return NULL;
}
void sighandler(int s){
   printf("Caught signal %d\n",s);
   // FIXME: Do something gracefully
   exit(1);
   RunCollect=0;
}
int main(int argc,char* argv[]){
@@ -149,9 +160,6 @@
  sigaction(SIGINT, &sigIntHandler, NULL);
  Collect(&rs);
  delete[] rs.srcList;
  delete[] rs.hubList;
  return 0;
}