header widget shows beam path
This commit is contained in:
2
comet.py
2
comet.py
@@ -9,7 +9,7 @@ cafe.monitor("MMAC3:STR:2")
|
||||
pvd = cafe.getPVCache("MMAC3:STR:2")
|
||||
pvd.show()
|
||||
|
||||
for i in range(0,100000):
|
||||
for i in range(0,1000000):
|
||||
pvd = cafe.getPVCache("MMAC3:STR:2")
|
||||
if pvd.value[0] < 0.003:
|
||||
pvd.show()
|
||||
|
||||
2
hush.py
2
hush.py
@@ -58,6 +58,8 @@ class StartMain(BaseWindow):
|
||||
self.title = _title
|
||||
self.gui = AppGui(self)
|
||||
|
||||
#print(self.input_parameters)
|
||||
|
||||
|
||||
def prepare_elog_message(self):
|
||||
|
||||
|
||||
131
src/gui.py
131
src/gui.py
@@ -60,10 +60,11 @@ class AppGui(QWidget):
|
||||
self.input_labels = self.parent.input_labels
|
||||
self.expert_parameters = self.parent.expert_parameters
|
||||
self.gui_frame.expert_parameters_group.setFixedWidth(260)
|
||||
self.gui_frame.expert_parameters_group.setFixedHeight(120)
|
||||
self.gui_frame.operator_parameters_group.setFixedWidth(260)
|
||||
#self.gui_frame.operator_parameters_group.setFixedHeight(260)
|
||||
self.gui_frame.measurement_tab_wgt.setMinimumWidth(440)
|
||||
self.gui_frame.measurement_tab_wgt.setFixedHeight(280)
|
||||
self.gui_frame.operator_parameters_group.setFixedHeight(100)
|
||||
self.gui_frame.measurement_tab_wgt.setFixedWidth(440)
|
||||
self.gui_frame.measurement_tab_wgt.setFixedHeight(200)
|
||||
#self.gui_frame.operator_wgt.setFixedHeight(240)
|
||||
#self.gui_frame.expert_wgt.setFixedHeight(240)
|
||||
|
||||
@@ -74,18 +75,10 @@ class AppGui(QWidget):
|
||||
#Overwrite default
|
||||
self.gui_frame.central_tab_widget.tabBar().setTabText(0, "Control")
|
||||
self.gui_frame.central_tab_widget.tabBar().setTabText(1, "IOC")
|
||||
#self.gui_frame.results_wgt is the IOC tab widget
|
||||
#wgt = self.gui_frame.results_wgt.layout().widget()
|
||||
|
||||
#wgt = self.gui_frame.central_tab_widget.widget(1)
|
||||
#lay = self.gui_frame.central_tab_widget.widget(1).layout()
|
||||
|
||||
#self.gui_frame.results_wgt.layout().removeWidget(wgt)
|
||||
#wgt.deleteLater()
|
||||
#wgt = None
|
||||
#self.gui_frame.central_tab_widget.widget(1).setLayout(self.reset_ioc_sm())
|
||||
wgt = self.gui_frame.central_tab_widget.widget(1)
|
||||
#print(dir(wgt))
|
||||
|
||||
lay = self.gui_frame.central_tab_widget.widget(1).layout()
|
||||
#print(dir(lay))
|
||||
|
||||
'''
|
||||
def deleteItemsOfLayout(layout):
|
||||
@@ -113,21 +106,17 @@ class AppGui(QWidget):
|
||||
|
||||
self.gui_frame.results_wgt.setFixedWidth(1200)
|
||||
self.gui_frame.results_wgt.setFixedHeight(400)
|
||||
#wgt2 = self.gui_frame.results_tab_wgt.layout().widget()
|
||||
#self.gui_frame.central_tab_widget.widget(1).layout().replaceWidget(wgt2, self.reset_ioc_sm())
|
||||
|
||||
|
||||
self.gui_frame.results_wgt.setLayout(self.gui_frame.results_layout)
|
||||
|
||||
self.gui_frame.results_layout.addWidget(self.reset_ioc_sm(), 0, 0, 1, 1)
|
||||
sec_prefix_list = [sub[0: sub.index("-")] for sub in self.sec_state_list]
|
||||
sec_prefix_list = [
|
||||
sub[0: sub.index("-")] for sub in self.sec_state_list]
|
||||
|
||||
self.gui_frame.results_layout.addWidget(self.reset_ioc_saving(sec_prefix_list), 0, 1, 1, 1)
|
||||
self.gui_frame.results_layout.addWidget(
|
||||
self.reset_ioc_saving(sec_prefix_list), 0, 1, 1, 1)
|
||||
self.gui_frame.results_layout.setContentsMargins(40, 40, 40, 40)
|
||||
|
||||
|
||||
#self.gui_frame.results_wgt.insertWidget(0, self.reset_ioc_sm())
|
||||
#self.gui_frame.results_wgt.setLayout(self.reset_ioc_sm().layout())
|
||||
|
||||
self.expert_labels = self.parent.expert_labels
|
||||
self.settings = self.parent.settings
|
||||
|
||||
@@ -139,7 +128,6 @@ class AppGui(QWidget):
|
||||
|
||||
#self.I_min = 0.002 HIPA
|
||||
|
||||
|
||||
self.cafe.openPrepare()
|
||||
self.cafe.open(['PRO-HUSH:LASTPWR','PRO-HUSH:TOTPWR',
|
||||
'PRO:LASTSAVE', 'PPO-HUSH:TOTSAVE'])
|
||||
@@ -147,11 +135,14 @@ class AppGui(QWidget):
|
||||
self.cafe.openNowAndWait(0.1)
|
||||
|
||||
|
||||
wgt = self.group_sector_qtabwidget()
|
||||
self.magnet_tab_wgt = self.group_sector_qtabwidget()
|
||||
self.gui_frame.measurement_layout.addWidget(
|
||||
wgt, 0, 1, 6, 3, alignment=Qt.AlignTop)
|
||||
self.magnet_tab_wgt, 0, 1, 6, 3, alignment=Qt.AlignTop)
|
||||
|
||||
self.magnet_tab_wgt.setCurrentIndex(1)
|
||||
|
||||
status_wgt = self.group_sector_status()
|
||||
status_wgt.setFixedHeight(340)
|
||||
|
||||
self.gui_frame.measurement_layout.addWidget(
|
||||
status_wgt, 2, 0, 2, 1, alignment=Qt.AlignTop) # | Qt.AlignHCenter)
|
||||
@@ -175,7 +166,7 @@ class AppGui(QWidget):
|
||||
g2_line = ["SH", "G2"]
|
||||
g1_line = ["SH", "G1"]
|
||||
sh_line = ["SH"]
|
||||
|
||||
|
||||
try:
|
||||
pv_master = self.settings.data["MASTER"]["status"]
|
||||
self.mastership = self.cafe.getCache(pv_master)
|
||||
@@ -191,31 +182,38 @@ class AppGui(QWidget):
|
||||
# "Gantry 3": "G3", "OPTIS2": "O2"}
|
||||
|
||||
def receive_master_update(value, status, alarm_severity):
|
||||
print("value", value, flush=True)
|
||||
|
||||
self.mastership = value
|
||||
for key, wgt_val in self.gui_header.master_to_wgt.items():
|
||||
master = self.gui_header.beam_current_wgt_group[wgt_val]
|
||||
#print(key, wgt_val, "present object name", master.objectName(), flush=True)
|
||||
#print(value)
|
||||
if value in key:
|
||||
master.setObjectName("ARAMIS")
|
||||
master.style().polish(master)
|
||||
self.gui_header.target_beamline = wgt_val
|
||||
self.gui_header.timer.start(750)
|
||||
self.gui_header.timer_count = 0
|
||||
|
||||
#print("NEW object name", master.objectName(), flush=True)
|
||||
else:
|
||||
if "BEAMLINE" not in master.objectName():
|
||||
master.setObjectName("BEAMLINE")
|
||||
master.style().polish(master)
|
||||
#print("NEW object name", master.objectName(), flush=True)
|
||||
|
||||
|
||||
self.gui_header.beam_current_wgt_dict[
|
||||
wgt_val].trigger_monitor_str.emit(
|
||||
self.sectorI_dict[wgt_val], 1, 0)
|
||||
|
||||
|
||||
|
||||
def enable_disable_beamline(sect, sector_line, value):
|
||||
|
||||
|
||||
def reset_check_mini_post_sh():
|
||||
#Redo "G2" in case first two elements
|
||||
#are grayed by other beamlines
|
||||
if "ON" in (self.sectorI_dict["G2"],
|
||||
self.sectorI_dict["O2"],
|
||||
self.sectorI_dict["PIF"]):
|
||||
#self.sectorI_dict["G3"]):
|
||||
self.gui_header.toSHOverlap("ON")
|
||||
|
||||
self.sectorI_dict[sect] = value
|
||||
#print("sect/value", sect, value)
|
||||
for sector in sector_line:
|
||||
@@ -226,7 +224,6 @@ class AppGui(QWidget):
|
||||
sector].standby_value_button.isEnabled():
|
||||
self.table_sol_dict[
|
||||
sector].standby_value_button.setEnabled(False)
|
||||
print("DISABLE", sector)
|
||||
if not is_master():
|
||||
if self.table_sol_dict[
|
||||
sector].restore_value_button.isEnabled():
|
||||
@@ -244,7 +241,28 @@ class AppGui(QWidget):
|
||||
self.table_sol_dict[
|
||||
sector].restore_value_button.setEnabled(True)
|
||||
|
||||
_action = "OFF" if "Geschlossen" in self.sectorI_dict[
|
||||
sector] else "ON"
|
||||
|
||||
if sector == "SH":
|
||||
self.gui_header.toSH(_action)
|
||||
elif sector == "G1":
|
||||
self.gui_header.toG1(_action)
|
||||
elif sector == "G2":
|
||||
self.gui_header.toG2(_action)
|
||||
reset_check_mini_post_sh()
|
||||
elif sector == "O2":
|
||||
self.gui_header.toO2(_action)
|
||||
reset_check_mini_post_sh()
|
||||
elif sector == "G3":
|
||||
self.gui_header.toG3(_action)
|
||||
elif sector == "PIF":
|
||||
self.gui_header.toPIF(_action)
|
||||
reset_check_mini_post_sh()
|
||||
|
||||
reset_check_mini_post_sh()
|
||||
|
||||
|
||||
def receive_sh_update(value, status, alarm_severity):
|
||||
enable_disable_beamline('SH', sh_line, value)
|
||||
def receive_g1_update(value, status, alarm_severity):
|
||||
@@ -288,6 +306,19 @@ class AppGui(QWidget):
|
||||
receive_g1_update(pvd.value[0], pvd.alarmStatus, pvd.alarmSeverity)
|
||||
pvd=self.cafe.getPVCache(self.settings.data["MASTER"]["status"], dt='str')
|
||||
receive_master_update(pvd.value[0], pvd.alarmStatus, pvd.alarmSeverity)
|
||||
|
||||
@Slot()
|
||||
def simulation_update(state):
|
||||
if bool(state):
|
||||
_color = self.gui_header.sim_color
|
||||
else:
|
||||
_color = self.gui_header.op_color
|
||||
print("SIM STATE CHANGED", state, _color, flush=True)
|
||||
self.gui_header.pf_off_color = _color
|
||||
self.gui_header.color_pframe(_color)
|
||||
print("SIM STATE CHANGED//", state, _color, flush=True)
|
||||
|
||||
self.gui_frame.simulation_checkbox.stateChanged.connect(simulation_update)
|
||||
|
||||
def receive_sec_state(handle, pv, pvdata):
|
||||
pvsplit = pv.split("-")
|
||||
@@ -377,7 +408,8 @@ class AppGui(QWidget):
|
||||
qtot.setFont(fnt)
|
||||
qgrid.addWidget(qtot, _row+1, 0, 1, 1)
|
||||
qgrid.addWidget(
|
||||
CAQLineEdit(self, pv_name="PRO-HUSH:LASTPWR", show_units=True),
|
||||
CAQLineEdit(self, pv_name="PRO-HUSH:LASTPWR",
|
||||
show_units=True),
|
||||
_row+1, 1, 1, 1)
|
||||
qgrid.addWidget(
|
||||
CAQLineEdit(self, pv_name="PRO-HUSH:TOTPWR", show_units=True),
|
||||
@@ -462,7 +494,7 @@ class AppGui(QWidget):
|
||||
xstart = QDateTime(xdate)
|
||||
|
||||
qpinit = CAQLineEdit(self, pv_name=pv_pwr_last, show_units=False)
|
||||
qpnow = CAQLineEdit(self, pv_name=pv_pwr_tot, show_units=False)
|
||||
qpnow = CAQLineEdit(self, pv_name=pv_pwr_tot, show_units=False, notify_freq_hz=1)
|
||||
qpsave = CAQLineEdit(self, pv_name=pv_pwr_saved, show_units=False)
|
||||
qptotsave = CAQLineEdit(self, pv_name=pv_pwr_totsave, show_units=False)
|
||||
|
||||
@@ -474,8 +506,6 @@ class AppGui(QWidget):
|
||||
#Time to allow cb_outtime to fire
|
||||
time.sleep(0.2)
|
||||
|
||||
|
||||
|
||||
qptime.setFixedWidth(104)
|
||||
|
||||
#qtdis = QBasicTimer()
|
||||
@@ -507,7 +537,8 @@ class AppGui(QWidget):
|
||||
|
||||
for sector in self.settings.data["header"][idx:idx_last]:
|
||||
sector_wgt_dict[sector] = self.ca_table_sector_widget(sector=sector)
|
||||
|
||||
QApplication.processEvents()
|
||||
|
||||
sector_tab_widget = QTabWidget()
|
||||
sector_tab_widget.setFont(self.font_gui)
|
||||
sector_tab_widget.setStyleSheet("QTabBar {font-size: 12pt;}")
|
||||
@@ -517,11 +548,7 @@ class AppGui(QWidget):
|
||||
sector_tab_widget.addTab(sector_wgt_dict[sector], sector)
|
||||
color = self.settings.data[sector]["color"]
|
||||
sector_tab_widget.tabBar().setTabTextColor(i, QColor(color))
|
||||
|
||||
#sector_tab_widget.addTab(sector_wgt_dict["INJ2"], "RF")
|
||||
#color = self.settings.data["INJ2"]["color"]
|
||||
#sector_tab_widget.tabBar().setTabTextColor(
|
||||
# len(self.settings.data["header"][idx:]), QColor(color))
|
||||
|
||||
|
||||
return sector_tab_widget
|
||||
|
||||
@@ -609,8 +636,6 @@ class AppGui(QWidget):
|
||||
|
||||
QApplication.processEvents(QEventLoop.AllEvents, 1.0)
|
||||
|
||||
|
||||
|
||||
if not self.input_parameters['simulation']:
|
||||
status, status_list, pv_list = _table.set_standby_values()
|
||||
|
||||
@@ -669,8 +694,8 @@ class AppGui(QWidget):
|
||||
_delay = 0.09
|
||||
pass
|
||||
|
||||
print(pv_dict['SOL:2'], flush=True)
|
||||
print(_standby_values, flush=True)
|
||||
#print(pv_dict['SOL:2'], flush=True)
|
||||
#print(_standby_values, flush=True)
|
||||
table_sol = CAQTableWidget(
|
||||
self, pv_list=pv_dict['SOL:2'], show_units=True, notify_freq_hz=0,
|
||||
notify_unison=False, scale_factor=1, show_timestamp=False,
|
||||
@@ -694,14 +719,14 @@ class AppGui(QWidget):
|
||||
self.table_sol_dict[sector] = table_sol
|
||||
|
||||
table_ist = CAQTableWidget(
|
||||
self, pv_list=pv_dict['IST:2'], show_units=True, notify_freq_hz=2,
|
||||
self, pv_list=pv_dict['IST:2'], show_units=True, notify_freq_hz=1,
|
||||
notify_unison=True, scale_factor=1, show_timestamp=False,
|
||||
init_column=False, pv_list_show=[False])
|
||||
|
||||
table_pwr = CAQTableWidget(
|
||||
self, pv_list=pv_dict['PWR'], show_units=False, notify_freq_hz=0,
|
||||
self, pv_list=pv_dict['PWR'], show_units=False, notify_freq_hz=1,
|
||||
suffix = "kW",
|
||||
notify_unison=False, scale_factor=0.001, show_timestamp=False,
|
||||
notify_unison=True, scale_factor=0.001, show_timestamp=False,
|
||||
init_column=True, init_list=pv_dict['PWR'], pv_list_show=[False])
|
||||
|
||||
table_pwr.init_value_button.setToolTip(
|
||||
|
||||
Reference in New Issue
Block a user