From 5bfd9c68c6019fd9199cdff40c8a3fe228a1c6b0 Mon Sep 17 00:00:00 2001 From: chrin Date: Mon, 28 Apr 2025 15:03:07 +0200 Subject: [PATCH] Added related display --- src/analysis.py | 13 +++++++++++++ src/gui.py | 28 ++++++++++++++++++++++++---- tina.py | 31 +++++++++++++++++++------------ tina.sh | 2 +- 4 files changed, 57 insertions(+), 17 deletions(-) diff --git a/src/analysis.py b/src/analysis.py index 52734da..06a6e7b 100644 --- a/src/analysis.py +++ b/src/analysis.py @@ -171,6 +171,7 @@ class AnalysisProcedure(QObject): try: self.accelerator = self.input_data['accelerator'] + self.harmonic_no = float( self.input_data[self.accelerator]['harmonic']) self.dt_cable = float( @@ -181,6 +182,7 @@ class AnalysisProcedure(QObject): # self.input_data[self.accelerator_peak_search][ # 'minimumCurrent']) + print (f'Accelerator: {self.accelerator}', flush=True) if self.injector_2 in self.accelerator: self.mod_freq = float( self.input_data[self.accelerator]['freqmod']) # * 10**9 GHz @@ -322,6 +324,17 @@ class AnalysisProcedure(QObject): self.all_data['Processed data'] = self.process(from_hdf5=True) self.all_data['Figure data'] = self.make_figs() + + ''' + if self.all_data['Processed data']: + self.all_data['Figure data'] = self.make_figs() + print("MAKE FIGURES", flush = True) + else: + self.all_data['Figure data'] = {} + print("MAKE NO FIGURES", flush = True) + return + ''' + self.trigger_progressbar.emit(PROGRESS_THREAD_END) return self.all_data diff --git a/src/gui.py b/src/gui.py index c30a4da..a254423 100644 --- a/src/gui.py +++ b/src/gui.py @@ -1,13 +1,15 @@ '''Main panel gui interface ''' import os +import subprocess + from qtpy.QtGui import QColor from qtpy.QtCore import __version__ as QT_VERSION_STR from qtpy.QtCore import Qt from qtpy.QtWidgets import ( - QGridLayout, QGroupBox, QLabel, QStackedWidget, QTabBar, QTabWidget, - QWidget) + QGridLayout, QGroupBox, QLabel, QPushButton, QStackedWidget, QTabBar, + QTabWidget, QWidget) from caqtwidgets.pvwidgets import CAQLabel @@ -45,8 +47,9 @@ class AppGui(QWidget): self.gui_frame.measurement_tab_wgt.setFixedHeight(480) self.gui_frame.operator_wgt.setFixedHeight(640) # self.gui_frame.expert_wgt.setFixedHeight(240) - - + self.gui_frame.expert_wgt.layout().addWidget( + self.low_level_display(), 2, 0, 1, 1) + self.gui_frame.expert_wgt.layout().setVerticalSpacing(30) self.gui_frame.measurement_tab_wgt.setCurrentIndex(1) self.gui_frame.measurement_tab_wgt.setTabText(0, 'Accelerator') @@ -240,3 +243,20 @@ class AppGui(QWidget): qw.setLayout(grid) return qw + + def low_level_display(self): + + #command = "caqtdm -macro 'DEVICE=ZWSGA-CECL-TCRING' Z_DI_TURN_COUNT.ui" + + def low_level_macro(): + subprocess.run(["caqtdm", "-macro", "DEVICE=ZWSGA-CECL-TCRING", + "Z_DI_TURN_COUNT.ui"]) + + qpb = QPushButton(" Low-level Display ") + #qpb.setStyleSheet("background-color: #B79D5C;") # QColor(183, 157, 92);") + qpb.setObjectName("related") + qpb.setToolTip("Execute caqtdm Turn Counter Display") + qpb.clicked.connect(lambda: low_level_macro()) + qpb.setFixedHeight(40) + qpb.setFixedWidth(180) + return qpb diff --git a/tina.py b/tina.py index 5b474a2..1a1585a 100644 --- a/tina.py +++ b/tina.py @@ -240,18 +240,8 @@ class StartMain(BaseWindow): '''If analysis completed successfuly, prepare results message. ''' BaseWindow.analysis_thread_finished(self) - if self.all_data is not None: - try: - try: - if self.all_data['Figure data'] is not None: - self.gui_frame.central_tab_widget.setCurrentIndex(1) - except AttributeError: - print('No analysis performed') - return - except KeyError: - print('No analysis performed') - return - else: + + def delete_previous_figures(): print('Thread finished with no data') ncanvas = len(self.settings.data['GUI']['subResultsTabTitle']) dict_fig = {} @@ -268,6 +258,23 @@ class StartMain(BaseWindow): pass print('Thread finished with no data', flush=True) return + + if self.all_data is not None: + try: + try: + if self.all_data['Figure data'] is not None: + self.gui_frame.central_tab_widget.setCurrentIndex(1) + else: + delete_previous_figures() + except AttributeError: + print('No analysis performed') + return + except KeyError: + print('No analysis performed') + return + else: + delete_previous_figures() + return self.prepare_results_message() self.show_log_message(MsgSeverity.INFO, _pymodule, utils.line_no(), diff --git a/tina.sh b/tina.sh index b87bc50..b5f045d 100755 --- a/tina.sh +++ b/tina.sh @@ -1,5 +1,5 @@ #!/bin/bash -cd /hipa/bd/applications/tina/1.0.0 +cd /hipa/bd/applications/tina/1.1.0 # For use if script is sourced rather than executed appNameDefault="tina.sh"