#ifndef DIGITIZER_CLASS_H #define DIGITIZER_CLASS_H #include #include #include #include "Event.h" //#include "Parameter.h" #define MaxOutFileSize 2*1024*1024*1024 class Digitizer2Gen { private: uint64_t handle; uint64_t ep_handle; ///end point handle uint64_t ep_folder_handle; ///end point folder handle bool isConnected; int ret; char retValue[256]; std::string modelName; std::string cupVersion; std::string DPPVersion; std::string DPPType; unsigned short serialNumber; unsigned short adcBits; unsigned short nChannels; unsigned short adcRate; unsigned short ch2ns; std::string IPAddress; std::string netMask; std::string gateway; void Initialization(); std::string ErrorMsg(const char * funcName); unsigned short outFileIndex; unsigned short dataStartIndetifier; std::string outFileNameBase; char outFileName[100]; FILE * outFile; unsigned int outFileSize; public: Digitizer2Gen(); ~Digitizer2Gen(); int OpenDigitizer(const char * url); int CloseDigitizer(); std::string ReadValue(const char * parameter); void WriteValue(const char * parameter, std::string value); void SendCommand(const char * parameter); uint64_t GetHandle(const char * parameter); uint64_t GetParentHandle(uint64_t handle); std::string GetPath(uint64_t handle); void StartACQ(); void StopACQ(); void SetPHADataFormat(unsigned short dataFormat); // 0 = all data, // 1 = analog trace-0 only + flags // 2 = no trace, only ch, energy, timestamp, fine_timestamp + flags // 3 = only ch, energy, timestamp, minimum // 15 = raw data int ReadData(); void ReadDataRaw(); //not impletmented void ProgramPHA(bool testPulse = false); unsigned short GetNChannels() {return nChannels;} unsigned short GetCh2ns() {return ch2ns;} uint64_t GetHandle() {return handle;} Event *evt; void OpenOutFile(std::string fileName); void CloseOutFile(); void SaveDataToFile(); }; #endif