SOLARIS_GTK4_DAQ/test.cpp

113 lines
3.0 KiB
C++
Raw Normal View History

#include <cstdlib>
#include <string>
#include <vector>
#include <unistd.h>
2023-01-09 18:22:33 -05:00
#include <time.h> // time in nano-sec
#include "ClassDigitizer2Gen.h"
int main(int argc, char* argv[]){
printf("##########################################\n");
printf("\t CAEN firmware DPP-PHA testing \n");
printf("##########################################\n");
2023-01-11 17:53:37 -05:00
remove("haha_000.sol");
const char * url = "dig2://192.168.0.100/";
Digitizer2Gen * digi = new Digitizer2Gen();
digi->OpenDigitizer(url);
2023-01-13 16:12:43 -05:00
digi->ProgramPHA(false);
//printf("%s \n", digi->ReadValue("/ch/0/par/ChRealtimeMonitor").c_str());
//printf("%s \n", digi->ReadValue("/ch/0/par/Energy_Nbit").c_str());
//printf("%s \n", digi->ReadValue("/par/MaxRawDataSize").c_str());
/*///======================= Play with handle
uint64_t parHandle;
parHandle = digi->GetHandle("/ch/0/par/ChRealtimeMonitor"); printf("%lu|%lX\n", parHandle, parHandle);
parHandle = digi->GetHandle("/ch/1/par/ChRealtimeMonitor"); printf("%lu|%lX\n", parHandle, parHandle);
printf("%s\n", digi->GetPath(parHandle).c_str());
parHandle = digi->GetParentHandle(parHandle); printf("%lu|%lX\n", parHandle, parHandle);
printf("%s\n", digi->GetPath(parHandle).c_str());
parHandle = digi->GetParentHandle(parHandle); printf("%lu|%lX\n", parHandle, parHandle);
printf("%s\n", digi->GetPath(parHandle).c_str());
parHandle = digi->GetParentHandle(parHandle); printf("%lu|%lX\n", parHandle, parHandle);
printf("%s\n", digi->GetPath(parHandle).c_str());
parHandle = digi->GetParentHandle(parHandle); printf("%lu|%lX\n", parHandle, parHandle);
printf("%s\n", digi->GetPath(parHandle).c_str());
*/
2023-01-13 16:12:43 -05:00
//digi->ReadDigitizerSettings();
digi->SetPHADataFormat(0);
2023-01-13 16:12:43 -05:00
//printf("0x%X \n", atoi(digi->ReadValue("/par/AcquisitionStatus").c_str()) & 0x3F );
digi->OpenOutFile("haha");
digi->StartACQ();
2023-01-09 18:22:33 -05:00
timespec t0, t1;
clock_gettime(CLOCK_REALTIME, &t0);
2023-01-13 16:12:43 -05:00
for( int i = 0; i < 20; i++){
usleep(100000);
2023-01-09 18:22:33 -05:00
int ret = digi->ReadData();
2023-01-13 16:12:43 -05:00
//if( i% 2 == 0 ) printf("0x%X \n", atoi(digi->ReadValue("/par/AcquisitionStatus").c_str()) & 0x3F );
2023-01-09 18:22:33 -05:00
if( ret == CAEN_FELib_Success){
//digi->evt.PrintAll();
//digi->evt.PrintTrace();
//printf("0x%016lX \n", *(digi->evt.GetWord1()));
//printf("0x%016lX \n", *(digi->evt.GetWord2()));
//printf("0x%016lX \n", *(digi->evt.GetWord3()));
//printf("0x%016lX \n", *(digi->evt.GetWord4()));
2023-01-11 17:53:37 -05:00
digi->SaveDataToFile();
2023-01-09 18:22:33 -05:00
if( digi->evt->channel == 63 ) {
2023-01-13 16:12:43 -05:00
//if( i % 10 == 0 ) {
2023-01-09 18:22:33 -05:00
clock_gettime(CLOCK_REALTIME, &t1);
printf("%5d | t1-t0 : %10ld\n", i, t1.tv_nsec-t0.tv_nsec);
2023-01-09 18:22:33 -05:00
t0 = t1;
2023-01-13 16:12:43 -05:00
//digi->ReadStat();
//digi->PrintStat();
2023-01-09 18:22:33 -05:00
}
}else{
2023-01-13 16:12:43 -05:00
printf("something wrong when ReadData() | ret = %d \n", ret);
digi->ErrorMsg("ReadData()");
2023-01-09 18:22:33 -05:00
}
}
digi->StopACQ();
2023-01-13 16:12:43 -05:00
//digi->ReadStat();
digi->PrintStat();
digi->CloseOutFile();
digi->CloseDigitizer();
delete digi;
}