in the progree for low level settings
This commit is contained in:
parent
9153414519
commit
77d2023776
|
@ -128,8 +128,8 @@ namespace DIGIPARA{
|
||||||
const Reg DPP_License ("License", RW::ReadOnly, TYPE::DIG);
|
const Reg DPP_License ("License", RW::ReadOnly, TYPE::DIG);
|
||||||
const Reg DPP_LicenseStatus ("LicenseStatus", RW::ReadOnly, TYPE::DIG);
|
const Reg DPP_LicenseStatus ("LicenseStatus", RW::ReadOnly, TYPE::DIG);
|
||||||
const Reg DPP_LicenseRemainingTime ("LicenseRemainingTime", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
const Reg DPP_LicenseRemainingTime ("LicenseRemainingTime", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
||||||
const Reg NumberOfChannel ("NumCh", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "sec");
|
const Reg NumberOfChannel ("NumCh", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
||||||
const Reg ADC_bit ("ADC_Nbit", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM);
|
const Reg ADC_bit ("ADC_Nbit", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "sec");
|
||||||
const Reg ADC_SampleRate ("ADC_SamplRate", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "MS/s");
|
const Reg ADC_SampleRate ("ADC_SamplRate", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "MS/s");
|
||||||
const Reg InputDynamicRange ("InputRange", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "Vpp");
|
const Reg InputDynamicRange ("InputRange", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::NUM, "Vpp");
|
||||||
const Reg InputType ("InputType", RW::ReadOnly, TYPE::DIG, {{"0","Singled ended"}, {"1", "Differential"}});
|
const Reg InputType ("InputType", RW::ReadOnly, TYPE::DIG, {{"0","Singled ended"}, {"1", "Differential"}});
|
||||||
|
|
|
@ -135,6 +135,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
LEDStatus[iDigi][i]->setFixedSize(QSize(30,30));
|
LEDStatus[iDigi][i]->setFixedSize(QSize(30,30));
|
||||||
LEDStatus[iDigi][i]->setToolTip(LEDToolTip[i]);
|
LEDStatus[iDigi][i]->setToolTip(LEDToolTip[i]);
|
||||||
LEDStatus[iDigi][i]->setToolTipDuration(-1);
|
LEDStatus[iDigi][i]->setToolTipDuration(-1);
|
||||||
|
//TODO set tooltip position on top
|
||||||
statusLayout->addWidget(LEDStatus[iDigi][i], 0, 1 + 19 - i);
|
statusLayout->addWidget(LEDStatus[iDigi][i], 0, 1 + 19 - i);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -196,12 +197,9 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
digi[ID]->Reset();
|
digi[ID]->Reset();
|
||||||
});
|
});
|
||||||
|
|
||||||
bnDefaultSetting[iDigi] = new QPushButton("Set Default Settings", tab);
|
bnDefaultSetting[iDigi] = new QPushButton("Set Default PHA Settings", tab);
|
||||||
bnLayout->addWidget(bnDefaultSetting[iDigi], rowId, 4, 1, 2);
|
bnLayout->addWidget(bnDefaultSetting[iDigi], rowId, 4, 1, 2);
|
||||||
connect(bnDefaultSetting[iDigi], &QPushButton::clicked, this, [=](){
|
connect(bnDefaultSetting[iDigi], &QPushButton::clicked, this, &DigiSettingsPanel::SetDefaultPHASettigns);
|
||||||
SendLogMsg("Program Digitizer-" + QString::number(digi[ID]->GetSerialNumber()) + " to default PHA.");
|
|
||||||
digi[ID]->ProgramPHA();
|
|
||||||
});
|
|
||||||
|
|
||||||
bnSaveSettings[iDigi] = new QPushButton("Save Settings", tab);
|
bnSaveSettings[iDigi] = new QPushButton("Save Settings", tab);
|
||||||
bnLayout->addWidget(bnSaveSettings[iDigi], rowId, 6, 1, 2);
|
bnLayout->addWidget(bnSaveSettings[iDigi], rowId, 6, 1, 2);
|
||||||
|
@ -781,7 +779,6 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
SetupSpinBoxTab(spbADCVetoWidth, DIGIPARA::CH::ADCVetoWidth, "ADC Veto Length [ns]", triggerTab, iDigi, digi[iDigi]->GetNChannels());
|
SetupSpinBoxTab(spbADCVetoWidth, DIGIPARA::CH::ADCVetoWidth, "ADC Veto Length [ns]", triggerTab, iDigi, digi[iDigi]->GetNChannels());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for( int ch = 0; ch < digi[ID]->GetNChannels() + 1; ch++) {
|
for( int ch = 0; ch < digi[ID]->GetNChannels() + 1; ch++) {
|
||||||
//send UpdateScopeSetting signal
|
//send UpdateScopeSetting signal
|
||||||
connect(spbDCOffset[iDigi][ch], &RSpinBox::returnPressed, this, &DigiSettingsPanel::UpdateScopeSetting);
|
connect(spbDCOffset[iDigi][ch], &RSpinBox::returnPressed, this, &DigiSettingsPanel::UpdateScopeSetting);
|
||||||
|
@ -921,6 +918,185 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
|
|
||||||
} //=== end of tab
|
} //=== end of tab
|
||||||
|
|
||||||
|
//^==============================================
|
||||||
|
{
|
||||||
|
ICTab = new QTabWidget(this);
|
||||||
|
tabWidget->addTab(ICTab, "Inquiry / Copy");
|
||||||
|
|
||||||
|
QVBoxLayout * layout1 = new QVBoxLayout(ICTab);
|
||||||
|
layout1->setAlignment(Qt::AlignTop | Qt::AlignLeft);
|
||||||
|
|
||||||
|
{//@============== low level inquiry
|
||||||
|
QGroupBox * icBox1 = new QGroupBox("Low Level Settings", ICTab);
|
||||||
|
layout1->addWidget(icBox1);
|
||||||
|
|
||||||
|
QGridLayout * inquiryLayout = new QGridLayout(icBox1);
|
||||||
|
inquiryLayout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
|
||||||
|
//inquiryLayout->setSpacing(0);
|
||||||
|
|
||||||
|
int rowID = 0;
|
||||||
|
QLabel * info = new QLabel("This will read from the digitizer, save the setting to memory.", icBox1);
|
||||||
|
inquiryLayout->addWidget(info, rowID, 0, 1, 6);
|
||||||
|
|
||||||
|
///=========== header
|
||||||
|
rowID ++;
|
||||||
|
QLabel * hd0 = new QLabel("Digi. Value", icBox1);
|
||||||
|
hd0->setAlignment(Qt::AlignCenter);
|
||||||
|
inquiryLayout->addWidget(hd0, rowID, 3);
|
||||||
|
|
||||||
|
QLabel * hd1 = new QLabel("<----------- Set Value ---------->", icBox1);
|
||||||
|
hd1->setAlignment(Qt::AlignCenter);
|
||||||
|
inquiryLayout->addWidget(hd1, rowID, 5, 1, 2);
|
||||||
|
|
||||||
|
///----------- board settings
|
||||||
|
rowID ++;
|
||||||
|
RComboBox * cbIQDigi = new RComboBox(ICTab);
|
||||||
|
for( int i = 0; i < nDigi; i++) cbIQDigi->addItem("Digi-" + QString::number(digi[i]->GetSerialNumber()), i);
|
||||||
|
inquiryLayout->addWidget(cbIQDigi, rowID, 0);
|
||||||
|
|
||||||
|
RComboBox * cbBdSettings = new RComboBox(ICTab);
|
||||||
|
for( int i = 0; i < (int) DIGIPARA::DIG::AllSettings.size(); i++ ){
|
||||||
|
cbBdSettings->addItem( QString::fromStdString( DIGIPARA::DIG::AllSettings[i].GetPara() ), i);
|
||||||
|
}
|
||||||
|
inquiryLayout->addWidget(cbBdSettings, rowID, 1);
|
||||||
|
connect(cbBdSettings, &RComboBox::currentIndexChanged, this, [=](int index){
|
||||||
|
QString type;
|
||||||
|
switch (DIGIPARA::DIG::AllSettings[index].ReadWrite()) {
|
||||||
|
case RW::ReadOnly : type ="Read Only"; break;
|
||||||
|
case RW::WriteOnly : type ="Write Only"; break;
|
||||||
|
case RW::ReadWrite : type ="Read/Write"; break;
|
||||||
|
}
|
||||||
|
leBdSettingsType->setText(type);
|
||||||
|
|
||||||
|
if( DIGIPARA::DIG::AllSettings[index].ReadWrite() != RW::ReadOnly ){
|
||||||
|
switch (DIGIPARA::DIG::AllSettings[index].GetAnswerType()){
|
||||||
|
case ANSTYPE::STR : {
|
||||||
|
cbBdAns->setEnabled(true);
|
||||||
|
cbBdAns->clear();
|
||||||
|
for( int i = 0; i < (int) DIGIPARA::DIG::AllSettings[index].GetAnswers().size(); i++){
|
||||||
|
cbBdAns->addItem(QString::fromStdString(DIGIPARA::DIG::AllSettings[index].GetAnswers()[i].second),
|
||||||
|
QString::fromStdString(DIGIPARA::DIG::AllSettings[index].GetAnswers()[i].first));
|
||||||
|
}
|
||||||
|
sbBdSettingsWrite->setEnabled(false);
|
||||||
|
}; break;
|
||||||
|
case ANSTYPE::NUM : {
|
||||||
|
cbBdAns->clear();
|
||||||
|
cbBdAns->setEnabled(false);
|
||||||
|
sbBdSettingsWrite->setEnabled(true);
|
||||||
|
sbBdSettingsWrite->setMinimum(atof(DIGIPARA::DIG::AllSettings[index].GetAnswers()[0].first.c_str()));
|
||||||
|
sbBdSettingsWrite->setMaximum(atof(DIGIPARA::DIG::AllSettings[index].GetAnswers()[1].first.c_str()));
|
||||||
|
sbBdSettingsWrite->setSingleStep(atof(DIGIPARA::DIG::AllSettings[index].GetAnswers()[2].first.c_str()));
|
||||||
|
sbBdSettingsWrite->setValue(0);
|
||||||
|
}; break;
|
||||||
|
case ANSTYPE::NONE: {
|
||||||
|
cbBdAns->clear();
|
||||||
|
cbBdAns->setEnabled(false);
|
||||||
|
sbBdSettingsWrite->setEnabled(false);
|
||||||
|
sbBdSettingsWrite->cleanText();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
cbBdSettings->setCurrentIndex(0);
|
||||||
|
|
||||||
|
leBdSettingsType = new QLineEdit("Read Only",ICTab);
|
||||||
|
leBdSettingsType->setFixedWidth(150);
|
||||||
|
leBdSettingsType->setReadOnly(true);
|
||||||
|
inquiryLayout->addWidget(leBdSettingsType, rowID, 2);
|
||||||
|
|
||||||
|
leBdSettingsRead = new QLineEdit(ICTab);
|
||||||
|
leBdSettingsRead->setFixedWidth(200);
|
||||||
|
leBdSettingsRead->setReadOnly(true);
|
||||||
|
inquiryLayout->addWidget(leBdSettingsRead, rowID, 3);
|
||||||
|
|
||||||
|
QPushButton * pbRead = new QPushButton("Read", ICTab);
|
||||||
|
inquiryLayout->addWidget(pbRead, rowID, 4, 2, 1);
|
||||||
|
|
||||||
|
cbBdAns = new RComboBox(ICTab);
|
||||||
|
cbBdAns->setFixedWidth(200);
|
||||||
|
inquiryLayout->addWidget(cbBdAns, rowID, 5);
|
||||||
|
|
||||||
|
sbBdSettingsWrite = new RSpinBox(ICTab);
|
||||||
|
sbBdSettingsWrite->setFixedWidth(200);
|
||||||
|
inquiryLayout->addWidget(sbBdSettingsWrite, rowID, 6);
|
||||||
|
|
||||||
|
QPushButton * pbWrite = new QPushButton("Write", ICTab);
|
||||||
|
inquiryLayout->addWidget(pbWrite, rowID, 7, 2, 1);
|
||||||
|
|
||||||
|
///----------- Channels settings
|
||||||
|
rowID ++;
|
||||||
|
RComboBox * cbIQCh = new RComboBox(ICTab);
|
||||||
|
for( int i = 0; i < digi[0]->GetNChannels() ; i++) cbIQCh->addItem("Ch-" + QString::number(i), i);
|
||||||
|
inquiryLayout->addWidget(cbIQCh, rowID, 0);
|
||||||
|
|
||||||
|
RComboBox * cbChSettings = new RComboBox(ICTab);
|
||||||
|
for( int i = 0; i < (int) DIGIPARA::CH::AllSettings.size(); i++ ){
|
||||||
|
cbChSettings->addItem( QString::fromStdString( DIGIPARA::CH::AllSettings[i].GetPara() ), i);
|
||||||
|
}
|
||||||
|
inquiryLayout->addWidget(cbChSettings, rowID, 1);
|
||||||
|
|
||||||
|
QLineEdit * leChSettingsType = new QLineEdit("Read Only", ICTab);
|
||||||
|
leChSettingsType->setFixedWidth(150);
|
||||||
|
leChSettingsType->setReadOnly(true);
|
||||||
|
inquiryLayout->addWidget(leChSettingsType, rowID, 2);
|
||||||
|
|
||||||
|
QLineEdit * leChSettingsRead = new QLineEdit(ICTab);
|
||||||
|
leChSettingsRead->setFixedWidth(100);
|
||||||
|
leChSettingsRead->setReadOnly(true);
|
||||||
|
inquiryLayout->addWidget(leChSettingsRead, rowID, 3);
|
||||||
|
|
||||||
|
RComboBox * cbChAns = new RComboBox(ICTab);
|
||||||
|
cbChAns->setFixedWidth(200);
|
||||||
|
inquiryLayout->addWidget(cbChAns, rowID, 5);
|
||||||
|
|
||||||
|
QLineEdit * leChSettingsWrite = new QLineEdit(ICTab);
|
||||||
|
leChSettingsWrite->setFixedWidth(200);
|
||||||
|
inquiryLayout->addWidget(leChSettingsWrite, rowID, 6);
|
||||||
|
|
||||||
|
for( int i = 0 ; i < inquiryLayout->count(); i++) inquiryLayout->setColumnStretch(i, 2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
{//@============== Copy setting
|
||||||
|
QGroupBox * icBox2 = new QGroupBox("Copy Settings", ICTab);
|
||||||
|
layout1->addWidget(icBox2);
|
||||||
|
|
||||||
|
QHBoxLayout * cpLayout = new QHBoxLayout(icBox2);
|
||||||
|
cpLayout->setAlignment(Qt::AlignHCenter | Qt::AlignLeft);
|
||||||
|
|
||||||
|
///================
|
||||||
|
QGroupBox * icBox2a = new QGroupBox("Copy From", icBox2);
|
||||||
|
cpLayout->addWidget(icBox2a, 0);
|
||||||
|
|
||||||
|
QGridLayout * lo1 = new QGridLayout(icBox2a);
|
||||||
|
|
||||||
|
RComboBox * cbCopyDigiFrom = new RComboBox(ICTab);
|
||||||
|
for( int i = 0; i < nDigi; i++) cbCopyDigiFrom->addItem("Digi-" + QString::number(digi[i]->GetSerialNumber()), i);
|
||||||
|
lo1->addWidget(cbCopyDigiFrom, 0, 0);
|
||||||
|
|
||||||
|
|
||||||
|
///================
|
||||||
|
QPushButton * pbCopy = new QPushButton("Copy", ICTab);
|
||||||
|
cpLayout->addWidget(pbCopy, 1);
|
||||||
|
|
||||||
|
///================
|
||||||
|
QGroupBox * icBox2b = new QGroupBox("Copy To", icBox2);
|
||||||
|
cpLayout->addWidget(icBox2b, 2);
|
||||||
|
|
||||||
|
QGridLayout * lo2 = new QGridLayout(icBox2b);
|
||||||
|
|
||||||
|
RComboBox * cbCopyDigiTo = new RComboBox(ICTab);
|
||||||
|
for( int i = 0; i < nDigi; i++) cbCopyDigiTo->addItem("Digi-" + QString::number(digi[i]->GetSerialNumber()), i);
|
||||||
|
lo2->addWidget(cbCopyDigiTo, 0, 0);
|
||||||
|
|
||||||
|
|
||||||
|
cpLayout->setStretch(0, 4);
|
||||||
|
cpLayout->setStretch(1, 1);
|
||||||
|
cpLayout->setStretch(2, 4);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EnableControl();
|
EnableControl();
|
||||||
|
|
||||||
show();
|
show();
|
||||||
|
@ -1057,6 +1233,12 @@ void DigiSettingsPanel::LoadSettings(){
|
||||||
ShowSettingsToPanel();
|
ShowSettingsToPanel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DigiSettingsPanel::SetDefaultPHASettigns(){
|
||||||
|
SendLogMsg("Program Digitizer-" + QString::number(digi[ID]->GetSerialNumber()) + " to default PHA.");
|
||||||
|
digi[ID]->ProgramPHA();
|
||||||
|
RefreshSettings();
|
||||||
|
}
|
||||||
|
|
||||||
void DigiSettingsPanel::ShowSettingsToPanel(){
|
void DigiSettingsPanel::ShowSettingsToPanel(){
|
||||||
|
|
||||||
enableSignalSlot = false;
|
enableSignalSlot = false;
|
||||||
|
|
|
@ -36,6 +36,7 @@ private slots:
|
||||||
|
|
||||||
void SaveSettings();
|
void SaveSettings();
|
||||||
void LoadSettings();
|
void LoadSettings();
|
||||||
|
void SetDefaultPHASettigns();
|
||||||
void RefreshSettings(); // this read digitizer and ShowSettingToPanel
|
void RefreshSettings(); // this read digitizer and ShowSettingToPanel
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -70,9 +71,16 @@ private:
|
||||||
QTabWidget * otherTab;
|
QTabWidget * otherTab;
|
||||||
QTabWidget * triggerTab;
|
QTabWidget * triggerTab;
|
||||||
QTabWidget * triggerMapTab;
|
QTabWidget * triggerMapTab;
|
||||||
|
QTabWidget * ICTab; // inquiry and copy
|
||||||
|
|
||||||
bool enableSignalSlot;
|
bool enableSignalSlot;
|
||||||
|
|
||||||
|
//---------------- Inquiry and copy
|
||||||
|
QLineEdit * leBdSettingsType;
|
||||||
|
QLineEdit * leBdSettingsRead;
|
||||||
|
RComboBox * cbBdAns;
|
||||||
|
RSpinBox * sbBdSettingsWrite;
|
||||||
|
|
||||||
//------------ status
|
//------------ status
|
||||||
QLineEdit * leInfo[MaxNumberOfChannel][12];
|
QLineEdit * leInfo[MaxNumberOfChannel][12];
|
||||||
QPushButton * LEDStatus[MaxNumberOfDigitizer][19];
|
QPushButton * LEDStatus[MaxNumberOfDigitizer][19];
|
||||||
|
|
|
@ -330,8 +330,8 @@ void MainWindow::StartACQ(){
|
||||||
//============================= start digitizer
|
//============================= start digitizer
|
||||||
for( int i =0 ; i < nDigi; i ++){
|
for( int i =0 ; i < nDigi; i ++){
|
||||||
if( digi[i]->IsDummy () ) continue;
|
if( digi[i]->IsDummy () ) continue;
|
||||||
digi[i]->Reset();
|
//digi[i]->Reset();
|
||||||
digi[i]->ProgramPHA(false);
|
//digi[i]->ProgramPHA(false);
|
||||||
digi[i]->SetPHADataFormat(1);// only save 1 trace
|
digi[i]->SetPHADataFormat(1);// only save 1 trace
|
||||||
|
|
||||||
digi[i]->WriteValue("/ch/0..63/par/WaveAnalogProbe0", "ADCInput");
|
digi[i]->WriteValue("/ch/0..63/par/WaveAnalogProbe0", "ADCInput");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user