2022-12-02 17:33:02 -05:00
|
|
|
#include <cstdlib>
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
#include <unistd.h>
|
2023-01-09 18:22:33 -05:00
|
|
|
#include <time.h> // time in nano-sec
|
2022-12-02 17:33:02 -05:00
|
|
|
|
|
|
|
#include "ClassDigitizer2Gen.h"
|
|
|
|
|
|
|
|
int main(int argc, char* argv[]){
|
|
|
|
|
|
|
|
printf("##########################################\n");
|
|
|
|
printf("\t CAEN firmware DPP-PHA testing \n");
|
|
|
|
printf("##########################################\n");
|
|
|
|
|
|
|
|
const char * url = "dig2://192.168.0.100/";
|
|
|
|
|
|
|
|
Digitizer2Gen * digi = new Digitizer2Gen();
|
|
|
|
|
|
|
|
digi->OpenDigitizer(url);
|
2023-01-09 18:22:33 -05:00
|
|
|
digi->ProgramPHA(true);
|
2022-12-02 17:33:02 -05:00
|
|
|
|
|
|
|
//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-10 16:58:35 -05:00
|
|
|
digi->SetPHADataFormat(1);
|
|
|
|
|
|
|
|
digi->OpenOutFile("haha");
|
|
|
|
|
2022-12-02 17:33:02 -05:00
|
|
|
digi->StartACQ();
|
2023-01-09 18:22:33 -05:00
|
|
|
|
|
|
|
timespec t0, t1;
|
|
|
|
|
|
|
|
clock_gettime(CLOCK_REALTIME, &t0);
|
2023-01-10 16:58:35 -05:00
|
|
|
for( int i = 0; i < 64*20; i++){
|
2023-01-09 18:22:33 -05:00
|
|
|
int ret = digi->ReadData();
|
|
|
|
|
|
|
|
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-10 16:58:35 -05:00
|
|
|
digi->SaveDataToFile();
|
2023-01-09 18:22:33 -05:00
|
|
|
|
|
|
|
if( digi->evt.channel == 63 ) {
|
|
|
|
clock_gettime(CLOCK_REALTIME, &t1);
|
2023-01-10 16:58:35 -05:00
|
|
|
printf("%5d | t1-t0 : %10ld\n", i, t1.tv_nsec-t0.tv_nsec);
|
2023-01-09 18:22:33 -05:00
|
|
|
t0 = t1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2022-12-02 17:33:02 -05:00
|
|
|
|
|
|
|
digi->StopACQ();
|
2023-01-10 16:58:35 -05:00
|
|
|
|
|
|
|
digi->CloseOutFile();
|
2022-12-02 17:33:02 -05:00
|
|
|
|
|
|
|
digi->CloseDigitizer();
|
|
|
|
|
|
|
|
delete digi;
|
|
|
|
|
|
|
|
}
|