Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 16847da053 | |||
| 0717ed147c |
@@ -1,11 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
cd /hipa/bd/applications/hush/hla/2.1.0
|
cd /hipa/bd/applications/hush/hla/2.2.0
|
||||||
|
|
||||||
# For use if script is sourced rather than executed
|
# For use if script is sourced rather than executed
|
||||||
appNameDefault="hush.sh"
|
appNameDefault="hush.sh"
|
||||||
|
|
||||||
module unload gcc
|
module unload gcc
|
||||||
module load gcc/7.3.0
|
module load gcc/7.5.0
|
||||||
|
|
||||||
if [ -z "$PS1" ] # no prompt?
|
if [ -z "$PS1" ] # no prompt?
|
||||||
### if [ -v PS1 ] # On Bash 4.2+ ...
|
### if [ -v PS1 ] # On Bash 4.2+ ...
|
||||||
@@ -56,7 +56,7 @@ _EPICS_HOST_ARCH=${RHREL}-x86_64
|
|||||||
|
|
||||||
#C_EXT version for Py 3.5, 3.7. 3.8, 3.10:
|
#C_EXT version for Py 3.5, 3.7. 3.8, 3.10:
|
||||||
|
|
||||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.10.0
|
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.20.0-gcc-7.5.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.11.0
|
||||||
|
|
||||||
echo $PYTHONPATH
|
echo $PYTHONPATH
|
||||||
|
|
||||||
|
|||||||
+88
-20
@@ -81,7 +81,7 @@ class AppGui(QWidget):
|
|||||||
self.table_pwr_dict = {}
|
self.table_pwr_dict = {}
|
||||||
self.offtime_dict = {}
|
self.offtime_dict = {}
|
||||||
|
|
||||||
self.I_min = 1.0
|
self.I_min = 1.0 #0.09 for testing
|
||||||
self.with_rf = False
|
self.with_rf = False
|
||||||
|
|
||||||
self.sec_state_list = ["ZIP2-HUSH:STATE", "ZIW2-HUSH:STATE",
|
self.sec_state_list = ["ZIP2-HUSH:STATE", "ZIW2-HUSH:STATE",
|
||||||
@@ -92,10 +92,16 @@ class AppGui(QWidget):
|
|||||||
self.cafe.open(["ZHIPA-HUSH:LASTPWR", "ZHIPA-HUSH:TOTPWR",
|
self.cafe.open(["ZHIPA-HUSH:LASTPWR", "ZHIPA-HUSH:TOTPWR",
|
||||||
"ZHIPA-HUSH:LASTSAVE", "ZHIPA-HUSH:TOTSAVE"])
|
"ZHIPA-HUSH:LASTSAVE", "ZHIPA-HUSH:TOTSAVE"])
|
||||||
self.cafe.open(self.sec_state_list)
|
self.cafe.open(self.sec_state_list)
|
||||||
self.cafe.open("UCN:BEAMREQ:STATUS")
|
#self.cafe.open("UCNQ:BEAMREQ:STATUS")
|
||||||
self.cafe.openNowAndWait(0.1)
|
self.cafe.openNowAndWait(0.1)
|
||||||
|
|
||||||
self.cafe.monitor("UCNQ:BEAMREQ:STATUS")
|
self.uncq_beam_req = self.cafe.getCache("UCNQ:BEAMREQ:STATUS")
|
||||||
|
if self.uncq_beam_req is None:
|
||||||
|
self.uncq_beam_req = "stopped"
|
||||||
|
|
||||||
|
self.beam_req_running = False \
|
||||||
|
if self.uncq_beam_req == "stopped" else True
|
||||||
|
#self.cafe.monitor("UCNQ:BEAMREQ:STATUS")
|
||||||
|
|
||||||
idx = self.settings.data["header"].index("IP2")
|
idx = self.settings.data["header"].index("IP2")
|
||||||
self.sectorI_dict = {}
|
self.sectorI_dict = {}
|
||||||
@@ -158,8 +164,8 @@ class AppGui(QWidget):
|
|||||||
|
|
||||||
ucn_line = ["PK1", "PK2", "UCN"]
|
ucn_line = ["PK1", "PK2", "UCN"]
|
||||||
sinq_line = ["PK1", "PK2", "SINQ"]
|
sinq_line = ["PK1", "PK2", "SINQ"]
|
||||||
pk1_line = ["IW2"]
|
pk1_line = ["IW2", "PK1"]
|
||||||
pk2_line = ["IW2"]
|
pk2_line = ["IW2", "PK1", "PK2"]
|
||||||
|
|
||||||
for sector in self.settings.data["header"][idx:]:
|
for sector in self.settings.data["header"][idx:]:
|
||||||
gateway_indices = self.get_standby_index_list(sector)
|
gateway_indices = self.get_standby_index_list(sector)
|
||||||
@@ -172,22 +178,49 @@ class AppGui(QWidget):
|
|||||||
idx].trigger_monitor_float.emit(
|
idx].trigger_monitor_float.emit(
|
||||||
pvd.value[0], pvd.status, pvd.alarmSeverity)
|
pvd.value[0], pvd.status, pvd.alarmSeverity)
|
||||||
|
|
||||||
def enable_disable_ucn(sect, sector_line, value):
|
|
||||||
|
def enable_disable_ucn(sect, sector_line, value):
|
||||||
self.sectorI_dict[sect] = value
|
self.sectorI_dict[sect] = value
|
||||||
|
|
||||||
|
'''
|
||||||
beam_req_running = True
|
beam_req_running = True
|
||||||
beam_req_status = self.cafe.getCache("UCNQ:BEAMREQ:STATUS")
|
|
||||||
#print(" beam_req_status", beam_req_status, flush=True)
|
|
||||||
|
|
||||||
if beam_req_status is not None:
|
|
||||||
if beam_req_status == "stopped":
|
|
||||||
beam_req_running = False
|
|
||||||
|
|
||||||
|
def is_beam_req_running():
|
||||||
|
beam_req_running = True
|
||||||
|
beam_req_status = self.uncq_beam_req #self.cafe.getCache("UCNQ:BEAMREQ:STATUS")
|
||||||
|
|
||||||
|
if beam_req_status is not None:
|
||||||
|
if beam_req_status == "stopped":
|
||||||
|
beam_req_running = False
|
||||||
|
return beam_req_running
|
||||||
|
'''
|
||||||
|
|
||||||
for sector in sector_line:
|
for sector in sector_line:
|
||||||
beam_req_flag = True
|
beam_req_flag = False
|
||||||
|
|
||||||
if sector == "UCN":
|
if sector == "UCN":
|
||||||
beam_req_flag = beam_req_running
|
beam_req_flag = self.beam_req_running #is_beam_req_running()
|
||||||
|
'''
|
||||||
|
with self.lock:
|
||||||
|
if not beam_req_flag:
|
||||||
|
if not self.table_sol_dict[
|
||||||
|
sector].init_value_button.isEnabled():
|
||||||
|
self.table_sol_dict[
|
||||||
|
sector].init_value_button.setEnabled(True)
|
||||||
|
if not self.table_pwr_dict[
|
||||||
|
sector].init_value_button.isEnabled():
|
||||||
|
self.table_pwr_dict[
|
||||||
|
sector].init_value_button.setEnabled(True)
|
||||||
|
else:
|
||||||
|
if self.table_sol_dict[
|
||||||
|
sector].init_value_button.isEnabled():
|
||||||
|
self.table_sol_dict[
|
||||||
|
sector].init_value_button.setEnabled(False)
|
||||||
|
if self.table_pwr_dict[
|
||||||
|
sector].init_value_button.isEnabled():
|
||||||
|
self.table_pwr_dict[
|
||||||
|
sector].init_value_button.setEnabled(False)
|
||||||
|
'''
|
||||||
# if self.sectorI_dict['UCN'] > self.I_min or self.sectorI_dict[
|
# if self.sectorI_dict['UCN'] > self.I_min or self.sectorI_dict[
|
||||||
# 'SINQ'] > self.I_min:
|
# 'SINQ'] > self.I_min:
|
||||||
if self.sectorI_dict[sector] > self.I_min or beam_req_flag:
|
if self.sectorI_dict[sector] > self.I_min or beam_req_flag:
|
||||||
@@ -195,7 +228,6 @@ class AppGui(QWidget):
|
|||||||
sector].standby_value_button.isEnabled():
|
sector].standby_value_button.isEnabled():
|
||||||
self.table_sol_dict[
|
self.table_sol_dict[
|
||||||
sector].standby_value_button.setEnabled(False)
|
sector].standby_value_button.setEnabled(False)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if not self.table_sol_dict[
|
if not self.table_sol_dict[
|
||||||
sector].standby_value_button.isEnabled():
|
sector].standby_value_button.isEnabled():
|
||||||
@@ -220,9 +252,16 @@ class AppGui(QWidget):
|
|||||||
|
|
||||||
def enable_disable_pk(sect, sector_line, value):
|
def enable_disable_pk(sect, sector_line, value):
|
||||||
self.sectorI_dict[sect] = value
|
self.sectorI_dict[sect] = value
|
||||||
|
|
||||||
|
#print("==>sector firing", sect, "with value", value)
|
||||||
|
|
||||||
for sector in sector_line:
|
for sector in sector_line:
|
||||||
if self.sectorI_dict["PK1"] > self.I_min or self.sectorI_dict[
|
#print("sector", sector, "in line", sector_line,
|
||||||
"PK2"] > self.I_min:
|
# "has value", self.sectorI_dict[sector]
|
||||||
|
#)
|
||||||
|
#if self.sectorI_dict["PK1"] > self.I_min or self.sectorI_dict[
|
||||||
|
# "PK2"] > self.I_min:
|
||||||
|
if self.sectorI_dict[sector] > self.I_min:
|
||||||
if self.table_sol_dict[
|
if self.table_sol_dict[
|
||||||
sector].standby_value_button.isEnabled():
|
sector].standby_value_button.isEnabled():
|
||||||
self.table_sol_dict[
|
self.table_sol_dict[
|
||||||
@@ -233,6 +272,18 @@ class AppGui(QWidget):
|
|||||||
self.table_sol_dict[
|
self.table_sol_dict[
|
||||||
sector].standby_value_button.setEnabled(True)
|
sector].standby_value_button.setEnabled(True)
|
||||||
|
|
||||||
|
def receive_ucnq_update(value, status, alarm_severity):
|
||||||
|
del status, alarm_severity
|
||||||
|
self.uncq_beam_req = value
|
||||||
|
print("self.uncq_beam_req", self.uncq_beam_req)
|
||||||
|
self.beam_req_running = True
|
||||||
|
if self.uncq_beam_req is not None:
|
||||||
|
if self.uncq_beam_req == "stopped":
|
||||||
|
self.beam_req_running = False
|
||||||
|
|
||||||
|
enable_disable_ucn("UCN", ucn_line, self.sectorI_dict["UCN"])
|
||||||
|
|
||||||
|
|
||||||
def receive_ucn_update(value, status, alarm_severity):
|
def receive_ucn_update(value, status, alarm_severity):
|
||||||
del status, alarm_severity
|
del status, alarm_severity
|
||||||
enable_disable_ucn("UCN", ucn_line, value)
|
enable_disable_ucn("UCN", ucn_line, value)
|
||||||
@@ -249,6 +300,9 @@ class AppGui(QWidget):
|
|||||||
del status, alarm_severity
|
del status, alarm_severity
|
||||||
enable_disable_pk("PK2", pk2_line, value)
|
enable_disable_pk("PK2", pk2_line, value)
|
||||||
|
|
||||||
|
self.gui_header.beam_current_wgt_dict[
|
||||||
|
"UCNQ"].trigger_monitor_str.connect(receive_ucnq_update)
|
||||||
|
|
||||||
self.gui_header.beam_current_wgt_dict[
|
self.gui_header.beam_current_wgt_dict[
|
||||||
"UCN"].trigger_monitor_float.connect(receive_ucn_update)
|
"UCN"].trigger_monitor_float.connect(receive_ucn_update)
|
||||||
self.gui_header.beam_current_wgt_dict[
|
self.gui_header.beam_current_wgt_dict[
|
||||||
@@ -258,6 +312,11 @@ class AppGui(QWidget):
|
|||||||
self.gui_header.beam_current_wgt_dict[
|
self.gui_header.beam_current_wgt_dict[
|
||||||
"PK2"].trigger_monitor_float.connect(receive_pk2_update)
|
"PK2"].trigger_monitor_float.connect(receive_pk2_update)
|
||||||
|
|
||||||
|
pvd = self.cafe.getPV("UCNQ:BEAMREQ:STATUS")
|
||||||
|
self.gui_header.beam_current_wgt_dict[
|
||||||
|
"UCNQ"].trigger_monitor_str.emit(
|
||||||
|
pvd.value[0], pvd.status, pvd.alarmSeverity)
|
||||||
|
|
||||||
# Not required any longer
|
# Not required any longer
|
||||||
|
|
||||||
@Slot(int, str, object)
|
@Slot(int, str, object)
|
||||||
@@ -358,9 +417,17 @@ class AppGui(QWidget):
|
|||||||
val_now = self.sector_designated_magnet_values_dict[sector][pv]
|
val_now = self.sector_designated_magnet_values_dict[sector][pv]
|
||||||
val_standby = self.sector_designated_magnet_standby_dict[sector][pv]
|
val_standby = self.sector_designated_magnet_standby_dict[sector][pv]
|
||||||
#print(sector, val_now, val_standby)
|
#print(sector, val_now, val_standby)
|
||||||
if abs(val_now) > (1.2 * abs(val_standby)):
|
if sector == "UCN":
|
||||||
is_standby = False
|
is_standby = False
|
||||||
break
|
if not (abs(val_now) > (1.2 * abs(val_standby))):
|
||||||
|
is_standby = True
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
if abs(val_now) > (1.2 * abs(val_standby)):
|
||||||
|
is_standby = False
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
with self.lock:
|
with self.lock:
|
||||||
if not is_standby:
|
if not is_standby:
|
||||||
@@ -981,6 +1048,7 @@ class AppGui(QWidget):
|
|||||||
|
|
||||||
hbox.setSpacing(10)
|
hbox.setSpacing(10)
|
||||||
hbox.setAlignment(Qt.AlignTop)
|
hbox.setAlignment(Qt.AlignTop)
|
||||||
|
|
||||||
qw = QWidget()
|
qw = QWidget()
|
||||||
qw.setLayout(hbox)
|
qw.setLayout(hbox)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user