diff --git a/DigiSettingsPanel.cpp b/DigiSettingsPanel.cpp index f667bec..8a92daa 100644 --- a/DigiSettingsPanel.cpp +++ b/DigiSettingsPanel.cpp @@ -7,6 +7,8 @@ #include #include #include + +#define ComBoxMixed "Mixed" // bit = 0, bit = 1 std::vector, unsigned short>> ACQToolTip = {{{"ACQ STOP", "ACQ RUN"}, 2}, {{"No Event", "Has Events"}, 3}, @@ -36,7 +38,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer ** digi, unsigned int nDigi, QStr enableSignalSlot = false; setWindowTitle("Digitizer Settings"); - setGeometry(0, 0, 1600, 850); + setGeometry(0, 0, 1700, 850); tabWidget = new QTabWidget(this); setCentralWidget(tabWidget); @@ -368,7 +370,7 @@ void DigiSettingsPanel::SetUpComboBoxBit(RComboBox * &cb, QString label, QGridLa cb = new RComboBox(this); gLayout->addWidget(cb, row, col + 1, 1, colspan); - if( ch < 0 ) cb->addItem("", -999); + if( ch < 0 ) cb->addItem(ComBoxMixed, -999); for(int i = 0; i < (int) items.size(); i++){ cb->addItem(QString::fromStdString(items[i].first), items[i].second); @@ -377,7 +379,7 @@ void DigiSettingsPanel::SetUpComboBoxBit(RComboBox * &cb, QString label, QGridLa connect(cb, &RComboBox::currentIndexChanged, this, [=](){ if( !enableSignalSlot ) return; - if( ch == -1 && cb->currentText() == "" ) return; + if( ch == -1 && cb->currentText() == ComBoxMixed ) return; int chID = ch < 0 ? chSelection[ID]->currentData().toInt() : ch; @@ -397,7 +399,7 @@ void DigiSettingsPanel::SetUpComboBox(RComboBox * &cb, QString label, QGridLayou cb = new RComboBox(this); gLayout->addWidget(cb, row, col + 1); - if( ch < 0 ) cb->addItem("", -999); + if( ch < 0 ) cb->addItem(ComBoxMixed, -999); std::vector> items = para.GetComboList(); for(int i = 0; i < (int) items.size(); i++){ @@ -407,7 +409,7 @@ void DigiSettingsPanel::SetUpComboBox(RComboBox * &cb, QString label, QGridLayou connect(cb, &RComboBox::currentIndexChanged, this, [=](){ if( !enableSignalSlot ) return; - if( ch == -1 && cb->currentText() == "" ) return; + if( ch == -1 && cb->currentText() == ComBoxMixed ) return; int chID = ch < 0 ? chSelection[ID]->currentData().toInt() : ch; digi[ID]->WriteRegister(para, cb->currentData().toUInt(), chID); @@ -1386,7 +1388,7 @@ void DigiSettingsPanel::SetUpACQReadOutTab(){ //&########################################################### void DigiSettingsPanel::SetUpBoard_PHA(){ - printf("============== %s \n", __func__); + printf("============== DigiSettingsPanel::%s \n", __func__); SetUpCheckBox(chkAutoDataFlush[ID], "Auto Data Flush", bdCfgLayout[ID], 1, 0, DPP::BoardConfiguration, DPP::Bit_BoardConfig::EnableAutoDataFlush); SetUpCheckBox(chkTrigPropagation[ID], "Trig. Propagate", bdCfgLayout[ID], 2, 0, DPP::BoardConfiguration, DPP::Bit_BoardConfig::TrigPropagation); @@ -1843,7 +1845,7 @@ void DigiSettingsPanel::SetUpChannel_PHA(){ //&########################################################### void DigiSettingsPanel::SetUpBoard_PSD(){ - printf("============== %s \n", __func__); + printf("============== DigiSettingsPanel::%s \n", __func__); SetUpCheckBox(chkAutoDataFlush[ID], "Auto Data Flush", bdCfgLayout[ID], 1, 0, DPP::BoardConfiguration, DPP::Bit_BoardConfig::EnableAutoDataFlush); SetUpCheckBox(chkTrigPropagation[ID], "Trig. Propagate", bdCfgLayout[ID], 2, 0, DPP::BoardConfiguration, DPP::Bit_BoardConfig::TrigPropagation); @@ -2425,7 +2427,7 @@ void DigiSettingsPanel::SetUpChannel_PSD(){ //&########################################################### void DigiSettingsPanel::SetUpBoard_QDC(){ - printf("============== %s \n", __func__); + printf("============== DigiSettingsPanel::%s \n", __func__); SetUpCheckBox(chkTraceRecording[ID], "Record Trace ", bdCfgLayout[ID], 1, 1, DPP::BoardConfiguration, DPP::Bit_BoardConfig::RecordTrace); SetUpCheckBox(chkEnableExtra2[ID], "Enable Extra ", bdCfgLayout[ID], 1, 2, DPP::BoardConfiguration, DPP::Bit_BoardConfig::EnableExtra2); @@ -3502,7 +3504,7 @@ void DigiSettingsPanel::SyncComboBox(RComboBox *(&cb)[][MaxRegChannel+1]){ //printf("%d =? %d , %s\n", count, nCh, text.toStdString().c_str()); enableSignalSlot = false; if( count != nCh ){ - cb[ID][nCh]->setCurrentText(""); + cb[ID][nCh]->setCurrentText(ComBoxMixed); }else{ cb[ID][nCh]->setCurrentText(text); } @@ -4075,7 +4077,7 @@ void DigiSettingsPanel::LoadSetting(){ if( digi[ID]->LoadSettingBinaryToMemory(fileName.toStdString().c_str()) == 0 ){ SendLogMsg("Loaded settings file " + fileName + " for Digi-" + QString::number(digi[ID]->GetSerialNumber())); - leSaveFilePath[ID]->setText(fileName + " | dynamic update"); + leSaveFilePath[ID]->setText(fileName); digi[ID]->ProgramSettingsToBoard(); UpdatePanelFromMemory(); diff --git a/FSUDAQ.cpp b/FSUDAQ.cpp index dcf72c0..e1ceaf3 100644 --- a/FSUDAQ.cpp +++ b/FSUDAQ.cpp @@ -64,8 +64,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ cbOpenMethod = new RComboBox(this); cbOpenMethod->addItem("w/o settings", 0); - cbOpenMethod->addItem("default Program", 1); cbOpenMethod->addItem("w/ settings", 1); + cbOpenMethod->addItem("default Program", 2); layout->addWidget(cbOpenMethod, 1, 0); bnCloseDigitizers = new QPushButton("Close Digitizers", this); @@ -628,12 +628,12 @@ void MainWindow::OpenDigitizers(){ digi[i] = new Digitizer(portList[i].first, portList[i].second); //digi[i]->Reset(); - if( cbOpenMethod->currentData().toInt() == 1 ) { + if( cbOpenMethod->currentData().toInt() == 2 ) { digi[i]->ProgramBoard(); } ///============== load settings - if( cbOpenMethod->currentData().toInt() == 2 ){ + if( cbOpenMethod->currentData().toInt() <= 1 ){ QString fileName = rawDataPath + "/Digi-" + QString::number(digi[i]->GetSerialNumber()) + "_" + QString::fromStdString(digi[i]->GetData()->DPPTypeStr) + ".bin"; QFile file(fileName); if( !file.open(QIODevice::Text | QIODevice::ReadOnly) ) { @@ -655,12 +655,19 @@ void MainWindow::OpenDigitizers(){ } }else{ LogMsg("Found " + fileName + " for digitizer settings."); - if( digi[i]->LoadSettingBinaryToMemory(fileName.toStdString().c_str()) == 0 ){ - LogMsg("Loaded settings file " + fileName + " for Digi-" + QString::number(digi[i]->GetSerialNumber())); - digi[i]->ProgramSettingsToBoard(); + + if( cbOpenMethod->currentData().toInt() == 1 ){ + if( digi[i]->LoadSettingBinaryToMemory(fileName.toStdString().c_str()) == 0 ){ + LogMsg("Loaded settings file " + fileName + " for Digi-" + QString::number(digi[i]->GetSerialNumber())); + digi[i]->ProgramSettingsToBoard(); + }else{ + LogMsg("Fail to Loaded settings file " + fileName + " for Digi-" + QString::number(digi[i]->GetSerialNumber())); + } }else{ - LogMsg("Fail to Loaded settings file " + fileName + " for Digi-" + QString::number(digi[i]->GetSerialNumber())); + LogMsg("Save the setting file path, but not load."); + digi[i]->SetSettingBinaryPath(fileName.toStdString()); } + } } digi[i]->ReadAllSettingsFromBoard(true);