add DebugPrint() Macro, for detail debug, fixed the histogram always fill old data

This commit is contained in:
Ryan Tang 2024-03-22 16:47:33 -04:00
parent 0cf64daf2e
commit a0f9c4d727
10 changed files with 183 additions and 91 deletions

View File

@ -1,20 +1,24 @@
#include "ClassDigitizer.h"
Digitizer::Digitizer(){
DebugPrint("%s", "Digitizer");
Initalization();
}
Digitizer::Digitizer(int boardID, int portID, bool program, bool verbose){
DebugPrint("%s", "Digitizer");
Initalization();
OpenDigitizer(boardID, portID, program, verbose);
}
Digitizer::~Digitizer(){
DebugPrint("%s", "Digitizer");
CloseDigitizer();
delete data;
}
void Digitizer::Initalization(){
DebugPrint("%s", "Digitizer");
data = nullptr;
@ -52,6 +56,7 @@ void Digitizer::Initalization(){
}
void Digitizer::Reset(){
DebugPrint("%s", "Digitizer");
// ret = CAEN_DGTZ_Reset(handle);
// if( ret != 0 ) ErrorMsg(__func__);
@ -65,6 +70,7 @@ void Digitizer::Reset(){
}
void Digitizer::PrintBoard (){
DebugPrint("%s", "Digitizer");
printf("Connected to Model %s with handle %d using %s\n", BoardInfo.ModelName, handle, LinkType == CAEN_DGTZ_USB ? "USB" : "Optical Link");
printf(" Family Name : %s \n", familyName.c_str());
printf(" Sampling rate : %.1f MHz = %.1f ns \n", 1000./tick2ns, tick2ns);
@ -79,7 +85,7 @@ void Digitizer::PrintBoard (){
}
int Digitizer::OpenDigitizer(int boardID, int portID, bool program, bool verbose){
DebugPrint("%s", "Digitizer");
this->boardID = boardID;
this->portID = portID;
@ -267,7 +273,7 @@ int Digitizer::OpenDigitizer(int boardID, int portID, bool program, bool verbose
}
int Digitizer::CloseDigitizer(){
DebugPrint("%s", "Digitizer");
if( !isConnected ) return 0;
isConnected = false;
ret = CAEN_DGTZ_SWStopAcquisition(handle);
@ -280,6 +286,7 @@ int Digitizer::CloseDigitizer(){
void Digitizer::SetRegChannelMask(uint32_t mask){
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return;
if( !isConnected ) return;
regChannelMask = mask;
@ -289,7 +296,8 @@ void Digitizer::SetRegChannelMask(uint32_t mask){
ErrorMsg(__func__);
}
bool Digitizer::GetInputChannelOnOff(unsigned ch) {
bool Digitizer::GetInputChannelOnOff(unsigned ch) {
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return false;
regChannelMask = GetSettingFromMemory(DPP::RegChannelEnableMask);
@ -301,6 +309,7 @@ bool Digitizer::GetInputChannelOnOff(unsigned ch) {
}
void Digitizer::SetRegChannelOnOff(unsigned short ch, bool onOff){
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return;
if( !isConnected ) return;
regChannelMask = ((regChannelMask & ~( 1 << ch) ) | ( onOff << ch)) ;
@ -308,12 +317,14 @@ void Digitizer::SetRegChannelOnOff(unsigned short ch, bool onOff){
}
void Digitizer::ProgramBoard(){
DebugPrint("%s", "Digitizer");
if( DPPType == DPPTypeCode::DPP_PHA_CODE ) ProgramBoard_PHA();
if( DPPType == DPPTypeCode::DPP_PSD_CODE ) ProgramBoard_PSD();
if( DPPType == DPPTypeCode::DPP_QDC_CODE ) ProgramBoard_QDC();
}
int Digitizer::ProgramBoard_PHA(){
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return 0;
printf("===== Digitizer::%s\n", __func__);
@ -513,6 +524,7 @@ int Digitizer::ProgramBoard_QDC(){
//========================================================= ACQ control
void Digitizer::StartACQ(){
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return;
if ( AcqRun ) return;
@ -580,6 +592,7 @@ void Digitizer::StartACQ(){
}
void Digitizer::StopACQ(){
DebugPrint("%s", "Digitizer");
if( !AcqRun ) return;
int ret = CAEN_DGTZ_SWStopAcquisition(handle);
ret |= CAEN_DGTZ_ClearData(handle);
@ -595,6 +608,7 @@ void Digitizer::StopACQ(){
}
unsigned int Digitizer::CalByteForBuffer(bool verbose){
DebugPrint("%s", "Digitizer");
unsigned int numAggBLT;
unsigned int chMask ;
unsigned int boardCfg ;
@ -650,7 +664,7 @@ unsigned int Digitizer::CalByteForBuffer(bool verbose){
}
unsigned int Digitizer::CalByteForBufferCAEN(){
DebugPrint("%s", "Digitizer");
char * BufferCAEN;
uint32_t AllocatedSize;
ret = CAEN_DGTZ_MallocReadoutBuffer(handle, &BufferCAEN, &AllocatedSize);
@ -661,6 +675,7 @@ unsigned int Digitizer::CalByteForBufferCAEN(){
}
int Digitizer::ReadData(){
// DebugPrint("%s", "Digitizer");
if( softwareDisable ) return CAEN_DGTZ_DigitizerNotReady;
if( !isConnected ) return CAEN_DGTZ_DigitizerNotFound;
if( !AcqRun) return CAEN_DGTZ_WrongAcqMode;
@ -687,6 +702,7 @@ int Digitizer::ReadData(){
}
void Digitizer::ReadAndPrintACQStatue(){
DebugPrint("%s", "Digitizer");
if( !isConnected ) return;
unsigned int status = ReadRegister(DPP::AcquisitionStatus_R);
@ -721,7 +737,7 @@ void Digitizer::WriteRegister (Reg registerAddress, uint32_t value, int ch, bool
ret = CAEN_DGTZ_WriteRegister(handle, registerAddress.ActualAddress(ch), value);
if( ret == 0 && isSave2MemAndFile && registerAddress.GetRWType() == RW::ReadWrite) {
if( ret == 0 && isSave2MemAndFile && !AcqRun && registerAddress.GetRWType() == RW::ReadWrite ) {
if( ch < 0 ) {
if( registerAddress.GetAddress() < 0x8000 ){
for(int i = 0; i < NumInputCh; i++){
@ -742,7 +758,7 @@ void Digitizer::WriteRegister (Reg registerAddress, uint32_t value, int ch, bool
}
}
if( ret == 0 && isSave2MemAndFile && registerAddress == DPP::QDC::RecordLength_W){
if( ret == 0 && isSave2MemAndFile && !AcqRun && registerAddress == DPP::QDC::RecordLength_W){
SetSettingToMemory(registerAddress, value, 0);
SaveSettingToFile(registerAddress, value, 0);
}
@ -753,6 +769,7 @@ void Digitizer::WriteRegister (Reg registerAddress, uint32_t value, int ch, bool
}
uint32_t Digitizer::ReadRegister(Reg registerAddress, unsigned short ch, bool isSave2MemAndFile, std::string str ){
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return 0;
if( !isConnected ) return 0;
if( registerAddress.GetRWType() == RW::WriteONLY ) return 0;
@ -760,7 +777,7 @@ uint32_t Digitizer::ReadRegister(Reg registerAddress, unsigned short ch, bool is
ret = CAEN_DGTZ_ReadRegister(handle, registerAddress.ActualAddress(ch), &returnData);
if( ret == 0 && isSave2MemAndFile) {
if( ret == 0 && isSave2MemAndFile && !AcqRun) {
//if( isSave2MemAndFile) {
SetSettingToMemory(registerAddress, returnData, ch);
SaveSettingToFile(registerAddress, returnData, ch);
@ -900,6 +917,7 @@ void Digitizer::ReadAllSettingsFromBoard(bool force){
}
void Digitizer::ProgramSettingsToBoard(){
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return;
if( !isConnected || isDummy ) return;
@ -989,23 +1007,26 @@ void Digitizer::ProgramSettingsToBoard(){
}
void Digitizer::SetSettingToMemory(Reg registerAddress, unsigned int value, unsigned short ch ){
DebugPrint("%s", "Digitizer");
unsigned short index = registerAddress.Index(ch);
if( index > SETTINGSIZE ) return;
setting[index] = value;
}
unsigned int Digitizer::GetSettingFromMemory(Reg registerAddress, unsigned short ch ){
DebugPrint("%s", "Digitizer");
unsigned short index = registerAddress.Index(ch);
if( index > SETTINGSIZE ) return 0xFFFF;
return setting[index] ;
}
void Digitizer::PrintSettingFromMemory(){
DebugPrint("%s", "Digitizer");
for( int i = 0; i < SETTINGSIZE; i++) printf("%4d | 0x%04X |0x%08X = %u \n", i, i*4, setting[i], setting[i]);
}
void Digitizer::SetSettingBinaryPath(std::string fileName){
DebugPrint("%s", "Digitizer");
settingFile = fopen(fileName.c_str(), "r+");
if( settingFile == NULL ){
printf("cannot open file %s. Create one.\n", fileName.c_str());
@ -1026,7 +1047,7 @@ void Digitizer::SetSettingBinaryPath(std::string fileName){
}
int Digitizer::LoadSettingBinaryToMemory(std::string fileName){
DebugPrint("%s", "Digitizer");
settingFile = fopen(fileName.c_str(), "r");
if( settingFile == NULL ) {
@ -1070,6 +1091,7 @@ int Digitizer::LoadSettingBinaryToMemory(std::string fileName){
}
unsigned int Digitizer::ReadSettingFromFile(Reg registerAddress, unsigned short ch){
DebugPrint("%s", "Digitizer");
if ( !isSettingFileExist ) return -1;
unsigned short index = registerAddress.Index(ch);
@ -1090,7 +1112,7 @@ unsigned int Digitizer::ReadSettingFromFile(Reg registerAddress, unsigned short
}
void Digitizer::SaveSettingToFile(Reg registerAddress, unsigned int value, unsigned short ch){
DebugPrint("%s", "Digitizer");
if ( !isSettingFileExist ) return ;
if ( !isSettingFileUpdate ) return;
@ -1109,7 +1131,7 @@ void Digitizer::SaveSettingToFile(Reg registerAddress, unsigned int value, unsig
}
void Digitizer::SaveAllSettingsAsBin(std::string fileName){
DebugPrint("%s", "Digitizer");
SaveAllSettingsAsTextForRun(fileName);
if( !isSettingFilledinMemeory ) return;
@ -1120,6 +1142,7 @@ void Digitizer::SaveAllSettingsAsBin(std::string fileName){
}
void Digitizer::SaveAllSettingsAsTextForRun (std::string fileName){
DebugPrint("%s", "Digitizer");
if( !isSettingFilledinMemeory ) return;
FILE * binFile = fopen(fileName.c_str(), "w+");
@ -1137,6 +1160,7 @@ void Digitizer::SaveAllSettingsAsTextForRun (std::string fileName){
}
void Digitizer::SaveAllSettingsAsText(std::string fileName){
DebugPrint("%s", "Digitizer");
if( !isSettingFilledinMemeory && isConnected) return;
FILE * txtFile = fopen(fileName.c_str(), "w+");
@ -1276,12 +1300,14 @@ void Digitizer::ErrorMsg(std::string header){
//============================== DPP-Alpgorthm Control
void Digitizer::SetDPPAlgorithmControl(uint32_t bit, int ch){
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return;
WriteRegister( DPP::DPPAlgorithmControl, bit, ch);
if( ret != 0 ) ErrorMsg(__func__);
}
unsigned int Digitizer::ReadBits(Reg address, unsigned int bitLength, unsigned int bitSmallestPos, int ch ){
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return 0;
int tempCh = ch;
if (ch < 0 && address < 0x8000 ) tempCh = 0; /// take ch-0
@ -1291,6 +1317,7 @@ unsigned int Digitizer::ReadBits(Reg address, unsigned int bitLength, unsigned i
}
void Digitizer::SetBits(Reg address, unsigned int bitValue, unsigned int bitLength, unsigned int bitSmallestPos, int ch){
DebugPrint("%s", "Digitizer");
if( softwareDisable ) return;
///printf("address : 0x%X, value : 0x%X, len : %d, pos : %d, ch : %d \n", address, bitValue, bitLength, bitSmallestPos, ch);
uint32_t bit ;
@ -1306,7 +1333,7 @@ void Digitizer::SetBits(Reg address, unsigned int bitValue, unsigned int bitLeng
}
void Digitizer::SetOptimialAggOrg(){
DebugPrint("%s", "Digitizer");
if( DPPType != DPPTypeCode::DPP_QDC_CODE ) {
printf("%s | this method only support QDC board.\n", __func__);
return;

View File

@ -1,9 +1,10 @@
#include "ClassInfluxDB.h"
#include "macro.h"
#include <regex>
InfluxDB::InfluxDB(){
DebugPrint("%s", "InfluxDB")
curl = curl_easy_init();
databaseIP = "";
respondCode = 0;
@ -16,7 +17,7 @@ InfluxDB::InfluxDB(){
}
InfluxDB::InfluxDB(std::string url, bool verbose){
DebugPrint("%s", "InfluxDB")
curl = curl_easy_init();
if( verbose) curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
SetURL(url);
@ -30,11 +31,13 @@ InfluxDB::InfluxDB(std::string url, bool verbose){
}
InfluxDB::~InfluxDB(){
DebugPrint("%s", "InfluxDB")
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
void InfluxDB::SetURL(std::string url){
DebugPrint("%s", "InfluxDB")
// check the last char of url is "/"
if( url.back() != '/') {
this->databaseIP = url + "/";
@ -44,12 +47,14 @@ void InfluxDB::SetURL(std::string url){
}
void InfluxDB::SetToken(std::string token){
DebugPrint("%s", "InfluxDB")
this->token = token;
headers = curl_slist_append(headers, "Accept: application/csv");
if( !token.empty() ) headers = curl_slist_append(headers, ("Authorization: Token " + token).c_str());
}
bool InfluxDB::TestingConnection(bool debug){
DebugPrint("%s", "InfluxDB")
CheckInfluxVersion(debug);
if( respond != CURLE_OK ) return false;
connectionOK = true;
@ -57,7 +62,7 @@ bool InfluxDB::TestingConnection(bool debug){
}
std::string InfluxDB::CheckInfluxVersion(bool debug){
DebugPrint("%s", "InfluxDB")
curl_easy_setopt(curl, CURLOPT_URL, (databaseIP + "ping").c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, NULL);
curl_easy_setopt(curl, CURLOPT_HEADER, 1);
@ -92,6 +97,7 @@ std::string InfluxDB::CheckInfluxVersion(bool debug){
}
std::string InfluxDB::CheckDatabases(){
DebugPrint("%s", "InfluxDB")
if( ! connectionOK ) return "no connection. try TestConnection() again.";
if( influxVersion == 2 && token.empty() ) return "token no provided, abort.";
@ -169,7 +175,7 @@ std::string InfluxDB::CheckDatabases(){
}
void InfluxDB::PrintDataBaseList(){
DebugPrint("%s", "InfluxDB")
for( size_t i = 0; i < databaseList.size(); i++){
printf("%2ld| %s\n", i, databaseList[i].c_str());
}
@ -177,6 +183,7 @@ void InfluxDB::PrintDataBaseList(){
}
std::string InfluxDB::Query(std::string databaseName, std::string influxQL_query){
DebugPrint("%s", "InfluxDB")
if( ! connectionOK ) return "no connection. try TestConnection() again.";
if( influxVersion == 2 && token.empty() ) return "token no provided, abort.";
@ -202,6 +209,7 @@ std::string InfluxDB::Query(std::string databaseName, std::string influxQL_query
}
void InfluxDB::CreateDatabase(std::string databaseName){
DebugPrint("%s", "InfluxDB")
if( ! connectionOK ) return ;
if( influxVersion == 2 && token.empty() ) return;
@ -218,21 +226,25 @@ void InfluxDB::CreateDatabase(std::string databaseName){
}
void InfluxDB::AddDataPoint(std::string fullString){
DebugPrint("%s", "InfluxDB")
// printf(" InfluxDB::%s |%s| \n", __func__, fullString.c_str());
dataPoints += fullString + "\n";
}
void InfluxDB::ClearDataPointsBuffer(){
DebugPrint("%s", "InfluxDB")
// printf(" InfluxDB::%s \n", __func__);
dataPoints = "";
}
void InfluxDB::PrintDataPoints(){
DebugPrint("%s", "InfluxDB")
// printf(" InfluxDB::%s \n", __func__);
printf("%s\n", dataPoints.c_str());
}
void InfluxDB::WriteData(std::string databaseName){
void InfluxDB::WriteData(std::string databaseName){
DebugPrint("%s", "InfluxDB")
if( ! connectionOK ) return ;
if( influxVersion == 2 && token.empty() ) return;
@ -250,6 +262,7 @@ void InfluxDB::WriteData(std::string databaseName){
}
void InfluxDB::Execute(){
DebugPrint("%s", "InfluxDB")
// printf(" InfluxDB::%s \n", __func__);
try{
respond = curl_easy_perform(curl);
@ -263,6 +276,7 @@ void InfluxDB::Execute(){
}
size_t InfluxDB::WriteCallBack(char *contents, size_t size, size_t nmemb, void *userp){
DebugPrint("%s", "InfluxDB")
// printf(" InfluxDB::%s \n", __func__);
((std::string*)userp)->append((char*)contents, size * nmemb);
return size * nmemb;

View File

@ -29,7 +29,7 @@ std::vector<std::pair<std::pair<QString, QString>, unsigned short>> ReadoutToolT
{{"FIFO not empty", "FIFO is empty"}, 3}};
DigiSettingsPanel::DigiSettingsPanel(Digitizer ** digi, unsigned int nDigi, QString rawDataPath, QMainWindow *parent): QMainWindow(parent){
DebugPrint("%s", "DigiSettingsPanel");;
this->digi = digi;
this->nDigi = nDigi;
@ -356,6 +356,7 @@ DigiSettingsPanel::~DigiSettingsPanel(){
//*================================================================
//*================================================================
void DigiSettingsPanel::SetUpInfo(QString label, std::string value, QGridLayout *gLayout, int row, int col){
DebugPrint("%s", "DigiSettingsPanel");;
QLabel * lab = new QLabel(label, this);
lab->setAlignment(Qt::AlignRight | Qt::AlignCenter);
QLineEdit * leInfo = new QLineEdit(this);
@ -367,7 +368,7 @@ void DigiSettingsPanel::SetUpInfo(QString label, std::string value, QGridLayout
}
void DigiSettingsPanel::SetUpCheckBox(QCheckBox * &chkBox, QString label, QGridLayout *gLayout, int row, int col, Reg para, std::pair<unsigned short, unsigned short> bit, int ch, int colSpan){
DebugPrint("%s", "DigiSettingsPanel");;
chkBox = new QCheckBox(label, this);
gLayout->addWidget(chkBox, row, col, 1, colSpan);
@ -384,7 +385,7 @@ void DigiSettingsPanel::SetUpCheckBox(QCheckBox * &chkBox, QString label, QGridL
}
void DigiSettingsPanel::SetUpComboBoxBit(RComboBox * &cb, QString label, QGridLayout *gLayout, int row, int col, std::vector<std::pair<std::string, unsigned int>> items, Reg para, std::pair<unsigned short, unsigned short> bit, int colspan, int ch){
DebugPrint("%s", "DigiSettingsPanel");;
QLabel * lab = new QLabel(label, this);
lab->setAlignment(Qt::AlignRight | Qt::AlignCenter);
gLayout->addWidget(lab, row, col);
@ -424,7 +425,7 @@ void DigiSettingsPanel::SetUpComboBoxBit(RComboBox * &cb, QString label, QGridLa
}
void DigiSettingsPanel::SetUpComboBox(RComboBox * &cb, QString label, QGridLayout *gLayout, int row, int col, Reg para, int ch){
DebugPrint("%s", "DigiSettingsPanel");;
QLabel * lab = new QLabel(label, this);
lab->setAlignment(Qt::AlignRight | Qt::AlignCenter);
gLayout->addWidget(lab, row, col);
@ -453,6 +454,7 @@ void DigiSettingsPanel::SetUpComboBox(RComboBox * &cb, QString label, QGridLayou
}
void DigiSettingsPanel::SetUpSpinBox(RSpinBox * &sb, QString label, QGridLayout *gLayout, int row, int col, Reg para, int ch, bool isBoard){
DebugPrint("%s", "DigiSettingsPanel");;
QLabel * lab = new QLabel(label, this);
lab->setAlignment(Qt::AlignRight | Qt::AlignCenter);
gLayout->addWidget(lab, row, col);
@ -534,7 +536,6 @@ void DigiSettingsPanel::SetUpSpinBox(RSpinBox * &sb, QString label, QGridLayout
//&###########################################################
void DigiSettingsPanel::CleanUpGroupBox(QGroupBox * & gBox){
printf("============== %s \n", __func__);
QList<QLabel *> labelChildren1 = gBox->findChildren<QLabel *>();
@ -555,7 +556,7 @@ void DigiSettingsPanel::CleanUpGroupBox(QGroupBox * & gBox){
}
void DigiSettingsPanel::SetUpGlobalTriggerMaskAndFrontPanelMask(QGridLayout * & gLayout){
DebugPrint("%s", "DigiSettingsPanel");;
SetUpComboBoxBit(cbLEMOMode[ID], "LEMO Mode ", gLayout, 0, 0, DPP::Bit_FrontPanelIOControl::ListLEMOLevel, DPP::FrontPanelIOControl, DPP::Bit_FrontPanelIOControl::LEMOLevel, 1, 0);
///============================ Trig out mode
@ -933,7 +934,7 @@ void DigiSettingsPanel::SetUpGlobalTriggerMaskAndFrontPanelMask(QGridLayout * &
}
void DigiSettingsPanel::SetUpInquiryCopyTab(){
DebugPrint("%s", "DigiSettingsPanel");;
//*##################################### Inquiry / Copy Tab
QWidget * inquiryTab = new QWidget(this);
tabWidget->addTab(inquiryTab, "Inquiry / Copy");
@ -1315,7 +1316,7 @@ void DigiSettingsPanel::SetUpInquiryCopyTab(){
//&###########################################################
void DigiSettingsPanel::SetUpChannelMask(unsigned int digiID){
DebugPrint("%s", "DigiSettingsPanel");;
QString lbStr = "Channel Mask :";
if( digi[digiID]->GetDPPType() == DPPTypeCode::DPP_QDC_CODE ) lbStr = "Group Mask :";
@ -1378,6 +1379,7 @@ void DigiSettingsPanel::SetUpChannelMask(unsigned int digiID){
}
void DigiSettingsPanel::SetUpACQReadOutTab(){
DebugPrint("%s", "DigiSettingsPanel");;
SetUpSpinBox(sbAggNum[ID], "Max Agg. Num. / read ", bdACQLayout[ID], 0, 0, DPP::MaxAggregatePerBlockTransfer, -1, true);
SetUpComboBox(cbAggOrg[ID], "Aggregate Organization ", bdACQLayout[ID], 1, 0, DPP::AggregateOrganization, 0);
@ -2485,7 +2487,7 @@ void DigiSettingsPanel::SetUpBoard_QDC(){
}
void DigiSettingsPanel::SetUpChannel_QDC(){
DebugPrint("%s", "DigiSettingsPanel");;
QWidget * chAllSetting = new QWidget(this);
//chAllSetting->setStyleSheet("background-color: #ECECEC;");
chTab->addTab(chAllSetting, "Group Settings");
@ -3108,7 +3110,7 @@ void DigiSettingsPanel::SetUpChannel_QDC(){
//&###########################################################
void DigiSettingsPanel::UpdateACQStatus(uint32_t status){
DebugPrint("%s", "DigiSettingsPanel");;
leACQStatus[ID]->setText( "0x" + QString::number(status, 16).toUpper());
for( int i = 0; i < 9; i++){
@ -3126,7 +3128,7 @@ void DigiSettingsPanel::UpdateACQStatus(uint32_t status){
}
void DigiSettingsPanel::UpdateReadOutStatus(uint32_t status){
DebugPrint("%s", "DigiSettingsPanel");;
leReadOutStatus[ID]->setText( "0x" + QString::number(status, 16).toUpper());
for( int i = 0; i < 3; i++){
@ -3435,7 +3437,7 @@ void DigiSettingsPanel::UpdatePanelFromMemory(){
//&###########################################################
void DigiSettingsPanel::UpdateSpinBox(RSpinBox * &sb, Reg para, int ch){
DebugPrint("%s", "DigiSettingsPanel");
int tick2ns = digi[ID]->GetTick2ns();
int pStep = para.GetPartialStep();
@ -3464,7 +3466,7 @@ void DigiSettingsPanel::UpdateSpinBox(RSpinBox * &sb, Reg para, int ch){
}
void DigiSettingsPanel::UpdateComboBox(RComboBox * & cb, Reg para, int ch){
DebugPrint("%s", "DigiSettingsPanel");
uint32_t value = digi[ID]->GetSettingFromMemory(para, ch);
for( int i = 0; i < cb->count(); i ++){
@ -3476,7 +3478,7 @@ void DigiSettingsPanel::UpdateComboBox(RComboBox * & cb, Reg para, int ch){
}
void DigiSettingsPanel::UpdateComboBoxBit(RComboBox * & cb, uint32_t fullBit, std::pair<unsigned short, unsigned short> bit){
DebugPrint("%s", "DigiSettingsPanel");
int temp = Digitizer::ExtractBits(fullBit, bit);
for( int i = 0; i < cb->count(); i++){
if( cb->itemData(i).toInt() == temp) {
@ -3488,6 +3490,7 @@ void DigiSettingsPanel::UpdateComboBoxBit(RComboBox * & cb, uint32_t fullBit, st
}
void DigiSettingsPanel::SyncSpinBox(RSpinBox *(&spb)[][MaxRegChannel+1]){
DebugPrint("%s", "DigiSettingsPanel");
if( !enableSignalSlot ) return;
const int nCh = digi[ID]->GetNumRegChannels();
@ -3551,6 +3554,7 @@ void DigiSettingsPanel::SyncComboBox(RComboBox *(&cb)[][MaxRegChannel+1]){
}
void DigiSettingsPanel::SyncCheckBox(QCheckBox *(&chk)[][MaxRegChannel+1]){
DebugPrint("%s", "DigiSettingsPanel");
if( !enableSignalSlot ) return;
const int nCh = digi[ID]->GetNumRegChannels();
@ -3580,7 +3584,7 @@ void DigiSettingsPanel::SyncCheckBox(QCheckBox *(&chk)[][MaxRegChannel+1]){
}
void DigiSettingsPanel::SyncAllChannelsTab_PHA(){
DebugPrint("%s", "DigiSettingsPanel");
SyncSpinBox(sbRecordLength);
SyncSpinBox(sbPreTrigger);
SyncSpinBox(sbInputRiseTime);
@ -3626,7 +3630,7 @@ void DigiSettingsPanel::SyncAllChannelsTab_PHA(){
void DigiSettingsPanel::UpdateSettings_PHA(){
DebugPrint("%s", "DigiSettingsPanel");
enableSignalSlot = false;
//printf("------ %s \n", __func__);
@ -3693,7 +3697,7 @@ void DigiSettingsPanel::UpdateSettings_PHA(){
void DigiSettingsPanel::SyncAllChannelsTab_PSD(){
DebugPrint("%s", "DigiSettingsPanel");
SyncSpinBox(sbRecordLength);
SyncSpinBox(sbPreTrigger);
SyncSpinBox(sbThreshold);
@ -3753,7 +3757,7 @@ void DigiSettingsPanel::SyncAllChannelsTab_PSD(){
}
void DigiSettingsPanel::UpdateSettings_PSD(){
DebugPrint("%s", "DigiSettingsPanel");
enableSignalSlot = false;
// printf("------ %s \n", __func__);
@ -3835,7 +3839,7 @@ void DigiSettingsPanel::UpdateSettings_PSD(){
}
void DigiSettingsPanel::SyncAllChannelsTab_QDC(){
DebugPrint("%s", "DigiSettingsPanel");
if( !enableSignalSlot ) return;
// SyncSpinBox(sbRecordLength);
@ -3929,6 +3933,7 @@ void DigiSettingsPanel::SyncAllChannelsTab_QDC(){
}
void DigiSettingsPanel::UpdateSettings_QDC(){
DebugPrint("%s", "DigiSettingsPanel");
enableSignalSlot = false;
uint32_t haha = digi[ID]->ReadQDCRecordLength();
@ -4014,7 +4019,7 @@ void DigiSettingsPanel::UpdateSettings_QDC(){
}
void DigiSettingsPanel::CheckRadioAndCheckedButtons(){
DebugPrint("%s", "DigiSettingsPanel");
int id1 = cbFromBoard->currentIndex();
int id2 = cbToBoard->currentIndex();
@ -4069,7 +4074,7 @@ void DigiSettingsPanel::ReadSettingsFromBoard(){
}
void DigiSettingsPanel::SaveSetting(int opt){
DebugPrint("%s", "DigiSettingsPanel");
QDir dir(rawDataPath);
if( !dir.exists() ) dir.mkpath(".");
@ -4102,6 +4107,7 @@ void DigiSettingsPanel::SaveSetting(int opt){
}
void DigiSettingsPanel::LoadSetting(){
DebugPrint("%s", "DigiSettingsPanel");
QFileDialog fileDialog(this);
fileDialog.setDirectory(rawDataPath);
fileDialog.setFileMode(QFileDialog::ExistingFile);

View File

@ -23,7 +23,7 @@
std::vector<std::string> onlineAnalyzerList = {"Coincident","Splie-Pole", "Encore", "RAISOR"};
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){
DebugPrint("%s", "FSUDAQ");
setWindowTitle("FSU DAQ");
setGeometry(500, 100, 1100, 600);
@ -293,7 +293,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){
}
MainWindow::~MainWindow(){
DebugPrint("%s", "FSUDAQ");
if( scalar ) {
scalarThread->Stop();
scalarThread->quit();
@ -332,7 +332,7 @@ MainWindow::~MainWindow(){
//***************************************************************
//***************************************************************
void MainWindow::OpenDataPath(){
DebugPrint("%s", "FSUDAQ");
QFileDialog fileDialog(this);
fileDialog.setFileMode(QFileDialog::Directory);
int result = fileDialog.exec();
@ -356,7 +356,7 @@ void MainWindow::OpenDataPath(){
}
void MainWindow::OpenRecord(){
DebugPrint("%s", "FSUDAQ");
QString filePath = leDataPath->text() + "/RunTimeStamp.dat";
if( runRecord == nullptr ){
@ -388,7 +388,7 @@ void MainWindow::OpenRecord(){
}
void MainWindow::UpdateRecord(){
DebugPrint("%s", "FSUDAQ");
if( !runRecord ) return;
QString filePath = leDataPath->text() + "/RunTimeStamp.dat";
@ -419,7 +419,7 @@ void MainWindow::UpdateRecord(){
}
void MainWindow::LoadProgramSettings(){
DebugPrint("%s", "FSUDAQ");
LogMsg("Loading <b>" + programSettingsFilePath + "</b> for Program Settings.");
QFile file(programSettingsFilePath);
@ -482,7 +482,7 @@ void MainWindow::LoadProgramSettings(){
}
void MainWindow::SaveProgramSettings(){
DebugPrint("%s", "FSUDAQ");
rawDataPath = leDataPath->text();
QFile file(programSettingsFilePath);
@ -505,7 +505,7 @@ void MainWindow::SaveProgramSettings(){
}
void MainWindow::LoadLastRunFile(){
DebugPrint("%s", "FSUDAQ");
QFile file(rawDataPath + "/lastRun.sh");
if( !file.open(QIODevice::Text | QIODevice::ReadOnly) ) {
@ -546,7 +546,7 @@ void MainWindow::LoadLastRunFile(){
}
void MainWindow::SaveLastRunFile(){
DebugPrint("%s", "FSUDAQ");
QFile file(rawDataPath + "/lastRun.sh");
prefix = lePrefix->text();
@ -566,7 +566,7 @@ void MainWindow::SaveLastRunFile(){
//***************************************************************
//***************************************************************
void MainWindow::OpenDigitizers(){
DebugPrint("%s", "FSUDAQ");
if( cbOpenDigitizers->currentIndex() == 0 ) return;
// placeholder for USB
@ -710,7 +710,6 @@ void MainWindow::OpenDigitizers(){
}
void MainWindow::CloseDigitizers(){
LogMsg("MainWindow::Closing Digitizer(s)....");
if( scope ) {
@ -785,7 +784,7 @@ void MainWindow::CloseDigitizers(){
}
void MainWindow::WaitForDigitizersOpen(bool onOff){
DebugPrint("%s", "FSUDAQ");
// bnOpenDigitizers->setEnabled(onOff);
cbOpenDigitizers->setEnabled(onOff);
@ -810,7 +809,7 @@ void MainWindow::WaitForDigitizersOpen(bool onOff){
//***************************************************************
//***************************************************************
void MainWindow::SetupScalar(){
DebugPrint("%s", "FSUDAQ");
// printf("%s\n", __func__);
scalar = new QMainWindow(this);
@ -941,7 +940,7 @@ void MainWindow::SetupScalar(){
}
void MainWindow::CleanUpScalar(){
DebugPrint("%s", "FSUDAQ");
if( scalar == nullptr) return;
scalar->close();
@ -970,10 +969,12 @@ void MainWindow::CleanUpScalar(){
}
void MainWindow::OpenScalar(){
DebugPrint("%s", "FSUDAQ");
scalar->show();
}
void MainWindow::UpdateScalar(){
DebugPrint("%s", "FSUDAQ");
if( digi == nullptr ) return;
if( scalar == nullptr ) return;
//if( !scalar->isVisible() ) return;
@ -1041,6 +1042,7 @@ void MainWindow::UpdateScalar(){
//***************************************************************
//***************************************************************
void MainWindow::StartACQ(){
DebugPrint("%s", "FSUDAQ");
if( digi == nullptr ) return;
bool commentResult = true;
@ -1126,6 +1128,7 @@ void MainWindow::StartACQ(){
}
void MainWindow::StopACQ(){
DebugPrint("%s", "FSUDAQ");
if( digi == nullptr ) return;
bool commentResult = true;
@ -1217,8 +1220,8 @@ void MainWindow::StopACQ(){
}
void MainWindow::AutoRun(){ //TODO
void MainWindow::AutoRun(){
DebugPrint("%s", "FSUDAQ");
runTimer->disconnect(runTimerConnection);
if( chkSaveData->isChecked() == false){
StartACQ();
@ -1290,7 +1293,7 @@ void MainWindow::AutoRun(){ //TODO
}
void MainWindow::SetSyncMode(){
DebugPrint("%s", "FSUDAQ");
QDialog dialog;
dialog.setWindowTitle("Board Synchronization");
@ -1386,6 +1389,7 @@ void MainWindow::SetSyncMode(){
}
void MainWindow::SetAndLockInfluxElog(){
DebugPrint("%s", "FSUDAQ");
if( leInfluxIP->isReadOnly() ){
bnLock->setText("Lock and Set");
@ -1505,7 +1509,7 @@ void MainWindow::SetAndLockInfluxElog(){
}
bool MainWindow::CommentDialog(bool isStartRun){
DebugPrint("%s", "FSUDAQ");
if( isStartRun ) runID ++;
QString runIDStr = QString::number(runID).rightJustified(3, '0');
@ -1586,7 +1590,7 @@ bool MainWindow::CommentDialog(bool isStartRun){
}
void MainWindow::WriteRunTimestamp(bool isStartRun){
DebugPrint("%s", "FSUDAQ");
QFile file(rawDataPath + "/RunTimeStamp.dat");
QString dateTime = QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss");
@ -1686,7 +1690,7 @@ void MainWindow::OpenScope(){
//***************************************************************
//***************************************************************
void MainWindow::OpenDigiSettings(){
DebugPrint("%s", "FSUDAQ");
if( digiSettings == nullptr ) {
digiSettings = new DigiSettingsPanel(digi, nDigi, rawDataPath);
//connect(scope, &Scope::SendLogMsg, this, &MainWindow::LogMsg);
@ -1703,7 +1707,7 @@ void MainWindow::OpenDigiSettings(){
//***************************************************************
//***************************************************************
void MainWindow::OpenCanvas(){
DebugPrint("%s", "FSUDAQ");
if( canvas == nullptr ) {
canvas = new SingleSpectra(digi, nDigi, rawDataPath);
canvas->show();
@ -1716,6 +1720,7 @@ void MainWindow::OpenCanvas(){
//***************************************************************
//***************************************************************
void MainWindow::OpenAnalyzer(){
DebugPrint("%s", "FSUDAQ");
int id = cbAnalyzer->currentData().toInt();
if( id < 0 ) return;
@ -1749,7 +1754,7 @@ void MainWindow::OpenAnalyzer(){
//***************************************************************
//***************************************************************
void MainWindow::UpdateAllPanels(int panelID){
DebugPrint("%s", "FSUDAQ");
//panelID is the source panel that call
// scope = 1;
// digiSetting = 2;
@ -1810,7 +1815,7 @@ void MainWindow::UpdateAllPanels(int panelID){
//***************************************************************
//***************************************************************
void MainWindow::SetUpInflux(){
DebugPrint("%s", "FSUDAQ");
if( influxIP == "" ) {
LogMsg("<font style=\"color : red;\">Influx missing inputs. skip.</font>");
leInfluxIP->setEnabled(false);
@ -1874,7 +1879,7 @@ void MainWindow::SetUpInflux(){
}
void MainWindow::CheckElog(){
DebugPrint("%s", "FSUDAQ");
if( elogIP != "" && elogName != "" && elogUser != "" && elogPWD != "" ){
WriteElog("Testing communication.", "Testing communication.", "Other", 0);
AppendElog("test append elog.");
@ -1903,7 +1908,7 @@ void MainWindow::CheckElog(){
}
void MainWindow::WriteElog(QString htmlText, QString subject, QString category, int runNumber){
DebugPrint("%s", "FSUDAQ");
//if( elogID < 0 ) return;
if( elogName == "" ) return;
if( elogUser == "" ) return;
@ -1932,6 +1937,7 @@ void MainWindow::WriteElog(QString htmlText, QString subject, QString category,
}
void MainWindow::AppendElog(QString appendHtmlText){
DebugPrint("%s", "FSUDAQ");
if( elogID < 1 ) return;
if( elogName == "" ) return;
@ -1968,6 +1974,7 @@ void MainWindow::AppendElog(QString appendHtmlText){
//***************************************************************
//***************************************************************
void MainWindow::LogMsg(QString msg){
DebugPrint("%s", "FSUDAQ");
QString outputStr = QStringLiteral("[%1] %2").arg(QDateTime::currentDateTime().toString("MM.dd hh:mm:ss"), msg);
if( logMsgHTMLMode ){
logInfo->appendHtml(outputStr);

View File

@ -2,6 +2,7 @@
#define HISTOGRAM_1D_H
#include "qcustomplot.h"
#include "macro.h"
#define MaxNHist 10
@ -11,7 +12,7 @@ class Histogram1D : public QCustomPlot{
Q_OBJECT
public:
Histogram1D(QString title, QString xLabel, int xbin, double xmin, double xmax, QWidget * parent = nullptr) : QCustomPlot(parent){
DebugPrint("%s", "Histogram1D");
isLogY = false;
for( int i = 0; i < 3; i ++) txt[i] = nullptr;
@ -194,6 +195,7 @@ public:
double GetXMax() const {return xMax;}
void SetColor(QColor color, unsigned short ID = 0) {
DebugPrint("%s", "Histogram1D");
graph(ID)->setPen(QPen(color));
QColor haha = color;
haha.setAlpha(20);
@ -208,6 +210,7 @@ public:
}
void UpdatePlot(){
DebugPrint("%s", "Histogram1D");
for( int ID = 0 ; ID < nData; ID ++) graph(ID)->setData(xList, yList[ID]);
xAxis->setRangeLower(xMin);
xAxis->setRangeUpper(xMax);
@ -217,6 +220,7 @@ public:
}
void Clear(){
DebugPrint("%s", "Histogram1D");
for( int ID = 0 ; ID < nData; ID ++) {
for( int i = 0; i <= yList[ID].count(); i++) yList[ID][i] = 0;
}
@ -233,6 +237,7 @@ public:
void SetXTitle(QString xTitle) { xAxis->setLabel(xTitle); }
void Rebin(int xbin, double xmin, double xmax){
DebugPrint("%s", "Histogram1D");
xMin = xmin;
xMax = xmax;
xBin = xbin;
@ -263,6 +268,7 @@ public:
}
void Fill(double value, unsigned int ID = 0){
// DebugPrint("%s", "Histogram1D");
if( ID == 0 ){
totalEntry ++;
txt[1]->setText("Total Entry : "+ QString::number(totalEntry));

View File

@ -2,6 +2,7 @@
#define HISTOGRAM_2D_H
#include "qcustomplot.h"
#include "macro.h"
const QList<QPair<QColor, QString>> colorCycle = { {QColor(Qt::red), "Red"},
{QColor(Qt::blue), "Blue"},
@ -19,7 +20,7 @@ class Histogram2D : public QCustomPlot{
public:
Histogram2D(QString title, QString xLabel, QString yLabel, int xbin, double xmin, double xmax, int ybin, double ymin, double ymax, QWidget * parent = nullptr) : QCustomPlot(parent){
DebugPrint("%s", "Histogram2D");
for( int i = 0; i < 3; i ++ ){
for( int j = 0; j < 3; j ++ ){
box[i][j] = nullptr;
@ -269,6 +270,7 @@ private:
//^###############################################
inline void Histogram2D::Fill(double x, double y){
// DebugPrint("%s", "Histogram2D");
if( isBusy ) return;
int xIndex, yIndex;
colorMap->data()->coordToCell(x, y, &xIndex, &yIndex);
@ -277,8 +279,8 @@ inline void Histogram2D::Fill(double x, double y){
int xk = 1, yk = 1;
if( xIndex < 0 ) xk = 0;
if( xIndex >= xBin ) xk = 2;
if( yIndex < 0 ) yk = 0;
if( yIndex >= yBin ) yk = 2;
if( yIndex < 0 ) yk = 2;
if( yIndex >= yBin ) yk = 0;
entry[xk][yk] ++;
txt[xk][yk]->setText(QString::number(entry[xk][yk]));
@ -295,6 +297,7 @@ inline void Histogram2D::Fill(double x, double y){
}
inline void Histogram2D::Rebin(int xbin, double xmin, double xmax, int ybin, double ymin, double ymax){
DebugPrint("%s", "Histogram2D");
xMin = xmin;
xMax = xmax;
yMin = ymin;
@ -322,6 +325,7 @@ inline void Histogram2D::Rebin(int xbin, double xmin, double xmax, int ybin, do
}
inline void Histogram2D::Clear(){
DebugPrint("%s", "Histogram2D");
for( int i = 0; i < 3; i ++){
for( int j = 0; j < 3; j ++){
entry[i][j] = 0;
@ -337,6 +341,7 @@ inline void Histogram2D::Clear(){
inline void Histogram2D::ClearAllCuts(){
DebugPrint("%s", "Histogram2D");
numCut = 0;
tempCutID = -1;
lastPlottableID = -1;
@ -356,6 +361,7 @@ inline void Histogram2D::ClearAllCuts(){
}
inline void Histogram2D::PrintCutEntry() const{
DebugPrint("%s", "Histogram2D");
if( numCut == 0 ) return;
printf("=============== There are %d cuts.\n", numCut);
for( int i = 0; i < cutList.count(); i++){
@ -365,7 +371,7 @@ inline void Histogram2D::PrintCutEntry() const{
}
inline void Histogram2D::DrawCut(){
DebugPrint("%s", "Histogram2D");
//The histogram is the 1st plottable.
// the lastPlottableID should be numCut+ 1
if( lastPlottableID != numCut ){
@ -393,6 +399,7 @@ inline void Histogram2D::DrawCut(){
}
inline void Histogram2D::rightMouseClickMenu(QMouseEvent * event){
DebugPrint("%s", "Histogram2D");
usingMenu = true;
setSelectionRectMode(QCP::SelectionRectMode::srmNone);
@ -544,6 +551,7 @@ inline void Histogram2D::rightMouseClickMenu(QMouseEvent * event){
}
inline void Histogram2D::rightMouseClickRebin(){
DebugPrint("%s", "Histogram2D");
QDialog dialog(this);
dialog.setWindowTitle("Rebin histogram");

View File

@ -3,6 +3,7 @@
#include <algorithm>
MultiBuilder::MultiBuilder(Data ** multiData, std::vector<int> type, std::vector<int> sn) : nData(type.size()){
DebugPrint("%s", "MultiBuilder");
data = multiData;
typeList = type;
snList = sn;
@ -25,6 +26,7 @@ MultiBuilder::MultiBuilder(Data ** multiData, std::vector<int> type, std::vector
}
MultiBuilder::MultiBuilder(Data * singleData, int type, int sn): nData(1){
DebugPrint("%s", "MultiBuilder");
data = new Data *[1];
data[0] = singleData;
typeList.push_back(type);
@ -40,9 +42,11 @@ MultiBuilder::MultiBuilder(Data * singleData, int type, int sn): nData(1){
}
MultiBuilder::~MultiBuilder(){
DebugPrint("%s", "MultiBuilder");
}
void MultiBuilder::ClearEvents(){
DebugPrint("%s", "MultiBuilder");
eventIndex = -1;
eventBuilt = 0;
totalEventBuilt = 0;
@ -66,7 +70,7 @@ void MultiBuilder::ClearEvents(){
}
void MultiBuilder::PrintStat(){
DebugPrint("%s", "MultiBuilder");
printf("Total number of evet built : %ld\n", totalEventBuilt);
for( int i = 0; i < nData ; i++){
for( int ch = 0; ch < data[i]->GetNChannel() ; ch++){
@ -77,7 +81,7 @@ void MultiBuilder::PrintStat(){
}
void MultiBuilder::PrintAllEvent(){
DebugPrint("%s", "MultiBuilder");
printf("Total number of evet built : %ld\n", totalEventBuilt);
for( int i = 0; i < totalEventBuilt; i++){
printf("%5d ------- size: %ld\n", i, events[i].size());
@ -89,7 +93,7 @@ void MultiBuilder::PrintAllEvent(){
}
void MultiBuilder::FindEarlistTimeAndCh(bool verbose){
DebugPrint("%s", "MultiBuilder");
earlistTime = -1;
earlistDigi = -1;
earlistCh = -1;
@ -130,7 +134,7 @@ void MultiBuilder::FindEarlistTimeAndCh(bool verbose){
}
void MultiBuilder::FindLatestTimeAndCh(bool verbose){
DebugPrint("%s", "MultiBuilder");
latestTime = 0;
latestDigi = -1;
latestCh = -1;
@ -165,6 +169,7 @@ void MultiBuilder::FindLatestTimeAndCh(bool verbose){
}
void MultiBuilder::FindEarlistTimeAmongLastData(bool verbose){
DebugPrint("%s", "MultiBuilder");
latestTime = -1;
latestCh = -1;
latestDigi = -1;
@ -184,6 +189,7 @@ void MultiBuilder::FindEarlistTimeAmongLastData(bool verbose){
}
void MultiBuilder::FindLatestTimeOfData(bool verbose){
DebugPrint("%s", "MultiBuilder");
latestTime = 0;
latestCh = -1;
latestDigi = -1;
@ -204,7 +210,7 @@ void MultiBuilder::FindLatestTimeOfData(bool verbose){
}
void MultiBuilder::BuildEvents(bool isFinal, bool skipTrace, bool verbose){
DebugPrint("%s", "MultiBuilder");
FindEarlistTimeAmongLastData(verbose); // give lastest Time, Ch, and Digi
FindEarlistTimeAndCh(verbose); //Give the earliest time, ch, digi
@ -334,7 +340,7 @@ void MultiBuilder::BuildEvents(bool isFinal, bool skipTrace, bool verbose){
}
void MultiBuilder::BuildEventsBackWard(int maxNumEvent, bool verbose){
DebugPrint("%s", "MultiBuilder");
//skip trace, and only build for maxNumEvent events max
// remember the end of DataIndex, prevent over build

View File

@ -8,7 +8,7 @@
#include <QLabel>
QVector<QPointF> Scope::TrapezoidFilter(QVector<QPointF> data, int baseLineEndS, int riseTimeS, int flatTopS, float decayTime_ns){
DebugPrint("%s", "Scope");
QVector<QPointF> trapezoid;
trapezoid.clear();
@ -47,7 +47,7 @@ QVector<QPointF> Scope::TrapezoidFilter(QVector<QPointF> data, int baseLineEndS,
Scope::Scope(Digitizer ** digi, unsigned int nDigi, ReadDataThread ** readDataThread, QMainWindow * parent) : QMainWindow(parent){
DebugPrint("%s", "Scope");
this->digi = digi;
this->nDigi = nDigi;
this->readDataThread = readDataThread;
@ -307,7 +307,7 @@ Scope::Scope(Digitizer ** digi, unsigned int nDigi, ReadDataThread ** readDataTh
Scope::~Scope(){
DebugPrint("%s", "Scope");
updateTraceThread->Stop();
updateTraceThread->quit();
updateTraceThread->wait();
@ -323,7 +323,7 @@ Scope::~Scope(){
}
void Scope::NullThePointers(){
DebugPrint("%s", "Scope");
sbReordLength = nullptr;
sbPreTrigger = nullptr;
sbDCOffset = nullptr;
@ -359,6 +359,7 @@ void Scope::NullThePointers(){
//*=======================================================
//*=======================================================
void Scope::StartScope(){
DebugPrint("%s", "Scope");
if( !digi ) return;
//TODO set other channel to be no trace;
@ -406,6 +407,7 @@ void Scope::StartScope(){
}
void Scope::StopScope(){
DebugPrint("%s", "Scope");
if( !digi ) return;
// printf("------ Scope::%s \n", __func__);
@ -455,7 +457,7 @@ void Scope::StopScope(){
}
void Scope::UpdateScope(){
DebugPrint("%s", "Scope");
if( !digi ) return;
int ch = cbScopeCh->currentIndex();
@ -556,6 +558,7 @@ void Scope::UpdateScope(){
//*=======================================================
//*=======================================================
void Scope::SetUpComboBoxSimple(RComboBox * &cb, QString str, int row, int col){
DebugPrint("%s", "Scope");
QLabel * lb = new QLabel(str, settingGroup);
lb->setAlignment(Qt::AlignRight | Qt::AlignCenter);
settingLayout->addWidget(lb, row, col);
@ -566,7 +569,7 @@ void Scope::SetUpComboBoxSimple(RComboBox * &cb, QString str, int row, int col){
}
void Scope::SetUpComboBox(RComboBox * &cb, QString str, int row, int col, const Reg para){
DebugPrint("%s", "Scope");
SetUpComboBoxSimple(cb, str, row, col);
for( int i = 0; i < (int) para.GetComboList().size(); i++){
@ -612,7 +615,7 @@ void Scope::SetUpComboBox(RComboBox * &cb, QString str, int row, int col, const
}
void Scope::SetUpSpinBox(RSpinBox * &sb, QString str, int row, int col, const Reg para){
DebugPrint("%s", "Scope");
QLabel * lb = new QLabel(str, settingGroup);
lb->setAlignment(Qt::AlignRight | Qt::AlignCenter);
settingLayout->addWidget(lb, row, col);
@ -687,7 +690,7 @@ void Scope::SetUpSpinBox(RSpinBox * &sb, QString str, int row, int col, const Re
}
void Scope::CleanUpSettingsGroupBox(){
DebugPrint("%s", "Scope");
QList<QLabel *> labelChildren1 = settingGroup->findChildren<QLabel *>();
for( int i = 0; i < labelChildren1.size(); i++) delete labelChildren1[i];
@ -983,7 +986,7 @@ void Scope::SetUpPanel_QDC() {
}
void Scope::EnableControl(bool enable){
DebugPrint("%s", "Scope");
if( digi[ID]->GetDPPType() == V1730_DPP_PHA_CODE ){
sbReordLength->setEnabled(enable);
@ -1018,6 +1021,7 @@ void Scope::EnableControl(bool enable){
//*=======================================================
void Scope::UpdateComobox(RComboBox * &cb, const Reg para){
DebugPrint("%s", "Scope");
int ch = cbScopeCh->currentIndex();
enableSignalSlot = false;
@ -1041,6 +1045,7 @@ void Scope::UpdateComobox(RComboBox * &cb, const Reg para){
}
void Scope::UpdateSpinBox(RSpinBox * &sb, const Reg para){
DebugPrint("%s", "Scope");
int ch = cbScopeCh->currentIndex();
if( digi[ID]->GetDPPType() == DPPTypeCode::DPP_QDC_CODE ) ch = ch /8;
@ -1071,6 +1076,7 @@ void Scope::UpdatePanelFromMomeory(){
void Scope::UpdatePanel_PHA(){
enableSignalSlot = false;
printf("==== %s \n", __func__);
int ch = cbScopeCh->currentIndex();
@ -1260,7 +1266,7 @@ void Scope::UpdatePanel_QDC(){
}
void Scope::ReadSettingsFromBoard(){
DebugPrint("%s", "Scope");
digi[ID]->ReadRegister(DPP::BoardConfiguration);
if( digi[ID]->GetDPPType() == V1730_DPP_PHA_CODE ){

View File

@ -8,7 +8,7 @@
#include <QRandomGenerator>
SingleSpectra::SingleSpectra(Digitizer ** digi, unsigned int nDigi, QString rawDataPath, QMainWindow * parent) : QMainWindow(parent){
DebugPrint("%s", "SingleSpectra");
this->digi = digi;
this->nDigi = nDigi;
this->rawDataPath = rawDataPath;
@ -69,8 +69,8 @@ SingleSpectra::SingleSpectra(Digitizer ** digi, unsigned int nDigi, QString rawD
for( unsigned int i = 0; i < nDigi; i++){
for( int j = 0; j < digi[i]->GetNumInputCh(); j++){
if( hist[i][j] ) hist[i][j]->Clear();
lastFilledIndex[i][j] = -1;
loopFilledIndex[i][j] = 0;
// lastFilledIndex[i][j] = -1;
// loopFilledIndex[i][j] = 0;
}
if( hist2D[i] ) hist2D[i]->Clear();
}
@ -132,7 +132,7 @@ SingleSpectra::SingleSpectra(Digitizer ** digi, unsigned int nDigi, QString rawD
}
SingleSpectra::~SingleSpectra(){
DebugPrint("%s", "SingleSpectra");
SaveSetting();
for( unsigned int i = 0; i < nDigi; i++ ){
@ -144,6 +144,7 @@ SingleSpectra::~SingleSpectra(){
}
void SingleSpectra::ClearInternalDataCount(){
DebugPrint("%s", "SingleSpectra");
for( unsigned int i = 0; i < nDigi; i++){
for( int ch = 0; ch < MaxRegChannel ; ch++) {
lastFilledIndex[i][ch] = -1;
@ -153,7 +154,7 @@ void SingleSpectra::ClearInternalDataCount(){
}
void SingleSpectra::ChangeHistView(){
DebugPrint("%s", "SingleSpectra");
if( !isSignalSlotActive ) return;
int bd = cbDigi->currentIndex();
@ -201,6 +202,7 @@ void SingleSpectra::ChangeHistView(){
}
void SingleSpectra::FillHistograms(){
DebugPrint("%s", "SingleSpectra");
if( !fillHistograms ) return;
unsigned short maxFillTimePerDigi = maxFillTimeinMilliSec/nDigi;
@ -249,7 +251,7 @@ void SingleSpectra::FillHistograms(){
}
void SingleSpectra::SaveSetting(){
DebugPrint("%s", "SingleSpectra");
QFile file(rawDataPath + "/singleSpectraSetting.txt");
file.open(QIODevice::Text | QIODevice::WriteOnly);
@ -279,7 +281,7 @@ void SingleSpectra::SaveSetting(){
}
void SingleSpectra::LoadSetting(){
DebugPrint("%s", "SingleSpectra");
QFile file(rawDataPath + "/singleSpectraSetting.txt");
if( file.open(QIODevice::Text | QIODevice::ReadOnly) ){

10
macro.h
View File

@ -43,4 +43,14 @@ typedef unsigned int uInt;
typedef unsigned long uLong;
typedef unsigned long long ullong;
#define DebugMode 0 //process check, when 1, print out all function call
// if DebugMode is 1, define DebugPrint() to be printf(), else, DebugPrint() define nothing
#if DebugMode
#define DebugPrint(fmt, ...) printf(fmt "::%s\n",##__VA_ARGS__, __func__);
#else
#define DebugPrint(fmt, ...)
#endif
#endif