change enum::DataFormat::RAW to Raw, edited README.md
This commit is contained in:
parent
10e734e07d
commit
30f01f5793
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -12,6 +12,7 @@ screenshot.*
|
||||||
*.dat
|
*.dat
|
||||||
Logs
|
Logs
|
||||||
*.png
|
*.png
|
||||||
|
.gdb_history
|
||||||
|
|
||||||
*~
|
*~
|
||||||
*.autosave
|
*.autosave
|
||||||
|
|
|
@ -323,10 +323,21 @@ void Digitizer2Gen::StopACQ(){
|
||||||
|
|
||||||
void Digitizer2Gen::SetDataFormat(unsigned short dataFormat){
|
void Digitizer2Gen::SetDataFormat(unsigned short dataFormat){
|
||||||
|
|
||||||
printf("%s : %d\n", __func__, dataFormat);
|
printf("%s : %d for digi-%d %s\n", __func__, dataFormat, serialNumber, FPGAType.c_str() );
|
||||||
|
|
||||||
///========== get endpoint and endpoint folder handle
|
///========== get endpoint and endpoint folder handle
|
||||||
if( dataFormat != DataFormat::RAW ){
|
if( dataFormat == DataFormat::Raw ){
|
||||||
|
|
||||||
|
ret = CAEN_FELib_GetHandle(handle, "/endpoint/raw", &ep_handle);
|
||||||
|
ret |= CAEN_FELib_GetParentHandle(ep_handle, NULL, &ep_folder_handle);
|
||||||
|
ret |= CAEN_FELib_SetValue(ep_folder_handle, "/par/activeendpoint", "raw");
|
||||||
|
|
||||||
|
if (ret != CAEN_FELib_Success) {
|
||||||
|
ErrorMsg("Set active endpoint");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
if( FPGAType == DPPType::PHA ){
|
if( FPGAType == DPPType::PHA ){
|
||||||
ret = CAEN_FELib_GetHandle(handle, "/endpoint/dpppha", &ep_handle);
|
ret = CAEN_FELib_GetHandle(handle, "/endpoint/dpppha", &ep_handle);
|
||||||
|
@ -341,16 +352,6 @@ void Digitizer2Gen::SetDataFormat(unsigned short dataFormat){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret != CAEN_FELib_Success) {
|
|
||||||
ErrorMsg("Set active endpoint");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
}else{
|
|
||||||
ret = CAEN_FELib_GetHandle(handle, "/endpoint/raw", &ep_handle);
|
|
||||||
ret |= CAEN_FELib_GetParentHandle(ep_handle, NULL, &ep_folder_handle);
|
|
||||||
ret |= CAEN_FELib_SetValue(ep_folder_handle, "/par/activeendpoint", "raw");
|
|
||||||
|
|
||||||
if (ret != CAEN_FELib_Success) {
|
if (ret != CAEN_FELib_Success) {
|
||||||
ErrorMsg("Set active endpoint");
|
ErrorMsg("Set active endpoint");
|
||||||
return;
|
return;
|
||||||
|
@ -363,6 +364,7 @@ void Digitizer2Gen::SetDataFormat(unsigned short dataFormat){
|
||||||
dataStartIndetifier = 0xAA00 + dataFormat;
|
dataStartIndetifier = 0xAA00 + dataFormat;
|
||||||
if(FPGAType == DPPType::PSD ) dataStartIndetifier += 0x0010;
|
if(FPGAType == DPPType::PSD ) dataStartIndetifier += 0x0010;
|
||||||
|
|
||||||
|
//^===================================================== PSD
|
||||||
if( FPGAType == DPPType::PHA) {
|
if( FPGAType == DPPType::PHA) {
|
||||||
if( dataFormat == DataFormat::ALL ){
|
if( dataFormat == DataFormat::ALL ){
|
||||||
ret = CAEN_FELib_SetReadDataFormat(ep_handle,
|
ret = CAEN_FELib_SetReadDataFormat(ep_handle,
|
||||||
|
@ -442,6 +444,8 @@ void Digitizer2Gen::SetDataFormat(unsigned short dataFormat){
|
||||||
{ \"name\" : \"ENERGY\", \"type\" : \"U16\" } \
|
{ \"name\" : \"ENERGY\", \"type\" : \"U16\" } \
|
||||||
]");
|
]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//^===================================================== PSD
|
||||||
}else if ( FPGAType == DPPType::PSD ){
|
}else if ( FPGAType == DPPType::PSD ){
|
||||||
|
|
||||||
if( dataFormat == DataFormat::ALL ){
|
if( dataFormat == DataFormat::ALL ){
|
||||||
|
@ -520,16 +524,16 @@ void Digitizer2Gen::SetDataFormat(unsigned short dataFormat){
|
||||||
if( dataFormat == DataFormat::Minimum ){
|
if( dataFormat == DataFormat::Minimum ){
|
||||||
ret = CAEN_FELib_SetReadDataFormat(ep_handle,
|
ret = CAEN_FELib_SetReadDataFormat(ep_handle,
|
||||||
"[ \
|
"[ \
|
||||||
{ \"name\" : \"CHANNEL\", \"type\" : \"U8\" }, \
|
{ \"name\" : \"CHANNEL\", \"type\" : \"U8\" }, \
|
||||||
{ \"name\" : \"TIMESTAMP\", \"type\" : \"U64\" }, \
|
{ \"name\" : \"TIMESTAMP\", \"type\" : \"U64\" }, \
|
||||||
{ \"name\" : \"ENERGY\", \"type\" : \"U16\" }, \
|
{ \"name\" : \"ENERGY\", \"type\" : \"U16\" }, \
|
||||||
{ \"name\" : \"ENERGY_SHORT\", \"type\" : \"U16\" }, \
|
{ \"name\" : \"ENERGY_SHORT\", \"type\" : \"U16\" }, \
|
||||||
]");
|
]");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( dataFormat == DataFormat::RAW ){
|
if( dataFormat == DataFormat::Raw ){
|
||||||
ret = CAEN_FELib_SetReadDataFormat(ep_handle,
|
ret = CAEN_FELib_SetReadDataFormat(ep_handle,
|
||||||
" [ \
|
" [ \
|
||||||
{ \"name\": \"DATA\", \"type\": \"U8\", \"dim\": 1 }, \
|
{ \"name\": \"DATA\", \"type\": \"U8\", \"dim\": 1 }, \
|
||||||
|
@ -758,7 +762,7 @@ int Digitizer2Gen::ReadData(){
|
||||||
}
|
}
|
||||||
|
|
||||||
hit->isTraceAllZero = true;
|
hit->isTraceAllZero = true;
|
||||||
}else if( hit->dataType == DataFormat::RAW){
|
}else if( hit->dataType == DataFormat::Raw){
|
||||||
ret = CAEN_FELib_ReadData(ep_handle, 100, hit->data, &hit->dataSize, &hit->n_events );
|
ret = CAEN_FELib_ReadData(ep_handle, 100, hit->data, &hit->dataSize, &hit->n_events );
|
||||||
//printf("data size: %lu byte\n", evt.dataSize);
|
//printf("data size: %lu byte\n", evt.dataSize);
|
||||||
|
|
||||||
|
@ -855,7 +859,7 @@ void Digitizer2Gen::SaveDataToFile(){
|
||||||
fwrite(&hit->energy, 2, 1, outFile);
|
fwrite(&hit->energy, 2, 1, outFile);
|
||||||
if( FPGAType == DPPType::PSD ) fwrite(&hit->energy_short, 2, 1, outFile);
|
if( FPGAType == DPPType::PSD ) fwrite(&hit->energy_short, 2, 1, outFile);
|
||||||
fwrite(&hit->timestamp, 6, 1, outFile);
|
fwrite(&hit->timestamp, 6, 1, outFile);
|
||||||
}else if( hit->dataType == DataFormat::RAW){
|
}else if( hit->dataType == DataFormat::Raw){
|
||||||
fwrite(&dataStartIndetifier, 2, 1, outFile);
|
fwrite(&dataStartIndetifier, 2, 1, outFile);
|
||||||
fwrite(&hit->dataSize, 8, 1, outFile);
|
fwrite(&hit->dataSize, 8, 1, outFile);
|
||||||
fwrite(hit->data, hit->dataSize, 1, outFile);
|
fwrite(hit->data, hit->dataSize, 1, outFile);
|
||||||
|
|
14
Hit.h
14
Hit.h
|
@ -10,11 +10,11 @@
|
||||||
|
|
||||||
enum DataFormat{
|
enum DataFormat{
|
||||||
|
|
||||||
ALL = 0,
|
ALL = 0x00,
|
||||||
OneTrace = 1,
|
OneTrace = 0x01,
|
||||||
NoTrace = 2,
|
NoTrace = 0x02,
|
||||||
Minimum = 3,
|
Minimum = 0x03,
|
||||||
RAW = 0x0A,
|
Raw = 0x0A,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ class Hit {
|
||||||
DPPType = dppType;
|
DPPType = dppType;
|
||||||
ClearMemory();
|
ClearMemory();
|
||||||
|
|
||||||
if( dataType == DataFormat::RAW){
|
if( dataType == DataFormat::Raw){
|
||||||
data = new uint8_t[20*1024*1024];
|
data = new uint8_t[20*1024*1024];
|
||||||
}else{
|
}else{
|
||||||
analog_probes[0] = new int32_t[MaxTraceLenght];
|
analog_probes[0] = new int32_t[MaxTraceLenght];
|
||||||
|
@ -241,7 +241,7 @@ class Hit {
|
||||||
case DataFormat::OneTrace : printf("============= Type : OneTrace\n"); break;
|
case DataFormat::OneTrace : printf("============= Type : OneTrace\n"); break;
|
||||||
case DataFormat::NoTrace : printf("============= Type : NoTrace\n"); break;
|
case DataFormat::NoTrace : printf("============= Type : NoTrace\n"); break;
|
||||||
case DataFormat::Minimum : printf("============= Type : Minimum\n"); break;
|
case DataFormat::Minimum : printf("============= Type : Minimum\n"); break;
|
||||||
case DataFormat::RAW : printf("============= Type : RAW\n"); return; break;
|
case DataFormat::Raw : printf("============= Type : Raw\n"); return; break;
|
||||||
default : return;
|
default : return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
13
README.md
13
README.md
|
@ -54,14 +54,20 @@ When run stop, it will run the bash script under the directory scripts/endRUnScr
|
||||||
|
|
||||||
Ubuntu 22.04
|
Ubuntu 22.04
|
||||||
|
|
||||||
CAEN_DIG2_v1.5.3
|
CAEN_FELIB_v1.2.2 + (install first)
|
||||||
|
|
||||||
CAEN_FELIB_v1.2.2
|
CAEN_DIG2_v1.5.3 +
|
||||||
|
|
||||||
`sudo apt install qt6-base-dev libcurl4-openssl-dev libqt6charts6-dev`
|
`sudo apt install qt6-base-dev libcurl4-openssl-dev libqt6charts6-dev`
|
||||||
|
|
||||||
Digitizer firmware V2745-dpp-pha-2022092903.cup
|
Digitizer firmware V2745-dpp-pha-2022092903.cup
|
||||||
|
|
||||||
|
## Developer is using these at 2023-Oct-13
|
||||||
|
|
||||||
|
CAEN_FELIB_v1.2.5
|
||||||
|
|
||||||
|
CAEN_DIG2_v1.5.10
|
||||||
|
|
||||||
# Compile
|
# Compile
|
||||||
|
|
||||||
## if *.pro does not exist
|
## if *.pro does not exist
|
||||||
|
@ -85,4 +91,5 @@ then ` make`
|
||||||
- LVDSTrgMask cannot acess.
|
- LVDSTrgMask cannot acess.
|
||||||
- The CoincidenceLengthT not loaded.
|
- The CoincidenceLengthT not loaded.
|
||||||
- Sometime, the digitizer halt after sent the /cmd/armacquisition command. This is CAEN library problem.
|
- Sometime, the digitizer halt after sent the /cmd/armacquisition command. This is CAEN library problem.
|
||||||
- Event/Wave trig. Source cannot set as SWTrigger.
|
- Event/Wave trig. Source cannot set as SWTrigger.
|
||||||
|
- For PSD, it cannot use minimum dataformat.
|
|
@ -8,9 +8,13 @@ INCLUDEPATH += .
|
||||||
|
|
||||||
QT += widgets charts
|
QT += widgets charts
|
||||||
|
|
||||||
QMAKE_CXXFLAGS += -g # for gdb debug
|
|
||||||
LIBS += -lcurl -lCAEN_FELib -lX11
|
LIBS += -lcurl -lCAEN_FELib -lX11
|
||||||
|
|
||||||
|
#=========== for GDB debug
|
||||||
|
#QMAKE_CXXFLAGS += -g # for gdb debug
|
||||||
|
#QMAKE_CXXFLAGS_RELEASE = -O0
|
||||||
|
#QMAKE_CFLAGS_RELEASE = -O0
|
||||||
|
|
||||||
# You can make your code fail to compile if you use deprecated APIs.
|
# You can make your code fail to compile if you use deprecated APIs.
|
||||||
# In order to do so, uncomment the following line.
|
# In order to do so, uncomment the following line.
|
||||||
# Please consult the documentation of the deprecated API in order to know
|
# Please consult the documentation of the deprecated API in order to know
|
||||||
|
|
|
@ -112,8 +112,8 @@ inline int SolReader::ReadNextBlock(int opt){
|
||||||
return -2 ;
|
return -2 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( blockStartIdentifier & 0xF ) == DataFormat::RAW ){
|
if( ( blockStartIdentifier & 0xF ) == DataFormat::Raw ){
|
||||||
hit->SetDataType(DataFormat::RAW, ((blockStartIdentifier >> 1) & 0xF) == 0 ? DPPType::PHA : DPPType::PSD);
|
hit->SetDataType(DataFormat::Raw, ((blockStartIdentifier >> 1) & 0xF) == 0 ? DPPType::PHA : DPPType::PSD);
|
||||||
}
|
}
|
||||||
hit->dataType = blockStartIdentifier & 0xF;
|
hit->dataType = blockStartIdentifier & 0xF;
|
||||||
hit->DPPType = ((blockStartIdentifier >> 4) & 0xF) == 0 ? DPPType::PHA : DPPType::PSD;
|
hit->DPPType = ((blockStartIdentifier >> 4) & 0xF) == 0 ? DPPType::PHA : DPPType::PSD;
|
||||||
|
@ -189,7 +189,7 @@ inline int SolReader::ReadNextBlock(int opt){
|
||||||
}else{
|
}else{
|
||||||
fseek(inFile, hit->DPPType == DPPType::PHA ? 9 : 11, SEEK_CUR);
|
fseek(inFile, hit->DPPType == DPPType::PHA ? 9 : 11, SEEK_CUR);
|
||||||
}
|
}
|
||||||
}else if( hit->dataType == DataFormat::RAW){
|
}else if( hit->dataType == DataFormat::Raw){
|
||||||
fread(&hit->dataSize, 8, 1, inFile);
|
fread(&hit->dataSize, 8, 1, inFile);
|
||||||
if( opt == 0){
|
if( opt == 0){
|
||||||
fread(hit->data, hit->dataSize, 1, inFile);
|
fread(hit->data, hit->dataSize, 1, inFile);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user