solved the slow down problem by repaint the main window
This commit is contained in:
parent
3c8229fbfb
commit
dfe4c4738b
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
|
@ -160,6 +160,7 @@
|
||||||
"fstream": "cpp",
|
"fstream": "cpp",
|
||||||
"Analyzer.C": "cpp",
|
"Analyzer.C": "cpp",
|
||||||
"process_Run.C": "cpp",
|
"process_Run.C": "cpp",
|
||||||
"EncoreAnalyzer.C": "cpp"
|
"EncoreAnalyzer.C": "cpp",
|
||||||
|
"qfiledialog": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -5,6 +5,7 @@
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#include <QWaitCondition>
|
#include <QWaitCondition>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
#include <QCoreApplication>
|
||||||
|
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
#include "ClassDigitizer.h"
|
#include "ClassDigitizer.h"
|
||||||
|
@ -81,6 +82,7 @@ public:
|
||||||
digi->ReadACQStatus();
|
digi->ReadACQStatus();
|
||||||
digiMTX[ID].unlock();
|
digiMTX[ID].unlock();
|
||||||
t2 = t1;
|
t2 = t1;
|
||||||
|
// QCoreApplication::processEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
// if( isSaveData && !stop ) {
|
// if( isSaveData && !stop ) {
|
||||||
|
|
|
@ -97,8 +97,17 @@ DigiSettingsPanel::DigiSettingsPanel(Digitizer ** digi, unsigned int nDigi, QStr
|
||||||
SetUpInfo("Ch. Mem. Size ", memStr.toStdString() , infoLayout[ID], 3, 2);
|
SetUpInfo("Ch. Mem. Size ", memStr.toStdString() , infoLayout[ID], 3, 2);
|
||||||
|
|
||||||
uint32_t boardInfo = digi[ID]->GetSettingFromMemory(DPP::BoardInfo_R);
|
uint32_t boardInfo = digi[ID]->GetSettingFromMemory(DPP::BoardInfo_R);
|
||||||
printf("----------- boardInfo : 0x%08X \n", boardInfo);
|
// printf("----------- boardInfo : 0x%08X \n", boardInfo);
|
||||||
SetUpInfo("Board Type ", ((boardInfo >> 16) & 0xFF) == 0x10 ? "16-ch VME" : "8-ch Bd.", infoLayout[ID], 3, 4);
|
std::string boardInfoStr;
|
||||||
|
unsigned short boardTypeNumber = (boardInfo & 0xFF);
|
||||||
|
switch (boardTypeNumber){
|
||||||
|
case 0x04 : boardInfoStr = "64-ch VME"; break;
|
||||||
|
case 0x0E : boardInfoStr = ((boardInfo >> 16) & 0xFF) == 0x10 ? "16-ch VME" : "8-ch Bd."; break;
|
||||||
|
case 0x0B : boardInfoStr = ((boardInfo >> 16) & 0xFF) == 0x10 ? "16-ch VME" : "8-ch Bd."; break;
|
||||||
|
default : boardInfoStr = "unknown";
|
||||||
|
}
|
||||||
|
|
||||||
|
SetUpInfo("Board Type ", boardInfoStr, infoLayout[ID], 3, 4);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
30
FSUDAQ.cpp
30
FSUDAQ.cpp
|
@ -41,6 +41,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){
|
||||||
runRecord = nullptr;
|
runRecord = nullptr;
|
||||||
model = nullptr;
|
model = nullptr;
|
||||||
influx = nullptr;
|
influx = nullptr;
|
||||||
|
scalarCount = 0;
|
||||||
|
|
||||||
QWidget * mainLayoutWidget = new QWidget(this);
|
QWidget * mainLayoutWidget = new QWidget(this);
|
||||||
setCentralWidget(mainLayoutWidget);
|
setCentralWidget(mainLayoutWidget);
|
||||||
|
@ -896,7 +897,8 @@ void MainWindow::SetupScalar(){
|
||||||
lbFileSize[iDigi]->setAlignment(Qt::AlignLeft | Qt::AlignCenter);
|
lbFileSize[iDigi]->setAlignment(Qt::AlignLeft | Qt::AlignCenter);
|
||||||
hBoxLayout->addWidget(lbFileSize[iDigi]);
|
hBoxLayout->addWidget(lbFileSize[iDigi]);
|
||||||
|
|
||||||
QLabel * lbDigi = new QLabel("Digi-" + QString::number(digi[iDigi]->GetSerialNumber()), scalar);
|
// QLabel * lbDigi = new QLabel("Digi-" + QString::number(digi[iDigi]->GetSerialNumber()), scalar);
|
||||||
|
QLabel * lbDigi = new QLabel(QString::number(digi[iDigi]->GetSerialNumber()), scalar);
|
||||||
lbDigi->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
lbDigi->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||||
hBoxLayout->addWidget(lbDigi);
|
hBoxLayout->addWidget(lbDigi);
|
||||||
|
|
||||||
|
@ -986,6 +988,7 @@ void MainWindow::UpdateScalar(){
|
||||||
// digi[0]->GetData()->PrintAllData();
|
// digi[0]->GetData()->PrintAllData();
|
||||||
|
|
||||||
lbLastUpdateTime->setText("Last update: " + QDateTime::currentDateTime().toString("MM.dd hh:mm:ss"));
|
lbLastUpdateTime->setText("Last update: " + QDateTime::currentDateTime().toString("MM.dd hh:mm:ss"));
|
||||||
|
scalarCount ++;
|
||||||
|
|
||||||
uint64_t totalFileSize = 0;
|
uint64_t totalFileSize = 0;
|
||||||
for( unsigned int iDigi = 0; iDigi < nDigi; iDigi++){
|
for( unsigned int iDigi = 0; iDigi < nDigi; iDigi++){
|
||||||
|
@ -994,9 +997,9 @@ void MainWindow::UpdateScalar(){
|
||||||
uint32_t acqStatus = digi[iDigi]->GetACQStatusFromMemory();
|
uint32_t acqStatus = digi[iDigi]->GetACQStatusFromMemory();
|
||||||
//printf("Digi-%d : acq on/off ? : %d \n", digi[iDigi]->GetSerialNumber(), (acqStatus >> 2) & 0x1 );
|
//printf("Digi-%d : acq on/off ? : %d \n", digi[iDigi]->GetSerialNumber(), (acqStatus >> 2) & 0x1 );
|
||||||
if( ( acqStatus >> 2 ) & 0x1 ){
|
if( ( acqStatus >> 2 ) & 0x1 ){
|
||||||
runStatus[iDigi]->setStyleSheet("background-color : green;");
|
if( runStatus[iDigi]->styleSheet() == "") runStatus[iDigi]->setStyleSheet("background-color : green;");
|
||||||
}else{
|
}else{
|
||||||
runStatus[iDigi]->setStyleSheet("");
|
if( runStatus[iDigi]->styleSheet() != "") runStatus[iDigi]->setStyleSheet("");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(digiSettings && digiSettings->isVisible() && digiSettings->GetTabID() == iDigi) digiSettings->UpdateACQStatus(acqStatus);
|
if(digiSettings && digiSettings->isVisible() && digiSettings->GetTabID() == iDigi) digiSettings->UpdateACQStatus(acqStatus);
|
||||||
|
@ -1023,16 +1026,20 @@ void MainWindow::UpdateScalar(){
|
||||||
leAccept[iDigi][i]->setText(b);
|
leAccept[iDigi][i]->setText(b);
|
||||||
|
|
||||||
if( influx && a != "inf" ){
|
if( influx && a != "inf" ){
|
||||||
influx->AddDataPoint("Rate,Bd="+std::to_string(digi[iDigi]->GetSerialNumber()) + ",Ch=" + QString::number(i).rightJustified(2, '0').toStdString() + " value=" + a.toStdString());
|
influx->AddDataPoint("TrigRate,Bd="+std::to_string(digi[iDigi]->GetSerialNumber()) + ",Ch=" + QString::number(i).rightJustified(2, '0').toStdString() + " value=" + a.toStdString());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
digiMTX[iDigi].unlock();
|
digiMTX[iDigi].unlock();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( influx ){
|
repaint();
|
||||||
|
scalar->repaint();
|
||||||
|
|
||||||
|
if( influx && scalarCount >= 3){
|
||||||
if( chkSaveData->isChecked() ) {
|
if( chkSaveData->isChecked() ) {
|
||||||
influx->AddDataPoint("RunID value=" + std::to_string(runID));
|
influx->AddDataPoint("RunID value=" + std::to_string(runID));
|
||||||
influx->AddDataPoint("FileSize value=" + std::to_string(totalFileSize));
|
influx->AddDataPoint("FileSize value=" + std::to_string(totalFileSize));
|
||||||
|
@ -1040,6 +1047,7 @@ void MainWindow::UpdateScalar(){
|
||||||
//nflux->PrintDataPoints();
|
//nflux->PrintDataPoints();
|
||||||
influx->WriteData(dataBaseName.toStdString());
|
influx->WriteData(dataBaseName.toStdString());
|
||||||
influx->ClearDataPointsBuffer();
|
influx->ClearDataPointsBuffer();
|
||||||
|
scalarCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1228,6 +1236,9 @@ void MainWindow::StopACQ(){
|
||||||
chkSaveData->setEnabled(true);
|
chkSaveData->setEnabled(true);
|
||||||
bnDigiSettings->setEnabled(true);
|
bnDigiSettings->setEnabled(true);
|
||||||
|
|
||||||
|
repaint();
|
||||||
|
printf("================ end of %s \n", __func__);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::AutoRun(){
|
void MainWindow::AutoRun(){
|
||||||
|
@ -1638,7 +1649,8 @@ void MainWindow::WriteRunTimestamp(bool isStartRun){
|
||||||
//***************************************************************
|
//***************************************************************
|
||||||
//***************************************************************
|
//***************************************************************
|
||||||
void MainWindow::OpenScope(){
|
void MainWindow::OpenScope(){
|
||||||
|
DebugPrint("%s", "FSUDAQ");
|
||||||
|
QCoreApplication::processEvents();
|
||||||
if( scope == nullptr ) {
|
if( scope == nullptr ) {
|
||||||
scope = new Scope(digi, nDigi, readDataThread);
|
scope = new Scope(digi, nDigi, readDataThread);
|
||||||
connect(scope, &Scope::SendLogMsg, this, &MainWindow::LogMsg);
|
connect(scope, &Scope::SendLogMsg, this, &MainWindow::LogMsg);
|
||||||
|
@ -1711,7 +1723,6 @@ void MainWindow::OpenDigiSettings(){
|
||||||
digiSettings->show();
|
digiSettings->show();
|
||||||
digiSettings->activateWindow();
|
digiSettings->activateWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//***************************************************************
|
//***************************************************************
|
||||||
|
@ -1731,6 +1742,7 @@ void MainWindow::OpenCanvas(){
|
||||||
//***************************************************************
|
//***************************************************************
|
||||||
void MainWindow::OpenAnalyzer(){
|
void MainWindow::OpenAnalyzer(){
|
||||||
DebugPrint("%s", "FSUDAQ");
|
DebugPrint("%s", "FSUDAQ");
|
||||||
|
|
||||||
int id = cbAnalyzer->currentData().toInt();
|
int id = cbAnalyzer->currentData().toInt();
|
||||||
|
|
||||||
if( id < 0 ) return;
|
if( id < 0 ) return;
|
||||||
|
@ -1890,6 +1902,8 @@ void MainWindow::SetUpInflux(){
|
||||||
|
|
||||||
void MainWindow::CheckElog(){
|
void MainWindow::CheckElog(){
|
||||||
DebugPrint("%s", "FSUDAQ");
|
DebugPrint("%s", "FSUDAQ");
|
||||||
|
LogMsg("---- Checking elog... please wait....");
|
||||||
|
printf("---- Checking elog... please wait....\n");
|
||||||
if( elogIP != "" && elogName != "" && elogUser != "" && elogPWD != "" ){
|
if( elogIP != "" && elogName != "" && elogUser != "" && elogPWD != "" ){
|
||||||
WriteElog("Testing communication.", "Testing communication.", "Other", 0);
|
WriteElog("Testing communication.", "Testing communication.", "Other", 0);
|
||||||
AppendElog("test append elog.");
|
AppendElog("test append elog.");
|
||||||
|
@ -1902,11 +1916,13 @@ void MainWindow::CheckElog(){
|
||||||
|
|
||||||
if( elogID >= 0 ) {
|
if( elogID >= 0 ) {
|
||||||
LogMsg("Elog testing OK.");
|
LogMsg("Elog testing OK.");
|
||||||
|
printf("Elog testing OK.\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//QMessageBox::information(nullptr, "Information", "Elog write Fail.\nPlease set the elog User and PWD in the programSettings.txt.\nline 6 = user.\nline 7 = pwd.");
|
//QMessageBox::information(nullptr, "Information", "Elog write Fail.\nPlease set the elog User and PWD in the programSettings.txt.\nline 6 = user.\nline 7 = pwd.");
|
||||||
LogMsg("Elog testing Fail");
|
LogMsg("Elog testing Fail");
|
||||||
|
printf("Elog testing Fail\n");
|
||||||
if( elogIP == "" ) LogMsg("no elog IP");
|
if( elogIP == "" ) LogMsg("no elog IP");
|
||||||
if( elogName == "" ) LogMsg("no elog Name");
|
if( elogName == "" ) LogMsg("no elog Name");
|
||||||
if( elogUser == "" ) LogMsg("no elog User name. Please set it in the programSettings.txt, line 6.");
|
if( elogUser == "" ) LogMsg("no elog User name. Please set it in the programSettings.txt, line 6.");
|
||||||
|
|
1
FSUDAQ.h
1
FSUDAQ.h
|
@ -135,6 +135,7 @@ private:
|
||||||
QLineEdit * leDatabaseName;
|
QLineEdit * leDatabaseName;
|
||||||
QPushButton * bnLock;
|
QPushButton * bnLock;
|
||||||
QString influxToken;
|
QString influxToken;
|
||||||
|
short scalarCount;
|
||||||
|
|
||||||
//@----- Elog
|
//@----- Elog
|
||||||
QString elogIP;
|
QString elogIP;
|
||||||
|
|
|
@ -204,8 +204,6 @@ void SingleSpectra::FillHistograms(){
|
||||||
// DebugPrint("%s", "SingleSpectra");
|
// DebugPrint("%s", "SingleSpectra");
|
||||||
if( !fillHistograms ) return;
|
if( !fillHistograms ) return;
|
||||||
|
|
||||||
printf("=====================%s\n", __func__);
|
|
||||||
|
|
||||||
timespec t0, t1;
|
timespec t0, t1;
|
||||||
|
|
||||||
QVector<int> randomDigiList = generateNonRepeatedCombination(nDigi);
|
QVector<int> randomDigiList = generateNonRepeatedCombination(nDigi);
|
||||||
|
|
4
main.cpp
4
main.cpp
|
@ -9,6 +9,8 @@
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include <sys/resource.h>
|
||||||
|
|
||||||
// class CustomApplication : public QApplication{
|
// class CustomApplication : public QApplication{
|
||||||
// public:
|
// public:
|
||||||
// CustomApplication(int &argc, char **argv) : QApplication(argc, argv) {}
|
// CustomApplication(int &argc, char **argv) : QApplication(argc, argv) {}
|
||||||
|
@ -25,6 +27,8 @@ int main(int argc, char *argv[]){
|
||||||
// CustomApplication a(argc, argv);
|
// CustomApplication a(argc, argv);
|
||||||
QApplication a(argc, argv);
|
QApplication a(argc, argv);
|
||||||
|
|
||||||
|
setpriority(PRIO_PROCESS, 0, -20);
|
||||||
|
|
||||||
bool isLock = false;
|
bool isLock = false;
|
||||||
int pid = 0;
|
int pid = 0;
|
||||||
QFile lockFile(DAQLockFile);
|
QFile lockFile(DAQLockFile);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user