From 9ff332fc671f22dc19d09909044ca27b1dac8597 Mon Sep 17 00:00:00 2001 From: chrin Date: Tue, 28 Jun 2022 10:47:54 +0200 Subject: [PATCH] new commit --- .gitignore | 4 + __pycache__/guiheader.cpython-37.pyc | Bin 11555 -> 11044 bytes guiheader.py | 207 +++++++++++---------------- 3 files changed, 85 insertions(+), 126 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d3d7e83 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.*~ +*.*-* +*.*+* +__pycache__ diff --git a/__pycache__/guiheader.cpython-37.pyc b/__pycache__/guiheader.cpython-37.pyc index 9c00d2a19c911e63bfaec4bc42ed26210e123e6b..340d23b0a4ffc0735c6418f78afbd3e1e0ccd76f 100644 GIT binary patch delta 4355 zcma)9X>1$E72a8Lm&@g0Qj{oB)@jL-R#qfmu^nGAZTU)L*-~UnW}Gk-cO{YLrQu4J zoTZ6I>4BhV?M!+lO+cbafuJec)NO&HKY|7=&>!u;6ipWenx^d!6$O$%?T`Fu`reSC z93?$S?6+^;ynQq8ntl82*vnV^Cw)FufZy+>$lNcF-to7QFWnjJ8gOPDS!c|dm0}VR zbfQZcIqQnKI4x(CtUKn;s$-ZI(7zF(1oqr)GQ0Jl*<-oZ$+}2{89|4C$#u&$D_j+F;;e9+ zEVa)FtNoUcmeZ|zQ$(orRt3-)C@Gdy>9mw8A;N8O$vGpK-R6!;UsYHK4#=yO{;E)? zc3M)ElA$~={;?*oswH`Evake(Yh6F5!f;PwH_&{xv;snvQKZ-~#YK$JxJM}KS zs!s6LVeW||V8D^eQ9xJvSY7f+$ec3^OWqI^oJ^}GK zDDa6Rm8j+6kD#+pny2_uu;27}`gG+C+|SmPk5|s=JGf*QNS@b)M+B{pZMc3%-e*5o zLb3>Xx8Y^KRc6$OY^k_hFenY)J>Z@r9!Jrnw!D(aEF0`aH9_3$L-lo{u-84Wg}k=2 zXk_N;Fg#925q7hJx9>AzVI}5Tqj5boKOgfJ7xOpbg*-JE^F=xWQW~+{@pv+mC>G=K zSA`GujV0!bV})XBG`Todp!u|sG{*{SOJ*XOWPkTYBn=)4GSxSGX+R8tbb>e&!W;m^!(7Y2kx|HJQpH7j2qzvuxPgFM z)f_Y}^uoYI&N9N5ZLR{Z#Qqfc4mrWT7(Cdi_SAnAcg=T4aXS;5lP1}pgS$V~SX}Tq zHqx|K9_X1eiiTOYu4nQr%`X>D=2v@?`AnWRwA*rYDth7kBYc$!P1<4_eG(V905k#? zd~(|*;JpM_Q3enk81tLqvzO1aU7^RxPWDWw}_di2BWcPCN$A* zVZE*4JvjPwPuR^A{TOx z63->F2Hg(hX-%Y`gS)Nr@?XxS%;Ls0FlYyIr9>t{vke)ZHQXf1Yq5xe{Ro{1T>y~d zsE>Xg!1m`DYY(0826`FanQ#91p^weW#pU_=)au4bnA<=Bx`Ge_(7LFCG{(=CmJ4{) zU1jgJ4`1P4^5NWl2*(hfKsXLytI&CXgfD;7Tq4t*NyzTt~jEX!1yN_tNd`o$aGh zbVSToSjGrlcBazKOZxIK*a00yvj}+$t1cyxgtlAf1a~;oZS9_-sl-9dO3fd`fc z=`s$lAYk_hE`~TlH%E^m>#GPDMjk2p98wsSS`uKau=4L0;B4V%)$_=C0l;>e#;R${ zOBw9(wgiOEfQ0AnwH{3@_W&7#G8s>p#vbqlCUneQSUJ4{88eZukFshQqHTG_sa{1BaNhF@H9ZT*U0c z>|8Eta@`j!-q*1oow3#YOTg=etrrgifjOwcOId|~8yw~$39#?=eKxT5>}SXO+sQb) z+8-rd?1lb4v!+uQ*9o9woh*pZ!$@nx(BH^um+p)RbkTBD6dgJv-eO7>1tg_)f@A0h zcSAquzOK^ep&Nvj40>l(mral5Tqo>b{gJX4H2L82FE~n)?$QvXbSnBuicg9ne$HUK2~MYtE8Va+g%-&6G+AWSaSYluC>4t%NPL z%J*ZrEhXM+De1OK1Z3K)WEM6JOIeDpTCS=CMoMLSt+88rXGU1-05LSw7ZG$nT-)FZ zM1+zXOgmgN4L%H>tsB>Vk8$Ea-(ZL3u9A`$WDkIBC;y0eyDl3B*>Bzo<`MSBz_{lNNb*YkGV>2=)OLRR(C))_#oxlN+M(p zOcZsvL$aow7_}vxZD@VuRpuLxl)2{`w$oKm%Fn!MIIe1ErVcE+h>$`UM%ah&T>#!z z!XsWDp?Ez+Kf~#z2JkNU2QVz5{g@X5*vJ*3{FQ|79g6P@ezHQgi=>gs z#N(Tr)yNbrpcLP95Gc%^Vn2W)I!W^ridSt_RK*2Gs&Z61CK<5JKLyfM;w0-eB>ZEmeb g;l6C;DD-yA8RIxEQAAlMtrn6)TAf^{ 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 BX^{W` diff --git a/guiheader.py b/guiheader.py index c40a5f9..8965069 100644 --- a/guiheader.py +++ b/guiheader.py @@ -2,23 +2,14 @@ """ from datetime import datetime import random -import time from qtpy.QtCore import Qt, QTimer -from qtpy.QtGui import QFont, QIntValidator -from qtpy.QtWidgets import (QApplication, QFrame, QGridLayout, QGroupBox, - QHBoxLayout, QLabel, QLineEdit, QMessageBox, - QPushButton, QRadioButton, QSizePolicy, QSpacerItem, - QSpinBox, QTabWidget, QToolButton, QVBoxLayout, - QWidget) -from caqtwidgets.pvwidgets import (CAQDoubleSpinBox, CAQLabel, CAQLineEdit, - CAQMenu, CAQMessageButton, CAQSpinBox, - CAQTableWidget, CAQTextEntry, QHLine, QVLine, - QResultsWidget) - -from pyqtacc.bdbase.enumkind import MsgSeverity, UserMode - +from qtpy.QtGui import QFont +from qtpy.QtWidgets import (QApplication, QGridLayout, QGroupBox, QHBoxLayout, + QLabel, QRadioButton, QWidget) +from caqtwidgets.pvwidgets import CAQLabel, QHLine, QVLine +from pyqtacc.bdbase.enumkind import UserMode class GUIHeader(QWidget): """ GUI Header Class @@ -34,10 +25,10 @@ class GUIHeader(QWidget): self.extended = extended self.cafe = parent.cafe self.cyca = parent.cyca - - self.input_parameters = parent.input_parameters + + self.input_parameters = parent.input_parameters self.input_labels = parent.input_labels - self.expert_parameters = parent.expert_parameters + self.expert_parameters = parent.expert_parameters self.expert_labels = parent.expert_labels self.aramis_status = None @@ -50,13 +41,13 @@ class GUIHeader(QWidget): self.font_pts10.setPointSize(10) self.widget_height = self.settings.data["StyleGuide"]["widgetHeight"] self.extra_height = self.settings.data["StyleGuide"]["extraGroupHeight"] - self.aramis_color = self.settings.data["Aramis"]["color"] - self.athos_color = self.settings.data["Athos"]["color"] - self.porthos_color = self.settings.data["Porthos"]["color"] + self.aramis_color = self.settings.data["Aramis"]["color"] + self.athos_color = self.settings.data["Athos"]["color"] + self.porthos_color = self.settings.data["Porthos"]["color"] beamline = ["Aramis", "Athos", "Porthos"] pvlist = [] - for item in beamline: + for item in beamline: if item not in self.settings.data: continue try: @@ -65,13 +56,13 @@ class GUIHeader(QWidget): pvlist.append(self.settings.data[item]["beamStatus"]) pvlist.append(self.settings.data[item]["energy"]) pvlist.append(self.settings.data[item]["charge"]) - pvlist.append(self.settings.data[item]["photonEnergy"]) + pvlist.append(self.settings.data[item]["photonEnergy"]) except KeyError as error: - print("KeyError in guiheader.py __init__", error) - - for key, pv in self.settings.data["OpMsg"].items(): + print("KeyError in guiheader.py __init__", str(error)) + + for pv in self.settings.data["OpMsg"].values(): pvlist.append(pv) - + print(datetime.now()) self.cafe.openPrepare() self.cafe.open(pvlist) @@ -79,36 +70,29 @@ class GUIHeader(QWidget): print(datetime.now()) self.cafe.printDisconnected() - self.station_width = 200 #default self.station_height = 100 self.hor_layout = QHBoxLayout() self.hor_layout.addWidget(self.status_widget()) self.hor_layout.addWidget(self.aramis_widget()) self.hor_layout.addWidget(self.athos_widget()) - yr_diff = abs(2030 - datetime.now().year) + yr_diff = abs(2032 - datetime.now().year) show_porthos = False try: if self.settings.data["showPorthos"]: show_porthos = True else: - if random.randint(1, 10) > yr_diff: - show_porthos = True + if random.randint(2, 12) > yr_diff: + show_porthos = True except KeyError as error: - print("KeyError in guiheader.py initialization:", error) - if random.randint(1, 10) > yr_diff: - show_porthos = True + print("KeyError in guiheader.py initialization:", str(error)) + if random.randint(2, 12) > yr_diff: + show_porthos = True if show_porthos: self.hor_layout.addWidget(self.porthos_widget()) self.hor_layout.setSpacing(10) - #self.header_layout.addItem(QSpacerItem(0, 20)) self.hor_layout.setAlignment(Qt.AlignLeft) - self.hor_layout.setContentsMargins(5, 0, 5, 0) #default 11 pixels - #self.top_widget = QLabel("SwissFEL") - - #self.top_layout = QVBoxLayout() - #self.top_layout.addWidget(self.top_widget) - #self.top_layout.addLayout(self.hor_layout) + self.hor_layout.setContentsMargins(5, 0, 5, 0) self.header_wgt = QGroupBox() self.header_wgt.setObjectName(self.user_mode.name) @@ -116,14 +100,11 @@ class GUIHeader(QWidget): self.header_wgt.setFixedHeight(110) title = "SwissFEL {0}".format(self.user_mode.name) if self.title: - title += ": {0}".format(self.title) + title += ": {0}".format(self.title) self.header_wgt.setTitle(title) self.target_beamline = None - - #self.set_target_beamline("Athos", reset=False) - #QApplication.processEvents() - + self.timer = QTimer() self.timer.timeout.connect(self.blink_target_beamline) self.timer.start(500) @@ -140,8 +121,8 @@ class GUIHeader(QWidget): if self.timer_count > 4: self.timer.stop() QApplication.processEvents() - - def set_target_beamline(self, target, reset = True): + + def set_target_beamline(self, target, reset=True): """ Select beamline target and modify color scheme accordinly """ if not target: @@ -149,7 +130,7 @@ class GUIHeader(QWidget): if target == "Aramis": self.aramis_status.setObjectName("TARGET") self.aramis_status.setTitle("Target: Aramis") - self.aramis_status.style().polish(self.aramis_status) + self.aramis_status.style().polish(self.aramis_status) elif target == "Athos": self.athos_status.setObjectName("TARGET") self.athos_status.setTitle("Target: Athos") @@ -159,13 +140,13 @@ class GUIHeader(QWidget): self.porthos_status.setObjectName("TARGET") self.porthos_status.setTitle("Target: Porthos") self.porthos_status.style().polish(self.porthos_status) - - if reset: - self.reset_beamline() + + if reset: + self.reset_beamline() self.target_beamline = target - + def reset_beamline(self): - """ Reset QGroupBox for previous target to original colors + """ Reset QGroupBox for previous target to original colors """ if self.target_beamline == "Aramis": self.reset_aramis() @@ -175,21 +156,21 @@ class GUIHeader(QWidget): self.reset_porthos() def reset_aramis(self): - """ Reset Aramis QGroupBox color + """ Reset Aramis QGroupBox color """ self.aramis_status.setObjectName("ARAMIS") self.aramis_status.setTitle("Aramis") self.aramis_status.style().polish(self.aramis_status) def reset_athos(self): - """ Reset Athos QGroupBox color + """ Reset Athos QGroupBox color """ self.athos_status.setObjectName("ATHOS") self.athos_status.setTitle("Athos") self.athos_status.style().polish(self.athos_status) def reset_porthos(self): - """ Reset Porthos QGroupBox color + """ Reset Porthos QGroupBox color """ if self.porthos_status: self.porthos_status.setObjectName("PORTHOS") @@ -197,43 +178,40 @@ class GUIHeader(QWidget): self.porthos_status.style().polish(self.porthos_status) def reset_operation_mode(self): - """ Reset header colors to application operation mode + """ Reset header colors to application operation mode """ self.change_operation_mode(user_mode=self.user_mode) - + def change_operation_mode(self, user_mode=UserMode.OPERATION): - """ Different operation modes have different color schemes + """ Different operation modes have different color schemes """ self.header_wgt.setObjectName(user_mode.name) self.header_wgt.setTitle(self.header_wgt.title().replace( self.current_user_mode.name, user_mode.name)) self.header_wgt.style().polish(self.header_wgt) self.current_user_mode = user_mode - - #self.header_wgt.setStyleSheet("QGroupBox#OPERATION{background-color:#8b1a96; color:white;}" "QGroupBox::title#OPERATION{background-color:#8b1a96;} ") - def beamline_widget(self, beamline="Aramis"): - """ QGroupBox template for beamlines + """ QGroupBox template for beamlines """ station = QGroupBox() station.setObjectName(beamline.upper()) - station.setAlignment(Qt.AlignHCenter | Qt.AlignTop) - station.setFlat(False) - station.setTitle(beamline) + station.setAlignment(Qt.AlignHCenter | Qt.AlignTop) + station.setFlat(False) + station.setTitle(beamline) laser = CAQLabel(self, pv_name=self.settings.data[beamline]["laser"]) laser.setFixedHeight(self.widget_height) - freq = CAQLabel(self, pv_name=self.settings.data[beamline]["freq"], + freq = CAQLabel(self, pv_name=self.settings.data[beamline]["freq"], show_units=True) freq.setAlignment(Qt.AlignRight) freq.setFixedHeight(self.widget_height) freq.setFixedWidth(84) beamstatus = CAQLabel( - self, pv_name=self.settings.data[beamline]["beamStatus"], + self, pv_name=self.settings.data[beamline]["beamStatus"], color_mode="alarm") beamstatus.setFixedHeight(self.widget_height) - grid_layout = QGridLayout() + grid_layout = QGridLayout() grid_layout.addWidget(laser, 0, 0, 1, 1, Qt.AlignCenter) grid_layout.addWidget(freq, 0, 1, 1, 1, Qt.AlignCenter) grid_layout.addWidget(beamstatus, 1, 0, 1, 2, Qt.AlignCenter) @@ -244,17 +222,17 @@ class GUIHeader(QWidget): self, pv_name=self.settings.data[beamline]["energy"], show_units=True) filtered_energy.setFixedHeight(self.widget_height) - charge = CAQLabel( + charge = CAQLabel( self, pv_name=self.settings.data[beamline]["charge"], show_units=True, notify_freq_hz=2) charge.setFixedHeight(self.widget_height) charge.setFixedWidth(78) - photon_energy = CAQLabel( + photon_energy = CAQLabel( self, pv_name=self.settings.data[beamline]["photonEnergy"], show_units=False, suffix='\u00B5J') photon_energy.setFixedHeight(self.widget_height) photon_energy.setFixedWidth(66) #So aramis/Athos are the same - + grid_layout.addWidget(filtered_energy, 0, 3, 1, 2, Qt.AlignCenter) grid_layout.addWidget(charge, 1, 3, 1, 1, Qt.AlignCenter) grid_layout.addWidget(photon_energy, 1, 4, 1, 1, Qt.AlignCenter) @@ -265,7 +243,7 @@ class GUIHeader(QWidget): #print(grid_layout.getContentsMargins()) station.setLayout(grid_layout) - self.station_height = laser.height() + freq.height() + self.extra_height + self.station_height = laser.height() + freq.height() + self.extra_height station.setFixedHeight(self.station_height) self.station_width = laser.width() + freq.width() + 10 if self.extended: @@ -275,29 +253,29 @@ class GUIHeader(QWidget): return station def aramis_widget(self): - """ QGroupBox encompassing main Aramis parameters + """ QGroupBox encompassing main Aramis parameters """ self.aramis_status = self.beamline_widget(beamline="Aramis") return self.aramis_status def athos_widget(self): - """ QGroupBox encompassing main Athos parameters + """ QGroupBox encompassing main Athos parameters """ self.athos_status = self.beamline_widget(beamline="Athos") return self.athos_status def porthos_widget(self): - """ QGroupBox encompassing main Porthos parameters + """ QGroupBox encompassing main Porthos parameters """ #porthos = self.beamline_widget(beamline="Porthos") station = QGroupBox() station.setObjectName("Porthos".upper()) - station.setAlignment(Qt.AlignHCenter | Qt.AlignTop) - station.setFlat(False) - station.setTitle("Porthos") - grid_layout = QGridLayout() + station.setAlignment(Qt.AlignHCenter | Qt.AlignTop) + station.setFlat(False) + station.setTitle("Porthos") + grid_layout = QGridLayout() text = "Honest and extrovert!" \ - if random.randint(1,10) > 9 else "Arriving 2029" + if random.randint(1, 10) > 9 else "Arriving 2032" qlabel = QLabel(text) qlabel.setFont(self.font_pts10) qlabel.setAlignment(Qt.AlignCenter) @@ -306,7 +284,7 @@ class GUIHeader(QWidget): station.setFixedWidth(self.station_width) station.setFixedHeight(self.station_height) self.porthos_status = station - return self.porthos_status + return self.porthos_status def status_widget(self): """ QGroupBox encompassing machine status info @@ -318,8 +296,9 @@ class GUIHeader(QWidget): station.setTitle("Status") date = CAQLabel(self, pv_name=self.settings.data["OpMsg"]["pvDate1"]) date.setFixedHeight(self.widget_height) - eventno = CAQLabel(self, pv_name=self.settings.data["OpMsg"]["pvEventNo"], - notify_freq_hz=10) + eventno = CAQLabel( + self, pv_name=self.settings.data["OpMsg"]["pvEventNo"], + notify_freq_hz=10) eventno.setFixedHeight(self.widget_height) eventno.setAlignment(Qt.AlignCenter) message = CAQLabel( @@ -327,41 +306,41 @@ class GUIHeader(QWidget): message.setFixedHeight(self.widget_height) message.setFixedWidth(eventno.width() + date.width() + 2) - grid_layout = QGridLayout() + grid_layout = QGridLayout() grid_layout.addWidget(date, 0, 0, 1, 1, Qt.AlignCenter) grid_layout.addWidget(eventno, 0, 1, 1, 1, Qt.AlignCenter) grid_layout.addWidget(message, 1, 0, 1, 2, Qt.AlignCenter) grid_layout.setVerticalSpacing(0) grid_layout.setHorizontalSpacing(0) grid_layout.setContentsMargins(0, 10, 0, 0) - + station.setLayout(grid_layout) station.setFixedHeight(eventno.height() + date.height() + self.extra_height) station.setFixedWidth(eventno.width() + date.width() + 10) self.machine_status = station return self.machine_status - + def operator_group_header(self): return self.radio_target_beamline() - + def radio_target_beamline(self): widget = QWidget() layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) target_list = ["Aramis", "Athos"] + self.radiobutton = [QRadioButton("Aramis"), QRadioButton("Athos")] try: if self.settings.data["showPorthos"]: - target_list.append("Porthos") + target_list.append("Porthos") + self.radiobutton.append(QRadioButton("Porthos")) except KeyError as error: - print("KeyError in guiheader.py, def radio_target_beamline:", error) - + print("KeyError in guiheader.py, def radio_target_beamline:", + str(error)) color_list = [self.aramis_color, self.athos_color, self.porthos_color] - self.radiobutton = [QRadioButton("Aramis"), QRadioButton("Athos"), - QRadioButton("Porthos")] width_list = [70, 64, 84] #width_list = [80, 74, 92] #pts 11 layout.addWidget(QHLine(), 0, 0, 1, 3) @@ -375,44 +354,23 @@ class GUIHeader(QWidget): radio.toggled.connect(self.on_target_clicked) layout.addWidget(radio, 1, i) radio.setFixedWidth(width) - - try: - target = self.settings.data["Parameters"]["undulator"]["data"]["value"] + + try: + target = self.settings.data["Parameters"]["undulator"]["data"][ + "value"] except KeyError as error: - print("KeyError in guiheader.py, def radio_target_beamline:", error) + print("KeyError in guiheader.py, def radio_target_beamline:", + str(error)) target = target_list[0] try: idx = target_list.index(target) except ValueError as error: - print("ValueError in guiheader.py, def radio_target_beamline:", error) + print("ValueError in guiheader.py, def radio_target_beamline:", + str(error)) idx = 0 self.radiobutton[idx].setChecked(True) - self.radiobutton[idx].toggled.emit(True) - - ''' - radiobutton = QRadioButton("Aramis") - radiobutton.setFont(self.font_gui) - radiobutton.setStyleSheet("color : {0};".format(self.aramis_color)) - radiobutton.setChecked(True) - radiobutton.target = "Aramis" - radiobutton.toggled.connect(self.on_target_clicked) - layout.addWidget(radiobutton, 0, 0) - - radiobutton = QRadioButton("Athos") - radiobutton.setFont(self.font_gui) - radiobutton.setStyleSheet("color : {0};".format(self.athos_color)) - radiobutton.target = "Athos" - radiobutton.toggled.connect(self.on_target_clicked) - layout.addWidget(radiobutton, 0, 1) - - radiobutton = QRadioButton("Porthos") - radiobutton.setFont(self.font_gui) - radiobutton.setStyleSheet("color : {0};".format(self.porthos_color)) - radiobutton.target = "Porthos" - radiobutton.toggled.connect(self.on_target_clicked) - layout.addWidget(radiobutton, 0, 2) - ''' + self.radiobutton[idx].toggled.emit(True) layout.addWidget(QHLine(), 2, 0, 1, 3) @@ -428,11 +386,8 @@ class GUIHeader(QWidget): radio_button.setText(radio_button.target.upper()) self.timer.start(500) self.timer_count = 0 - #print (self.parent.input_parameters['undulator']) self.parent.input_parameters['undulator'] = radio_button.target - print (self.parent.input_parameters['undulator']) for radio in self.radiobutton: if not radio.isChecked(): radio.setText(radio.target) -