#ifndef RACQUPROC_H_SEEN #define RACQUPROC_H_SEEN //---------------------------------------------------------------- // ---- classe de thread de traitememt acquisition BAORadio ----- // LAL - R. Ansari - Juin/Juillet 2008 //---------------------------------------------------------------- #include "racqumem.h" #include #include #include #include "sopnamsp.h" #include "zthread.h" #include "brtypes.h" using namespace std; //------------------------------------------------------------------- // Classe thread de traitement avec 1 voie par frame (donnees brutes) //------------------------------------------------------------------- class DataProc : public ZThread { public: DataProc(RAcqMemZoneMgr& mem, string& path, uint_4 nmean=1, uint_4 step=1, uint_4 nmax=100); virtual void run(); void Stop(); inline void STOP() { stop_ = true; } protected: RAcqMemZoneMgr& memgr; bool stop_; uint_4 nmax_; // Nombre maxi de blocs MemZone traites uint_4 step_; // 1/step_ frame traite ds chaque bloc uint_4 nmean_; // Nombre de blocs pour le calcul des moyennes string path_; struct sigaction act; }; //--------------------------------------------------------------------- // Classe thread de traitement avec 2 voies par frame (donnees brutes) //--------------------------------------------------------------------- class DataProc2C : public ZThread { public: DataProc2C(RAcqMemZoneMgr& mem, string& path, uint_4 nmean=1, uint_4 step=1, uint_4 nmax=100); virtual void run(); void Stop(); inline void STOP() { stop_ = true; } protected: RAcqMemZoneMgr& memgr; bool stop_; uint_4 nmax_; // Nombre maxi de blocs MemZone traites uint_4 step_; // 1/step_ frame traite ds chaque bloc uint_4 nmean_; // Nombre de blocs pour le calcul des moyennes string path_; }; //--------------------------------------------------------------------- // Classe thread de traitement donnees FFT avec 2 voies par frame //--------------------------------------------------------------------- class DataProcFFT2C : public ZThread { public: DataProcFFT2C(RAcqMemZoneMgr& mem, string& path, uint_4 nmean=1, uint_4 step=1, uint_4 nmax=100); virtual void run(); void Stop(); inline void STOP() { stop_ = true; } protected: RAcqMemZoneMgr& memgr; bool stop_; uint_4 nmax_; // Nombre maxi de blocs MemZone traites uint_4 step_; // 1/step_ frame traite ds chaque bloc uint_4 nmean_; // Nombre de blocs pour le calcul des moyennes string path_; }; #endif