diff --git a/base.py b/base.py index 13f59cf..59e053e 100644 --- a/base.py +++ b/base.py @@ -565,7 +565,13 @@ class BaseWindow(QMainWindow): from pyqtacc.sls.sendelogsls import QSendToELOG elif self.facility == Facility.HIPA: from pyqtacc.hipa.guiheader import GUIHeader - from pyqtacc.hipa.sendeloghipa import QSendToELOG + from pyqtacc.hipa.sendeloghipa import QSendToELOG + elif self.facility == Facility.PROSCAN: + from pyqtacc.proscan.guiheader import GUIHeader + from pyqtacc.proscan.sendelogproscan import QSendToELOG + elif self.facility == Facility.ESS: + from pyqtacc.ess.guiheader import GUIHeader + from pyqtacc.ess.sendelogess import QSendToELOG self.gui_header = GUIHeader(self, user_mode=self.user_mode, extended=extended) @@ -1999,6 +2005,12 @@ class BaseWindow(QMainWindow): elif facility == Facility.HIPA: from pyqtacc.qrc_resources.facility.hipa.pyrcc5 import qrc_resources print("FACILITY HIPA") + elif facility == Facility.PROSCAN: + from pyqtacc.qrc_resources.facility.proscan.pyrcc5 import qrc_resources + print("FACILITY PROSCAN") + elif facility == Facility.ESS: + from pyqtacc.qrc_resources.facility.ess.pyrcc5 import qrc_resources + print("FACILITY ESS") else: print("Unknown Facility; assuming SLS") from pyqtacc.qrc_resources.facility.sls.pyrcc5 import qrc_resources @@ -2139,10 +2151,21 @@ class BaseWindow(QMainWindow): operation: str = "channel access", pv_list: list = None, status_list: list = None, line: int = _line()): - - if None in (pv_list, status_list): + + if pv_list is None: return + check_stat = False + if status_list is None: + check_stat = True + elif None in status_list: + check_stat = True + if check_stat: + for i, (pv, stat) in enumerate(zip(pv_list, status_list)): + if stat is None: + status_list[i] = self.cafe.getStatus(pv) + + brk = ("------------------------------------------------------" + "------------------------------------------------------") self.trigger_log_message.emit( @@ -2170,14 +2193,18 @@ class BaseWindow(QMainWindow): self.trigger_log_message.emit( MsgSeverity.INFO.name, pymodule, line, mess, {}) + return status_list + def check_status(self, pymodule: str = _pymodule, operation: str = "channel access", pv: str = None, stat: int = None, line: int =_line()): - if None in (pv, status): + if not pv: return + if stat == None: + stat = self.cafe.getStatus(pv) if stat != self.cyca.ICAFE_NORMAL: mess = "Error in '{0}' for {1}.".format(operation, pv) @@ -2188,3 +2215,5 @@ class BaseWindow(QMainWindow): options['statusInfo'] = self.cafe.getStatusInfo(stat) self.trigger_log_message.emit( MsgSeverity.WARN.name, pymodule, line, mess, options) + + return stat diff --git a/enumkind.py b/enumkind.py index 6c97f04..dbc33d8 100644 --- a/enumkind.py +++ b/enumkind.py @@ -19,6 +19,8 @@ class Facility(IntEnum): SwissFEL = 1 SLS = 2 HIPA = 3 + PROSCAN = 4 + ESS = 5 class MsgSeverity(IntEnum): """ For use with message logger diff --git a/guiframe.py b/guiframe.py index 46be120..9d3dd83 100644 --- a/guiframe.py +++ b/guiframe.py @@ -127,13 +127,22 @@ class GUIFrame(QWidget): self.expert_wgt = QWidget(self.measurement_tab_wgt) self.results_wgt = QWidget() - self.results_layout = QHBoxLayout(self.results_wgt) - self.results_tab_wgt = QTabWidget(self.results_wgt) + if "GUI" in self.settings.data: + self.results_layout = QHBoxLayout(self.results_wgt) + self.results_tab_wgt = QTabWidget(self.results_wgt) + else: + self.results_layout = QGridLayout() + self.results_tab_wgt = QTabWidget() self.results_wgt_2 = QWidget() - self.results_layout_2 = QHBoxLayout(self.results_wgt_2) - self.results_tab_wgt_2 = QTabWidget(self.results_wgt_2) - + + if "GUI2" in self.settings.data: + self.results_layout_2 = QHBoxLayout(self.results_wgt_2) + self.results_tab_wgt_2 = QTabWidget(self.results_wgt_2) + else: + self.results_layout_2 = QGridLayout() + self.results_tab_wgt_2 = QTabWidget() + self.slicing_group = QGroupBox("Screen: Slicing") self.good_region_group = QGroupBox("Good Region") @@ -403,6 +412,9 @@ class GUIFrame(QWidget): if "GUI" in self.settings.data: self.central_tab_widget.addTab( self.results_wgt, self.settings.data["GUI"]["resultsTabTitle"]) + elif "IOC" in self.settings.data: + self.central_tab_widget.addTab( + self.results_wgt, self.settings.data["IOC"]["resultsTabTitle"]) self.central_tab_widget.addTab(self.log_wgt, "Log") def init_measurement_tab_wgt(self): @@ -416,7 +428,7 @@ class GUIFrame(QWidget): def init_results_tab_wgt(self): """ Add canvas tabs for plots/results """ - + self.results_tab_wgt.setFont(self.font_gui) for i, (wgt, subtitle) in enumerate(zip(self.sub_results_wgt, @@ -3099,3 +3111,5 @@ class GUIFrame(QWidget): self.table_tab_wgt.currentChanged.emit(0) return self.table_layout #tab_wgt + + diff --git a/setup_version b/setup_version new file mode 100644 index 0000000..b568217 --- /dev/null +++ b/setup_version @@ -0,0 +1,32 @@ +#to be executed from top directory +#create a directory with version number given below. +mkdir -p v1.7.0 +cd v1.7.0 +mkdir -p apps4ops +mkdir -p caqtwidgets +mkdir -p common +ln -s apps4ops pyqtacc +cd apps4ops +mkdir -p bdbase +mkdir -p qrc_resources +mkdir -p sf +mkdir -p sls +mkdir -p hipa +cd bdbase +git clone git@gitlab.psi.ch:pyqtacc/bdbase.git . +cd ../qrc_resources +git clone git@gitlab.psi.ch:pyqtacc/qrc_resources.git . +cd ../sf +git clone git@gitlab.psi.ch:pyqtacc/sf.git . +cd ../sls +git clone git@gitlab.psi.ch:pyqtacc/sls.git . +cd ../hipa +git clone git@gitlab.psi.ch:pyqtacc/hipa.git . +cd ../../ +mkdir -p common +cd common +git clone git@gitlab.psi.ch:pyqtacc/common.git . +cd ../ +cd caqtwidgets +git clone git@gitlab.psi.ch:cafe/caqtwidgets.git . +cd ../../ \ No newline at end of file