UpdateScalar also update digiSettings status, if exist and visible
This commit is contained in:
parent
b916295a4d
commit
1fc203818e
|
@ -152,6 +152,7 @@ namespace PHA{
|
||||||
const Reg TempSensADC7 ("TempSensADC7", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
const Reg TempSensADC7 ("TempSensADC7", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||||
|
|
||||||
const std::vector<Reg> TempSensADC = {TempSensADC0,TempSensADC1,TempSensADC2,TempSensADC3,TempSensADC4,TempSensADC5,TempSensADC6,TempSensADC7};
|
const std::vector<Reg> TempSensADC = {TempSensADC0,TempSensADC1,TempSensADC2,TempSensADC3,TempSensADC4,TempSensADC5,TempSensADC6,TempSensADC7};
|
||||||
|
const std::vector<Reg> TempSensOthers = {TempSensAirIn,TempSensAirOut,TempSensCore,TempSensFirstADC,TempSensLastADC,TempSensHottestADC};
|
||||||
|
|
||||||
const Reg TempSensDCDC ("TempSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
const Reg TempSensDCDC ("TempSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "C");
|
||||||
const Reg VInSensDCDC ("VInSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "V");
|
const Reg VInSensDCDC ("VInSensDCDC", RW::ReadOnly, TYPE::DIG, {}, ANSTYPE::INTEGER, "V");
|
||||||
|
|
|
@ -76,7 +76,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
enableSignalSlot = false;
|
enableSignalSlot = false;
|
||||||
|
|
||||||
QVBoxLayout * mainLayout = new QVBoxLayout(this); this->setLayout(mainLayout);
|
QVBoxLayout * mainLayout = new QVBoxLayout(this); this->setLayout(mainLayout);
|
||||||
QTabWidget * tabWidget = new QTabWidget(this); mainLayout->addWidget(tabWidget);
|
tabWidget = new QTabWidget(this); mainLayout->addWidget(tabWidget);
|
||||||
|
|
||||||
//@========================== Tab for each digitizer
|
//@========================== Tab for each digitizer
|
||||||
for(unsigned short iDigi = 0; iDigi < this->nDigi; iDigi++){
|
for(unsigned short iDigi = 0; iDigi < this->nDigi; iDigi++){
|
||||||
|
@ -91,8 +91,8 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
|
|
||||||
QHBoxLayout * tabLayout_H = new QHBoxLayout(tab); //tab->setLayout(tabLayout_H);
|
QHBoxLayout * tabLayout_H = new QHBoxLayout(tab); //tab->setLayout(tabLayout_H);
|
||||||
|
|
||||||
QVBoxLayout * tabLayout_V1 = new QVBoxLayout(); tabLayout_H->addLayout(tabLayout_V1);
|
QVBoxLayout * tabLayout_V1 = new QVBoxLayout(tab); tabLayout_H->addLayout(tabLayout_V1);
|
||||||
QVBoxLayout * tabLayout_V2 = new QVBoxLayout(); tabLayout_H->addLayout(tabLayout_V2);
|
QVBoxLayout * tabLayout_V2 = new QVBoxLayout(tab); tabLayout_H->addLayout(tabLayout_V2);
|
||||||
|
|
||||||
{//^====================== Group of Digitizer Info
|
{//^====================== Group of Digitizer Info
|
||||||
QGroupBox * infoBox = new QGroupBox("Board Info", tab);
|
QGroupBox * infoBox = new QGroupBox("Board Info", tab);
|
||||||
|
@ -163,6 +163,10 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
statusLayout->addWidget(leTemp[iDigi][i], 2, 1 + 2*i, 1, 2);
|
statusLayout->addWidget(leTemp[iDigi][i], 2, 1 + 2*i, 1, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QPushButton * bnUpdateStatus = new QPushButton("Update Status", this);
|
||||||
|
statusLayout->addWidget(bnUpdateStatus, 2, 19);
|
||||||
|
connect(bnUpdateStatus, &QPushButton::clicked, this, &DigiSettingsPanel::UpdateStatus);
|
||||||
|
|
||||||
for( int i = 0; i < statusLayout->columnCount(); i++) statusLayout->setColumnStretch(i, 0 );
|
for( int i = 0; i < statusLayout->columnCount(); i++) statusLayout->setColumnStretch(i, 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,6 +217,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
connect(bnClearData[iDigi], &QPushButton::clicked, this, [=](){
|
connect(bnClearData[iDigi], &QPushButton::clicked, this, [=](){
|
||||||
digi[ID]->SendCommand(PHA::DIG::ClearData);
|
digi[ID]->SendCommand(PHA::DIG::ClearData);
|
||||||
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::ClearData.GetFullPara()));
|
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::ClearData.GetFullPara()));
|
||||||
|
UpdateStatus();
|
||||||
});
|
});
|
||||||
|
|
||||||
bnArmACQ[iDigi] = new QPushButton("Arm ACQ", tab);
|
bnArmACQ[iDigi] = new QPushButton("Arm ACQ", tab);
|
||||||
|
@ -220,6 +225,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
connect(bnArmACQ[iDigi], &QPushButton::clicked, this, [=](){
|
connect(bnArmACQ[iDigi], &QPushButton::clicked, this, [=](){
|
||||||
digi[ID]->SendCommand(PHA::DIG::ArmACQ);
|
digi[ID]->SendCommand(PHA::DIG::ArmACQ);
|
||||||
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::ArmACQ.GetFullPara()));
|
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::ArmACQ.GetFullPara()));
|
||||||
|
UpdateStatus();
|
||||||
});
|
});
|
||||||
|
|
||||||
bnDisarmACQ[iDigi] = new QPushButton("Disarm ACQ", tab);
|
bnDisarmACQ[iDigi] = new QPushButton("Disarm ACQ", tab);
|
||||||
|
@ -227,6 +233,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
connect(bnDisarmACQ[iDigi], &QPushButton::clicked, this, [=](){
|
connect(bnDisarmACQ[iDigi], &QPushButton::clicked, this, [=](){
|
||||||
digi[ID]->SendCommand(PHA::DIG::DisarmACQ);
|
digi[ID]->SendCommand(PHA::DIG::DisarmACQ);
|
||||||
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::DisarmACQ.GetFullPara()));
|
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::DisarmACQ.GetFullPara()));
|
||||||
|
UpdateStatus();
|
||||||
});
|
});
|
||||||
|
|
||||||
bnSoftwareStart[iDigi] = new QPushButton("Software Start ACQ", tab);
|
bnSoftwareStart[iDigi] = new QPushButton("Software Start ACQ", tab);
|
||||||
|
@ -234,6 +241,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
connect(bnSoftwareStart[iDigi], &QPushButton::clicked, this, [=](){
|
connect(bnSoftwareStart[iDigi], &QPushButton::clicked, this, [=](){
|
||||||
digi[ID]->SendCommand(PHA::DIG::SoftwareStartACQ);
|
digi[ID]->SendCommand(PHA::DIG::SoftwareStartACQ);
|
||||||
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::SoftwareStartACQ.GetFullPara()));
|
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::SoftwareStartACQ.GetFullPara()));
|
||||||
|
UpdateStatus();
|
||||||
});
|
});
|
||||||
|
|
||||||
bnSoftwareStop[iDigi] = new QPushButton("Software Stop ACQ", tab);
|
bnSoftwareStop[iDigi] = new QPushButton("Software Stop ACQ", tab);
|
||||||
|
@ -241,6 +249,7 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi
|
||||||
connect(bnSoftwareStop[iDigi], &QPushButton::clicked, this, [=](){
|
connect(bnSoftwareStop[iDigi], &QPushButton::clicked, this, [=](){
|
||||||
digi[ID]->SendCommand(PHA::DIG::SoftwareStopACQ);
|
digi[ID]->SendCommand(PHA::DIG::SoftwareStopACQ);
|
||||||
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::SoftwareStopACQ.GetFullPara()));
|
SendLogMsg("Digi-" + QString::number(digi[ID]->GetSerialNumber()) + "|Send Command : " + QString::fromStdString(PHA::DIG::SoftwareStopACQ.GetFullPara()));
|
||||||
|
UpdateStatus();
|
||||||
});
|
});
|
||||||
|
|
||||||
//---------------
|
//---------------
|
||||||
|
@ -1585,6 +1594,24 @@ void DigiSettingsPanel::RefreshSettings(){
|
||||||
UpdatePanelFromMemory();
|
UpdatePanelFromMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DigiSettingsPanel::UpdateStatus(){
|
||||||
|
|
||||||
|
if( tabWidget->currentIndex() >= nDigi) return;
|
||||||
|
|
||||||
|
digi[ID]->ReadValue(PHA::DIG::LED_status);
|
||||||
|
digi[ID]->ReadValue(PHA::DIG::ACQ_status);
|
||||||
|
|
||||||
|
for( int i = 0; i < (int) PHA::DIG::TempSensADC.size(); i++){
|
||||||
|
digi[ID]->ReadValue(PHA::DIG::TempSensADC[i]);
|
||||||
|
}
|
||||||
|
for( int i = 0; i < (int) PHA::DIG::TempSensOthers.size(); i++){
|
||||||
|
digi[ID]->ReadValue(PHA::DIG::TempSensOthers[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdatePanelFromMemory(true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void DigiSettingsPanel::EnableControl(){
|
void DigiSettingsPanel::EnableControl(){
|
||||||
|
|
||||||
UpdatePanelFromMemory();
|
UpdatePanelFromMemory();
|
||||||
|
@ -1703,17 +1730,17 @@ void DigiSettingsPanel::SetDefaultPHASettigns(){
|
||||||
RefreshSettings();
|
RefreshSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DigiSettingsPanel::UpdatePanelFromMemory(){
|
void DigiSettingsPanel::UpdatePanelFromMemory(bool onlyStatus){
|
||||||
|
|
||||||
if( !isVisible() ) return;
|
if( !isVisible() ) return;
|
||||||
|
|
||||||
enableSignalSlot = false;
|
enableSignalSlot = false;
|
||||||
|
|
||||||
printf("DigiSettingsPanel::%s Digi-%d\n", __func__, digi[ID]->GetSerialNumber());
|
if( onlyStatus){
|
||||||
|
printf("DigiSettingsPanel::%s Digi-%d [Only Board Status]\n", __func__, digi[ID]->GetSerialNumber());
|
||||||
for (unsigned short j = 0; j < (unsigned short) infoIndex.size(); j++){
|
}else{
|
||||||
leInfo[ID][j]->setText(QString::fromStdString(digi[ID]->GetSettingValue(infoIndex[j].second)));
|
printf("DigiSettingsPanel::%s Digi-%d\n", __func__, digi[ID]->GetSerialNumber());
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------- LED Status
|
//--------- LED Status
|
||||||
unsigned int ledStatus = atoi(digi[ID]->GetSettingValue(PHA::DIG::LED_status).c_str());
|
unsigned int ledStatus = atoi(digi[ID]->GetSettingValue(PHA::DIG::LED_status).c_str());
|
||||||
|
@ -1739,6 +1766,15 @@ void DigiSettingsPanel::UpdatePanelFromMemory(){
|
||||||
for( int i = 0; i < 8; i++){
|
for( int i = 0; i < 8; i++){
|
||||||
leTemp[ID][i]->setText(QString::fromStdString(digi[ID]->GetSettingValue(PHA::DIG::TempSensADC[i])));
|
leTemp[ID][i]->setText(QString::fromStdString(digi[ID]->GetSettingValue(PHA::DIG::TempSensADC[i])));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( onlyStatus ) {
|
||||||
|
enableSignalSlot = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (unsigned short j = 0; j < (unsigned short) infoIndex.size(); j++){
|
||||||
|
leInfo[ID][j]->setText(QString::fromStdString(digi[ID]->GetSettingValue(infoIndex[j].second)));
|
||||||
|
}
|
||||||
|
|
||||||
//-------- board settings
|
//-------- board settings
|
||||||
FillComboBoxValueFromMemory(cbbClockSource[ID], PHA::DIG::ClockSource);
|
FillComboBoxValueFromMemory(cbbClockSource[ID], PHA::DIG::ClockSource);
|
||||||
|
|
|
@ -41,7 +41,8 @@ private slots:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void EnableControl();
|
void EnableControl();
|
||||||
void UpdatePanelFromMemory();
|
void UpdatePanelFromMemory(bool onlyStatus = false);
|
||||||
|
void UpdateStatus();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
|
@ -56,6 +57,8 @@ private:
|
||||||
|
|
||||||
QString digiSettingPath;
|
QString digiSettingPath;
|
||||||
|
|
||||||
|
QTabWidget * tabWidget;
|
||||||
|
|
||||||
//------------ Layout/GroupBox
|
//------------ Layout/GroupBox
|
||||||
QGroupBox * digiBox[MaxNumberOfDigitizer];
|
QGroupBox * digiBox[MaxNumberOfDigitizer];
|
||||||
QGroupBox * VGABox[MaxNumberOfDigitizer];
|
QGroupBox * VGABox[MaxNumberOfDigitizer];
|
||||||
|
|
|
@ -1153,6 +1153,9 @@ void MainWindow::UpdateScalar(){
|
||||||
influx->ClearDataPointsBuffer();
|
influx->ClearDataPointsBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO record ADC temperature, and status. In this case, the digiSetting is only UpdateFromMemory, manually looping digitizers and get the status.
|
||||||
|
if( digiSetting && digiSetting->isVisible() ) digiSetting->UpdateStatus();
|
||||||
|
|
||||||
if( solarisSetting && solarisSetting->isVisible() ) solarisSetting->UpdateThreshold();
|
if( solarisSetting && solarisSetting->isVisible() ) solarisSetting->UpdateThreshold();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1877,6 +1880,7 @@ void MainWindow::CreateNewExperiment(const QString newExpName){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO is there anyway to create a new elog ?? direct edit the config.cfg??
|
||||||
//CheckElog();
|
//CheckElog();
|
||||||
logMsgHTMLMode = true;
|
logMsgHTMLMode = true;
|
||||||
LogMsg("<font style=\"color red;\"> !!!! Please Create a new Elog with name <b>" + newExpName + "</b>. </font>");
|
LogMsg("<font style=\"color red;\"> !!!! Please Create a new Elog with name <b>" + newExpName + "</b>. </font>");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user