add settings in digitizer class
This commit is contained in:
parent
26ddde7ec7
commit
7b42ab6d1b
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -7,6 +7,7 @@ test
|
||||||
windowID
|
windowID
|
||||||
screenshot.*
|
screenshot.*
|
||||||
*settings*.txt
|
*settings*.txt
|
||||||
|
*settings*.dat
|
||||||
|
|
||||||
*~
|
*~
|
||||||
*.autosave
|
*.autosave
|
||||||
|
|
|
@ -45,6 +45,10 @@ void Digitizer2Gen::Initialization(){
|
||||||
|
|
||||||
acqON = false;
|
acqON = false;
|
||||||
|
|
||||||
|
boardSettings = DIGIPARA::DIG::AllSettings;
|
||||||
|
for( int ch = 0; ch < MaxNumberOfChannel ; ch ++) chSettings[ch] = DIGIPARA::CH::AllSettings;
|
||||||
|
for( int index = 0 ; index < 4; index ++) VGASetting[index] = DIGIPARA::VGA::VGAGain;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer2Gen::SetDummy(unsigned short sn){
|
void Digitizer2Gen::SetDummy(unsigned short sn){
|
||||||
|
@ -103,6 +107,11 @@ std::string Digitizer2Gen::ReadValue(const char * parameter, bool verbose){
|
||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string Digitizer2Gen::ReadValue(Reg ¶, int ch_index, bool verbose){
|
||||||
|
para.SetValue( ReadValue(para.GetFullPara(ch_index).c_str(), verbose) );
|
||||||
|
return para.GetValue();
|
||||||
|
}
|
||||||
|
|
||||||
std::string Digitizer2Gen::ReadDigValue(std::string shortPara, bool verbose){
|
std::string Digitizer2Gen::ReadDigValue(std::string shortPara, bool verbose){
|
||||||
std::string haha = "/par/" + shortPara;
|
std::string haha = "/par/" + shortPara;
|
||||||
return ReadValue(haha.c_str(), verbose);
|
return ReadValue(haha.c_str(), verbose);
|
||||||
|
@ -113,25 +122,36 @@ std::string Digitizer2Gen::ReadChValue(std::string ch, std::string shortPara, bo
|
||||||
return ReadValue(haha.c_str(), verbose);
|
return ReadValue(haha.c_str(), verbose);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer2Gen::WriteValue(const char * parameter, std::string value){
|
bool Digitizer2Gen::WriteValue(const char * parameter, std::string value){
|
||||||
if( !isConnected ) return;
|
if( !isConnected ) return false;
|
||||||
printf(" %s|%-45s|%s|\n", __func__, parameter, value.c_str());
|
printf(" %s|%-45s|%s|\n", __func__, parameter, value.c_str());
|
||||||
ret = CAEN_FELib_SetValue(handle, parameter, value.c_str());
|
ret = CAEN_FELib_SetValue(handle, parameter, value.c_str());
|
||||||
if (ret != CAEN_FELib_Success) {
|
if (ret != CAEN_FELib_Success) {
|
||||||
printf("|%s||%s|\n", parameter, value.c_str());
|
printf("|%s||%s|\n", parameter, value.c_str());
|
||||||
ErrorMsg(__func__);
|
ErrorMsg(__func__);
|
||||||
return;
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Digitizer2Gen::WriteValue(Reg ¶, std::string value, int ch_index){
|
||||||
|
|
||||||
|
if( WriteValue(para.GetFullPara(ch_index).c_str(), value)){
|
||||||
|
para.SetValue(value);
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer2Gen::WriteDigValue(std::string shortPara, std::string value){
|
bool Digitizer2Gen::WriteDigValue(std::string shortPara, std::string value){
|
||||||
std::string haha = "/par/" + shortPara;
|
std::string haha = "/par/" + shortPara;
|
||||||
WriteValue(haha.c_str(), value);
|
return WriteValue(haha.c_str(), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer2Gen::WriteChValue(std::string ch, std::string shortPara, std::string value){
|
bool Digitizer2Gen::WriteChValue(std::string ch, std::string shortPara, std::string value){
|
||||||
std::string haha = "/ch/" + ch + "/par/" + shortPara;
|
std::string haha = "/ch/" + ch + "/par/" + shortPara;
|
||||||
WriteValue(haha.c_str(), value);
|
return WriteValue(haha.c_str(), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer2Gen::SendCommand(const char * parameter){
|
void Digitizer2Gen::SendCommand(const char * parameter){
|
||||||
|
@ -687,24 +707,6 @@ void Digitizer2Gen::ProgramPHA(bool testPulse){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer2Gen::ReadDigitizerSettings(){
|
|
||||||
|
|
||||||
ReadValue("/ch/4/par/ChRecordLengthS" , true);
|
|
||||||
ReadValue("/ch/4/par/ChPreTriggerS" , true);
|
|
||||||
ReadValue("/ch/4/par/WaveResolution" , true);
|
|
||||||
ReadValue("/ch/4/par/WaveAnalogProbe0" , true);
|
|
||||||
ReadValue("/ch/4/par/WaveAnalogProbe1" , true);
|
|
||||||
ReadValue("/ch/4/par/WaveDigitalProbe0", true);
|
|
||||||
ReadValue("/ch/4/par/WaveDigitalProbe1", true);
|
|
||||||
ReadValue("/ch/4/par/WaveDigitalProbe2", true);
|
|
||||||
ReadValue("/ch/4/par/WaveDigitalProbe3", true);
|
|
||||||
|
|
||||||
ReadValue("/ch/4/par/ChannelsTriggerMask", true);
|
|
||||||
|
|
||||||
ReadValue("/ch/0/par/ChannelsTriggerMask", true);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string Digitizer2Gen::ErrorMsg(const char * funcName){
|
std::string Digitizer2Gen::ErrorMsg(const char * funcName){
|
||||||
printf("======== %s | %s\n",__func__, funcName);
|
printf("======== %s | %s\n",__func__, funcName);
|
||||||
char msg[1024];
|
char msg[1024];
|
||||||
|
@ -719,49 +721,77 @@ std::string Digitizer2Gen::ErrorMsg(const char * funcName){
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer2Gen::SaveSettingsToFile(const char * saveFileName){
|
//^===================================================== Settings
|
||||||
printf("Saving settings....\n");
|
void Digitizer2Gen::ReadAllSettings(){
|
||||||
|
for(int i = 0; i < (int) boardSettings.size(); i++){
|
||||||
|
if( boardSettings[i].ReadWrite() == RW::WriteOnly) continue;
|
||||||
|
ReadValue(boardSettings[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < 4 ; i ++) ReadValue(VGASetting[i], i);
|
||||||
|
|
||||||
|
for(int ch = 0; ch < nChannels ; ch++ ){
|
||||||
|
for( int i = 0; i < (int) chSettings[ch].size(); i++){
|
||||||
|
if( chSettings[ch][i].ReadWrite() == RW::WriteOnly) continue;
|
||||||
|
ReadValue(chSettings[ch][i], i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Digitizer2Gen::SaveSettingsToFile(const char * saveFileName){
|
||||||
|
//printf("Saving settings....\n");
|
||||||
FILE * saveFile = fopen(saveFileName, "w");
|
FILE * saveFile = fopen(saveFileName, "w");
|
||||||
if( saveFile ){
|
if( saveFile ){
|
||||||
std::string para, value;
|
for(int i = 0; i < (int) boardSettings.size(); i++){
|
||||||
for(int i = 0; i < (int) DIGIPARA::DIG::AllSettings.size(); i++){
|
if( boardSettings[i].ReadWrite() == RW::WriteOnly) continue;
|
||||||
if( DIGIPARA::DIG::AllSettings[i].ReadWrite() == RW::WriteOnly) continue;
|
ReadValue(boardSettings[i]);
|
||||||
para = DIGIPARA::DIG::AllSettings[i].GetFullPara();
|
fprintf(saveFile, "%-45s|%d|%4d|%s\n", boardSettings[i].GetFullPara().c_str(),
|
||||||
value = ReadValue(para.c_str());
|
boardSettings[i].ReadWrite(),
|
||||||
fprintf(saveFile, "%-45s|%d|%s\n", para.c_str(), DIGIPARA::DIG::AllSettings[i].ReadWrite(), value.c_str());
|
8000 + i,
|
||||||
|
boardSettings[i].GetValue().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < 4 ; i ++){
|
for(int i = 0; i < 4 ; i ++){
|
||||||
para = DIGIPARA::VGA::VGAGain.GetFullPara(i);
|
ReadValue(VGASetting[i], i);
|
||||||
value = ReadValue(para.c_str());
|
fprintf(saveFile, "%-45s|%d|%4d|%s\n", VGASetting[i].GetFullPara(i).c_str(),
|
||||||
fprintf(saveFile, "%-45s|%d|%s\n", para.c_str(), DIGIPARA::DIG::AllSettings[i].ReadWrite(), value.c_str());
|
VGASetting[i].ReadWrite(),
|
||||||
|
9000 + i,
|
||||||
|
VGASetting[i].GetValue().c_str());
|
||||||
}
|
}
|
||||||
for(int ch = 0; ch < nChannels ; ch++ ){
|
for(int ch = 0; ch < nChannels ; ch++ ){
|
||||||
for( int i = 0; i < (int) DIGIPARA::CH::AllSettings.size(); i++){
|
for( int i = 0; i < (int) chSettings[ch].size(); i++){
|
||||||
if( DIGIPARA::CH::AllSettings[i].ReadWrite() == RW::WriteOnly) continue;
|
if( chSettings[ch][i].ReadWrite() == RW::WriteOnly) continue;
|
||||||
para = DIGIPARA::CH::AllSettings[i].GetFullPara(ch);
|
ReadValue(chSettings[ch][i], i);
|
||||||
value = ReadValue(para.c_str());
|
fprintf(saveFile, "%-45s|%d|%4d|%s\n", chSettings[ch][i].GetFullPara(ch).c_str(),
|
||||||
fprintf(saveFile, "%-45s|%d|%s\n",para.c_str(), DIGIPARA::DIG::AllSettings[i].ReadWrite(),value.c_str());
|
chSettings[ch][i].ReadWrite(),
|
||||||
|
ch*100 + i,
|
||||||
|
chSettings[ch][i].GetValue().c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(saveFile);
|
fclose(saveFile);
|
||||||
|
|
||||||
printf("Saved setting files to %s\n", saveFileName);
|
//printf("Saved setting files to %s\n", saveFileName);
|
||||||
|
return true;
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
printf("Save file accessing error.");
|
//printf("Save file accessing error.");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Digitizer2Gen::LoadSettingsFromFile(const char * loadFileName){
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Digitizer2Gen::LoadSettingsFromFile(const char * loadFileName){
|
||||||
|
|
||||||
FILE * loadFile = fopen(loadFileName, "r");
|
FILE * loadFile = fopen(loadFileName, "r");
|
||||||
char * para = new char[100];
|
|
||||||
char * readWrite = new char[100];
|
|
||||||
char * value = new char[100];
|
|
||||||
|
|
||||||
if( loadFile ){
|
if( loadFile ){
|
||||||
|
char * para = new char[100];
|
||||||
|
char * readWrite = new char[100];
|
||||||
|
char * idStr = new char[100];
|
||||||
|
char * value = new char[100];
|
||||||
|
|
||||||
char line[100];
|
char line[100];
|
||||||
while(fgets(line, sizeof(line), loadFile) != NULL){
|
while(fgets(line, sizeof(line), loadFile) != NULL){
|
||||||
|
|
||||||
|
@ -780,20 +810,47 @@ void Digitizer2Gen::LoadSettingsFromFile(const char * loadFileName){
|
||||||
|
|
||||||
if( count == 0 ) std::strcpy(para, token);
|
if( count == 0 ) std::strcpy(para, token);
|
||||||
if( count == 1 ) std::strcpy(readWrite, token);
|
if( count == 1 ) std::strcpy(readWrite, token);
|
||||||
if( count == 2 ) std::strcpy(value, token);
|
if( count == 2 ) std::strcpy(idStr, token);
|
||||||
if( count > 2) break;
|
if( count == 3 ) std::strcpy(value, token);
|
||||||
|
if( count > 3) break;
|
||||||
|
|
||||||
count ++;
|
count ++;
|
||||||
token = std::strtok(nullptr, "|");
|
token = std::strtok(nullptr, "|");
|
||||||
}
|
}
|
||||||
|
|
||||||
//printf("%s|%s|%s|\n", para, readWrite, value);
|
int id = atoi(idStr);
|
||||||
|
if( id < 8000){ // channel
|
||||||
|
int ch = id / 100;
|
||||||
|
int index = id - ch * 100;
|
||||||
|
chSettings[ch][index].SetValue(value);
|
||||||
|
//printf("-------id : %d, ch: %d, index : %d\n", id, ch, index);
|
||||||
|
//printf("%s|%d|%d|%s|\n", chSettings[ch][index].GetFullPara(ch).c_str(),
|
||||||
|
// chSettings[ch][index].ReadWrite(), id,
|
||||||
|
// chSettings[ch][index].GetValue().c_str());
|
||||||
|
|
||||||
|
}else if ( 8000 <= id && id < 9000){ // board
|
||||||
|
boardSettings[id - 8000].SetValue(value);
|
||||||
|
//printf("%s|%d|%d|%s\n", boardSettings[id-8000].GetFullPara().c_str(),
|
||||||
|
// boardSettings[id-8000].ReadWrite(), id,
|
||||||
|
// boardSettings[id-8000].GetValue().c_str());
|
||||||
|
}else{ // vga
|
||||||
|
VGASetting[id - 9000].SetValue(value);
|
||||||
|
}
|
||||||
|
//printf("%s|%s|%d|%s|\n", para, readWrite, id, value);
|
||||||
if( std::strcmp(readWrite, "2") == 0 ) WriteValue(para, value);
|
if( std::strcmp(readWrite, "2") == 0 ) WriteValue(para, value);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
delete [] para;
|
||||||
|
delete [] readWrite;
|
||||||
|
delete [] idStr;
|
||||||
|
delete [] value;
|
||||||
|
|
||||||
|
return true;
|
||||||
}else{
|
}else{
|
||||||
printf("Fail to load file %s\n", loadFileName);
|
//printf("Fail to load file %s\n", loadFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,6 +62,11 @@ class Digitizer2Gen {
|
||||||
|
|
||||||
bool acqON;
|
bool acqON;
|
||||||
|
|
||||||
|
//all read and read/write settings
|
||||||
|
std::vector<Reg> boardSettings;
|
||||||
|
std::vector<Reg> chSettings[MaxNumberOfChannel];
|
||||||
|
Reg VGASetting[4];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Digitizer2Gen();
|
Digitizer2Gen();
|
||||||
~Digitizer2Gen();
|
~Digitizer2Gen();
|
||||||
|
@ -78,11 +83,13 @@ class Digitizer2Gen {
|
||||||
int GetRet() const {return ret;};
|
int GetRet() const {return ret;};
|
||||||
|
|
||||||
std::string ReadValue(const char * parameter, bool verbose = false);
|
std::string ReadValue(const char * parameter, bool verbose = false);
|
||||||
|
std::string ReadValue(Reg ¶, int ch_index = -1, bool verbose = false);
|
||||||
std::string ReadDigValue(std::string shortPara, bool verbose = false);
|
std::string ReadDigValue(std::string shortPara, bool verbose = false);
|
||||||
std::string ReadChValue(std::string ch, std::string shortPara, bool verbose = false);
|
std::string ReadChValue(std::string ch, std::string shortPara, bool verbose = false);
|
||||||
void WriteValue(const char * parameter, std::string value);
|
bool WriteValue(const char * parameter, std::string value);
|
||||||
void WriteDigValue(std::string shortPara, std::string value);
|
bool WriteValue(Reg ¶, std::string value, int ch_index = -1);
|
||||||
void WriteChValue(std::string ch, std::string shortPara, std::string value);
|
bool WriteDigValue(std::string shortPara, std::string value);
|
||||||
|
bool WriteChValue(std::string ch, std::string shortPara, std::string value);
|
||||||
void SendCommand(const char * parameter);
|
void SendCommand(const char * parameter);
|
||||||
void SendCommand(std::string shortPara);
|
void SendCommand(std::string shortPara);
|
||||||
|
|
||||||
|
@ -109,7 +116,6 @@ class Digitizer2Gen {
|
||||||
|
|
||||||
void Reset();
|
void Reset();
|
||||||
void ProgramPHA(bool testPulse = false);
|
void ProgramPHA(bool testPulse = false);
|
||||||
void ReadDigitizerSettings();
|
|
||||||
|
|
||||||
unsigned short GetNChannels() const {return nChannels;}
|
unsigned short GetNChannels() const {return nChannels;}
|
||||||
unsigned short GetCh2ns() const {return ch2ns;}
|
unsigned short GetCh2ns() const {return ch2ns;}
|
||||||
|
@ -122,8 +128,10 @@ class Digitizer2Gen {
|
||||||
unsigned int GetFileSize() const {return outFileSize;}
|
unsigned int GetFileSize() const {return outFileSize;}
|
||||||
uint64_t GetTotalFilesSize() const {return FinishedOutFilesSize + outFileSize;}
|
uint64_t GetTotalFilesSize() const {return FinishedOutFilesSize + outFileSize;}
|
||||||
|
|
||||||
void SaveSettingsToFile(const char * saveFileName); // text file
|
void ReadAllSettings(); // read settings from digitier and save to memory
|
||||||
void LoadSettingsFromFile(const char * loadFileName);
|
bool SaveSettingsToFile(const char * saveFileName); // ReadAllSettings + text file
|
||||||
|
bool LoadSettingsFromFile(const char * loadFileName); // Load settings, write to digitizer and save to memory
|
||||||
|
//void PrintAllSetting();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#define DIGITIZER_PARAMETER_H
|
#define DIGITIZER_PARAMETER_H
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
enum TYPE {CH, DIG, LVDS, VGA};
|
enum TYPE {CH, DIG, LVDS, VGA};
|
||||||
|
@ -11,19 +12,31 @@ enum RW { ReadOnly, WriteOnly, ReadWrite};
|
||||||
class Reg {
|
class Reg {
|
||||||
private:
|
private:
|
||||||
std::string name;
|
std::string name;
|
||||||
|
std::string value;
|
||||||
TYPE type;
|
TYPE type;
|
||||||
RW readWrite; // true for read/write, false for read-only
|
RW readWrite; // true for read/write, false for read-only
|
||||||
bool isCmd;
|
bool isCmd;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
Reg(){
|
||||||
|
this->name = "";
|
||||||
|
this->readWrite = RW::ReadWrite;
|
||||||
|
this->type = TYPE::CH;
|
||||||
|
this->isCmd = false;
|
||||||
|
this->value = "";
|
||||||
|
}
|
||||||
Reg(std::string para, RW readwrite, TYPE type = TYPE::CH, bool isCmd = false){
|
Reg(std::string para, RW readwrite, TYPE type = TYPE::CH, bool isCmd = false){
|
||||||
this->name = para;
|
this->name = para;
|
||||||
this->readWrite = readwrite;
|
this->readWrite = readwrite;
|
||||||
this->type = type;
|
this->type = type;
|
||||||
this->isCmd = isCmd;
|
this->isCmd = isCmd;
|
||||||
|
this->value = "";
|
||||||
}
|
}
|
||||||
~Reg(){};
|
~Reg(){};
|
||||||
|
|
||||||
|
void SetValue(std::string sv) { this->value = sv;}
|
||||||
|
std::string GetValue() const { return value;}
|
||||||
|
|
||||||
std::string GetPara() const {return name;}
|
std::string GetPara() const {return name;}
|
||||||
std::string GetFullPara(int ch_index = -1) const {
|
std::string GetFullPara(int ch_index = -1) const {
|
||||||
switch (type){
|
switch (type){
|
||||||
|
|
|
@ -492,6 +492,14 @@ void MainWindow::OpenDigitizers(){
|
||||||
//connect(readDataThread[i], &ReadDataThread::checkFileSize, this, &MainWindow::CheckOutFileSize);
|
//connect(readDataThread[i], &ReadDataThread::checkFileSize, this, &MainWindow::CheckOutFileSize);
|
||||||
//connect(readDataThread[i], &ReadDataThread::endOfLastData, this, &MainWindow::CheckOutFileSize);
|
//connect(readDataThread[i], &ReadDataThread::endOfLastData, this, &MainWindow::CheckOutFileSize);
|
||||||
|
|
||||||
|
//*------ search for settings_XXXX.dat
|
||||||
|
QString settingFile = analysisPath + "/settings_" + QString::number(digi[i]->GetSerialNumber()) + ".dat";
|
||||||
|
if( digi[i]->LoadSettingsFromFile( settingFile.toStdString().c_str() ) ){
|
||||||
|
LogMsg("Found setting file <b>" + settingFile + "</b> and loaded.");
|
||||||
|
}else{
|
||||||
|
LogMsg("<font style=\"color: red;\">Unable to found setting file <b>" + settingFile + "</b>. </font>");
|
||||||
|
}
|
||||||
|
|
||||||
SetUpScalar();
|
SetUpScalar();
|
||||||
bnOpenScalar->setEnabled(true);
|
bnOpenScalar->setEnabled(true);
|
||||||
|
|
||||||
|
|
4
test.cpp
4
test.cpp
|
@ -94,11 +94,11 @@ int main(int argc, char* argv[]){
|
||||||
|
|
||||||
//printf("--------%s \n", digi->ReadChValue("0..63", "WaveAnalogprobe0", true).c_str());
|
//printf("--------%s \n", digi->ReadChValue("0..63", "WaveAnalogprobe0", true).c_str());
|
||||||
|
|
||||||
//digi->SaveSettingsToFile("settings.txt");
|
//digi->SaveSettingsToFile(("settings_" + std::to_string(digi->GetSerialNumber()) + ".dat").c_str());
|
||||||
|
|
||||||
printf("===================================\n");
|
printf("===================================\n");
|
||||||
|
|
||||||
digi->LoadSettingsFromFile("settings.txt");
|
digi->LoadSettingsFromFile("settings_21245.dat");
|
||||||
//printf("%s \n", digi->ReadValue("/ch/0/par/ChRealtimeMonitor").c_str());
|
//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("/ch/0/par/Energy_Nbit").c_str());
|
||||||
//printf("%s \n", digi->ReadValue("/par/MaxRawDataSize").c_str());
|
//printf("%s \n", digi->ReadValue("/par/MaxRawDataSize").c_str());
|
||||||
|
|
Loading…
Reference in New Issue
Block a user