if magnets on standby diable update
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
hush_devl.sh
|
||||
reset_lis
|
||||
*.*~
|
||||
*.*-*
|
||||
*.*+*
|
||||
|
||||
19
end_of_year_reset
Normal file
19
end_of_year_reset
Normal file
@@ -0,0 +1,19 @@
|
||||
caput "ZIP2-HUSH:SEQ-ONOFF" 0
|
||||
caput "ZIP2-HUSH:SEQ-ONOFF" 1
|
||||
caput "ZIP2-HUSH:TOTSAVE" 0
|
||||
caput "ZIW2-HUSH:SEQ-ONOFF" 0
|
||||
caput "ZIW2-HUSH:SEQ-ONOFF" 1
|
||||
caput "ZIW2-HUSH:TOTSAVE" 0
|
||||
caput "ZPK1-HUSH:SEQ-ONOFF" 0
|
||||
caput "ZPK1-HUSH:SEQ-ONOFF" 1
|
||||
caput "ZPK1-HUSH:TOTSAVE" 0
|
||||
caput "ZPK2-HUSH:SEQ-ONOFF" 0
|
||||
caput "ZPK2-HUSH:SEQ-ONOFF" 1
|
||||
caput "ZPK2-HUSH:TOTSAVE" 0
|
||||
caput "ZSINQ-HUSH:SEQ-ONOFF" 0
|
||||
caput "ZSINQ-HUSH:SEQ-ONOFF" 1
|
||||
caput "ZSINQ-HUSH:TOTSAVE" 0
|
||||
caput "ZUCN-HUSH:SEQ-ONOFF" 0
|
||||
caput "ZUCN-HUSH:SEQ-ONOFF" 1
|
||||
caput "ZUCN-HUSH:TOTSAVE" 0
|
||||
caput "ZHIPA-HUSH:TOTSAVE" 0
|
||||
16
hush.json
16
hush.json
@@ -9,6 +9,8 @@
|
||||
"hdf": {
|
||||
"destination" : "./"
|
||||
},
|
||||
|
||||
|
||||
"IP2":{
|
||||
"standby": [-10.0025, 10.0025, 10.0025, 0.05, 0.05, 40.000, 0.05, 0.005,
|
||||
10.0025, -10.0025, 10.0025, 0.1392, -25.006, 0.05, 0.05, 2.175,
|
||||
@@ -22,7 +24,7 @@
|
||||
1.487, 0.885, 0.028, 0.000, 8.026, 0.001, 0.000, 0.776,
|
||||
0.006, 0.496, 0.237, 0.006, 0.013, 0.002, 0.003, 0.233,
|
||||
0.187],
|
||||
"iocDevice" : ["AYB", "AYD","QYA7"]
|
||||
"iocDevice" : ["AYB", "AYD", "QYA7"]
|
||||
},
|
||||
"IW2":{
|
||||
"standby": [-5.001, 5.001, 0.05, -5.001, 5.001, 5.001, -5.001, 0.05,
|
||||
@@ -40,7 +42,7 @@
|
||||
0.000, 0.457, 1.264, 40.576, 2.030, 37.721, 0.000, 0.622,
|
||||
0.642, 0.117, 0.883, 0.015, 57.955, 0.002, 0.042, 0.000,
|
||||
82.413, 119.657],
|
||||
"iocDevice" : ["AXD", "AXE","ANC"]
|
||||
"iocDevice" : ["AXD", "AXE", "ANC"]
|
||||
},
|
||||
"PK1":{
|
||||
"standby": [56.791, 0.05, -2.0005, 2.0005, 0.05, 0.05, 44.9525, -2.0005,
|
||||
@@ -49,7 +51,7 @@
|
||||
-13.558, -70.330, 89.133, -85.226, 7.834, -20.279, 1096.418],
|
||||
"pwrref" : [181.888, 0.001, 0.081, 0.003, 0.079, 0.104, 125.121, 0.003,
|
||||
0.037, 0.148, 1.743, 1.531, 0.013, 0.088, 26.241],
|
||||
"iocDevice" : ["AHB", "AHC","ABS"]
|
||||
"iocDevice" : ["AHC", "QHTC5", "ABS"]
|
||||
},
|
||||
|
||||
"PK2":{
|
||||
@@ -65,7 +67,7 @@
|
||||
75.620, 5.467, 5.567, 0.042, 1.187, 14.101, 40.852, 12.158,
|
||||
0.001, 0.021, 0.002, 0.675, 6.471, 33.538, 15.411, 42.646,
|
||||
0.000, 42.081, 62.808, 0.000],
|
||||
"iocDevice" : ["AHD1", "AHD2","AHL"]
|
||||
"iocDevice" : ["AHD1", "AHD2", "AHL"]
|
||||
},
|
||||
|
||||
"SINQ":{
|
||||
@@ -87,8 +89,12 @@
|
||||
-220.024, 404.640, 83.663, -65.592, -11.409, 406.150, 317.827],
|
||||
"pwrref" : [7.037, 2.681, 2.353, 0.074, 0.106, 0.002, 0.006, 4.301,
|
||||
4.091, 45.333, 1.385, 0.857, 0.064, 44.196, 8.692],
|
||||
"iocDevice" : ["ABT", "ABK1","ABK2"]
|
||||
"iocDevice" : ["ABT", "ABK1", "ABK2"]
|
||||
},
|
||||
"RestoreUCN":{
|
||||
"PV" : ["ZHIPA-HUSH:RESTORE-UCN-ABK1", "ZHIPA-HUSH:RESTORE-UCN-ABK2"],
|
||||
"value" : [404.418, 405.291]
|
||||
},
|
||||
|
||||
"Parameters":{
|
||||
|
||||
|
||||
6
hush.py
6
hush.py
@@ -112,9 +112,9 @@ class StartMain(BaseWindow):
|
||||
|
||||
sector = ["<br>IP2: ","<br>IW2: ","<br>PK1: ", "<br>PK2: ","<br>SNQ: ",
|
||||
"<br>UCN: ","<br>------------------<br>Tot: "]
|
||||
pvlist = ['SEC-IP2:TOTSAVE', 'SEC-IW2:TOTSAVE', 'SEC-PK1:TOTSAVE',
|
||||
'SEC-PK2:TOTSAVE', 'SEC-SINQ:TOTSAVE', 'SEC-UCN:TOTSAVE',
|
||||
'HUSH:TOTSAVE']
|
||||
pvlist = ['ZIP2-HUSH:TOTSAVE', 'ZIW2-HUSH:TOTSAVE', 'ZPK1-HUSH:TOTSAVE',
|
||||
'ZPK2-HUSH:TOTSAVE', 'ZSINQ-HUSH:TOTSAVE', 'ZUCN-HUSH:TOTSAVE',
|
||||
'ZHIPA-HUSH:TOTSAVE']
|
||||
|
||||
value, stat, stat_list =self.cafe.getScalarList(pvlist, cacheFlag=True)
|
||||
|
||||
|
||||
10
hush.sh
10
hush.sh
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
cd /hipa/bd/applications/hush/hla/1.0.0
|
||||
cd /hipa/bd/applications/hush/hla/1.2.0
|
||||
|
||||
# For use if script is sourced rather than executed
|
||||
appNameDefault="hush.sh"
|
||||
@@ -35,15 +35,17 @@ fi
|
||||
|
||||
echo "PYTHON_VERSION $PYTHON_VERSION"
|
||||
|
||||
|
||||
_EPICS_HOST_ARCH=${EPICS_HOST_ARCH}
|
||||
_EPICS_HOST_ARCH=${RHREL}-x86_64
|
||||
#_EPICS_HOST_ARCH=${EPICS_HOST_ARCH}
|
||||
. /opt/gfa/python $PYTHON_VERSION
|
||||
|
||||
#/sf/bd/applications/OnlineModel/current/PythonModule:/sf/bd/applications/OnlineModel/current
|
||||
#/sf/bd/applications/OnlineModel/default/scripts/VA:
|
||||
|
||||
#C_EXT version for Py 3.7:
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.18.0/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.6.0
|
||||
|
||||
export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/${_EPICS_HOST_ARCH}:/hipa/bd/applications/deps/apps4ops/v1.6.0
|
||||
#export PYTHONPATH=.:/opt/gfa/cafe/python/pycafe/cafe-1.19.3/lib/RHEL8-x86_64:/hipa/bd/applications/deps/apps4ops/v1.6.0
|
||||
|
||||
#:/afs/psi.ch/intranet/SLS/Controls/BD/pyqtacc/v1.5.2
|
||||
|
||||
|
||||
Binary file not shown.
261
src/gui.py
261
src/gui.py
@@ -43,6 +43,8 @@ class AppGui(QWidget):
|
||||
self.parent = parent
|
||||
self.cafe = self.parent.cafe
|
||||
self.cyca = self.parent.cyca
|
||||
|
||||
self.send_to_log_window = self.parent.send_to_log_window
|
||||
self.gui_frame = self.parent.gui_frame
|
||||
self.gui_header = self.parent.gui_header
|
||||
self.font_gui = self.parent.gui_frame.font_gui
|
||||
@@ -70,15 +72,23 @@ class AppGui(QWidget):
|
||||
self.offtime_dict = {}
|
||||
|
||||
self.I_min = 1.0
|
||||
self.with_rf = False
|
||||
|
||||
sec_state_list = ['SEC-IP2:STATE','SEC-IW2:STATE','SEC-PK1:STATE','SEC-PK2:STATE',
|
||||
'SEC-SINQ:STATE','SEC-UCN:STATE']
|
||||
#sec_state_list = ['SEC-IP2:STATE','SEC-IW2:STATE','SEC-PK1:STATE',
|
||||
# 'SEC-PK2:STATE','SEC-SINQ:STATE','SEC-UCN:STATE']
|
||||
|
||||
sec_state_list = ['ZIP2-HUSH:STATE', 'ZIW2-HUSH:STATE',
|
||||
'ZPK1-HUSH:STATE', 'ZPK2-HUSH:STATE',
|
||||
'ZSINQ-HUSH:STATE', 'ZUCN-HUSH:STATE']
|
||||
|
||||
self.cafe.openPrepare()
|
||||
self.cafe.open(['HUSH:LASTPWR','HUSH:TOTPWR','HUSH:LASTSAVE','HUSH:TOTSAVE'])
|
||||
self.cafe.open(['ZHIPA-HUSH:LASTPWR','ZHIPA-HUSH:TOTPWR',
|
||||
'ZHIPA-HUSH:LASTSAVE', 'ZHIPA-HUSH:TOTSAVE'])
|
||||
self.cafe.open(sec_state_list)
|
||||
self.cafe.open("UCN:BEAMREQ:STATUS")
|
||||
self.cafe.openNowAndWait(0.1)
|
||||
|
||||
self.cafe.monitor("UCNQ:BEAMREQ:STATUS")
|
||||
|
||||
wgt = self.group_sector_qtabwidget()
|
||||
self.gui_frame.measurement_layout.addWidget(
|
||||
@@ -107,11 +117,44 @@ class AppGui(QWidget):
|
||||
pk1_line = ["IW2"]
|
||||
pk2_line = ["IW2"]
|
||||
|
||||
def enable_disable_end(sector, sector_line, value):
|
||||
self.sectorI_dict[sector] = value
|
||||
def enable_disable_ucn(sect, sector_line, value):
|
||||
self.sectorI_dict[sect] = value
|
||||
|
||||
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
|
||||
|
||||
|
||||
for sector in sector_line:
|
||||
if self.sectorI_dict['UCN'] > self.I_min or self.sectorI_dict[
|
||||
'SINQ'] > self.I_min:
|
||||
beam_req_flag = True
|
||||
if sector == 'UCN':
|
||||
beam_req_flag = beam_req_running
|
||||
|
||||
#if self.sectorI_dict['UCN'] > self.I_min or self.sectorI_dict[
|
||||
# 'SINQ'] > self.I_min:
|
||||
if self.sectorI_dict[sector] > self.I_min or beam_req_flag:
|
||||
if self.table_sol_dict[
|
||||
sector].standby_value_button.isEnabled():
|
||||
self.table_sol_dict[
|
||||
sector].standby_value_button.setEnabled(False)
|
||||
|
||||
else:
|
||||
if not self.table_sol_dict[
|
||||
sector].standby_value_button.isEnabled():
|
||||
self.table_sol_dict[
|
||||
sector].standby_value_button.setEnabled(True)
|
||||
|
||||
|
||||
def enable_disable_end(sect, sector_line, value):
|
||||
self.sectorI_dict[sect] = value
|
||||
for sector in sector_line:
|
||||
#if self.sectorI_dict['UCN'] > self.I_min or self.sectorI_dict[
|
||||
# 'SINQ'] > self.I_min:
|
||||
if self.sectorI_dict[sector] > self.I_min:
|
||||
if self.table_sol_dict[
|
||||
sector].standby_value_button.isEnabled():
|
||||
self.table_sol_dict[
|
||||
@@ -121,9 +164,10 @@ class AppGui(QWidget):
|
||||
sector].standby_value_button.isEnabled():
|
||||
self.table_sol_dict[
|
||||
sector].standby_value_button.setEnabled(True)
|
||||
|
||||
|
||||
def enable_disable_pk(sector, sector_line, value):
|
||||
self.sectorI_dict[sector] = value
|
||||
def enable_disable_pk(sect, sector_line, value):
|
||||
self.sectorI_dict[sect] = value
|
||||
for sector in sector_line:
|
||||
if self.sectorI_dict['PK1'] > self.I_min or self.sectorI_dict[
|
||||
'PK2'] > self.I_min:
|
||||
@@ -136,10 +180,11 @@ class AppGui(QWidget):
|
||||
sector].standby_value_button.isEnabled():
|
||||
self.table_sol_dict[
|
||||
sector].standby_value_button.setEnabled(True)
|
||||
|
||||
|
||||
|
||||
def receive_ucn_update(value, status, alarm_severity):
|
||||
enable_disable_end('UCN', ucn_line, value)
|
||||
enable_disable_ucn('UCN', ucn_line, value)
|
||||
def receive_sinq_update(value, status, alarm_severity):
|
||||
enable_disable_end('SINQ', sinq_line, value)
|
||||
def receive_pk1_update(value, status, alarm_severity):
|
||||
@@ -158,12 +203,43 @@ class AppGui(QWidget):
|
||||
|
||||
|
||||
def receive_sec_state(handle, pv, pvdata):
|
||||
#print(pv)
|
||||
#pvdata.show()
|
||||
pvsplit = pv.split(":")
|
||||
secsplit = pvsplit[0].split("SEC-")
|
||||
|
||||
pvsplit = pv.split("-")
|
||||
secsplit = pvsplit[0].split("Z")
|
||||
sec = secsplit[1]
|
||||
if pvdata.value[0] == 'ON':
|
||||
|
||||
#But is SHIFTTYPE CORRECT?
|
||||
#is_shift_type_ok = True
|
||||
##shift_type = self.cafe.getCache("ZORG:SHIFT-TYPE", 'str')
|
||||
##if shift_type is not None:
|
||||
## if shift_type not in ['Produktion', 'Strahlentwicklung']:
|
||||
## is_shift_type_ok = False
|
||||
def already_in_standby():
|
||||
devices = self.settings.data[sec]["iocDevice"]
|
||||
pv_list = []
|
||||
for magnet in devices:
|
||||
pv_list.append(magnet + ":SOL:2")
|
||||
value_list, status, status_list = self.cafe.getScalarList(
|
||||
pv_list, cacheFlag=True)
|
||||
print("valuelist", pv_list, value_list)
|
||||
if status != self.cyca.ICAFE_NORMAL:
|
||||
self.check_status_list(pv_list, status_list, _line())
|
||||
#get standby values:
|
||||
standby_value_list = []
|
||||
for magnet in devices:
|
||||
idx = self.settings.data[sec]["device"].index(magnet)
|
||||
standby_value = self.settings.data[sec]["standby"][idx]
|
||||
standby_value_list.append(standby_value)
|
||||
|
||||
in_standby = True
|
||||
for value, standby in zip(value_list, standby_value_list):
|
||||
if abs(value) < abs(standby)*0.8 or abs(value) > abs(standby)*1.2:
|
||||
in_standby = False
|
||||
break
|
||||
print("is_standby", in_standby, flush=True)
|
||||
return in_standby
|
||||
|
||||
if pvdata.value[0] == 'ON' and not already_in_standby():
|
||||
#print("sec-ON", secsplit[1], flush=True)
|
||||
self.table_sol_dict[sec].init_value_button.setEnabled(True)
|
||||
self.table_pwr_dict[sec].init_value_button.setEnabled(True)
|
||||
@@ -175,7 +251,8 @@ class AppGui(QWidget):
|
||||
#print("sec", secsplit[1], flush=True)
|
||||
|
||||
for state in sec_state_list:
|
||||
self.cafe.monitor(state, receive_sec_state)
|
||||
self.cafe.monitor(state, receive_sec_state)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -245,16 +322,16 @@ class AppGui(QWidget):
|
||||
qtot.setFont(fnt)
|
||||
qgrid.addWidget(qtot, _row+1, 0, 1, 1)
|
||||
qgrid.addWidget(
|
||||
CAQLineEdit(self, pv_name="HUSH:LASTPWR", show_units=True),
|
||||
CAQLineEdit(self, pv_name="ZHIPA-HUSH:LASTPWR", show_units=True),
|
||||
_row+1, 1, 1, 1)
|
||||
qgrid.addWidget(
|
||||
CAQLineEdit(self, pv_name="HUSH:TOTPWR", show_units=True),
|
||||
CAQLineEdit(self, pv_name="ZHIPA-HUSH:TOTPWR", show_units=True),
|
||||
_row+1, 2, 1, 1)
|
||||
qgrid.addWidget(
|
||||
CAQLineEdit(self, pv_name="HUSH:LASTSAVE", show_units=False),
|
||||
CAQLineEdit(self, pv_name="ZHIPA-HUSH:LASTSAVE", show_units=False),
|
||||
_row+1, 3, 1, 1)
|
||||
qgrid.addWidget(
|
||||
CAQLineEdit(self, pv_name="HUSH:TOTSAVE", show_units=False),
|
||||
CAQLineEdit(self, pv_name="ZHIPA-HUSH:TOTSAVE", show_units=False),
|
||||
_row+1, 5, 1, 1)
|
||||
|
||||
qgrid.setContentsMargins(9, 20, 9, 9)
|
||||
@@ -277,7 +354,8 @@ class AppGui(QWidget):
|
||||
def sector_status(self, sector):
|
||||
'''Create each sector line for inclusion into group
|
||||
'''
|
||||
device = "SEC-" + sector
|
||||
#device = "SEC-" + sector
|
||||
device = "Z" + sector + "-HUSH"
|
||||
#Qlabel
|
||||
qsector = QLabel(sector+":")
|
||||
f = qsector.font()
|
||||
@@ -307,6 +385,8 @@ class AppGui(QWidget):
|
||||
|
||||
#print("device", device, flush=True)
|
||||
def cb_outtime(handle, pv, pvdata):
|
||||
#print(handle, pv, flush=True)
|
||||
#pvdata.show()
|
||||
try:
|
||||
_delta = "{}".format(str(timedelta(seconds=(pvdata.value[0]))))
|
||||
if ", " in _delta:
|
||||
@@ -316,8 +396,10 @@ class AppGui(QWidget):
|
||||
if 'days,' in _delta:
|
||||
_delta = _delta.replace("days,", "d")
|
||||
elif 'day,' in _delta:
|
||||
_delta = _delta.replace("day,", "d")
|
||||
self.offtime_dict[pv].setText(_delta)
|
||||
_delta = _delta.replace("day,", "d")
|
||||
#print(_delta, flush=True)
|
||||
self.offtime_dict[pv].setText(_delta)
|
||||
#print("after setText:", _delta, flush=True)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
@@ -329,14 +411,10 @@ class AppGui(QWidget):
|
||||
qpnow = CAQLineEdit(self, pv_name=pv_pwr_tot, show_units=False)
|
||||
qpsave = CAQLineEdit(self, pv_name=pv_pwr_saved, show_units=False)
|
||||
qptotsave = CAQLineEdit(self, pv_name=pv_pwr_totsave, show_units=False)
|
||||
|
||||
qptime = CAQLineEdit(self, pv_name=pv_pwr_timeout,
|
||||
monitor_callback=cb_outtime, show_units=True)
|
||||
self.offtime_dict[pv_pwr_timeout] = qptime
|
||||
|
||||
|
||||
|
||||
|
||||
qptime.setFixedWidth(104)
|
||||
|
||||
#qtdis = QBasicTimer()
|
||||
@@ -401,18 +479,19 @@ class AppGui(QWidget):
|
||||
except ValueError:
|
||||
CR1IN_idx = 3
|
||||
|
||||
table_pwr = [None] * 2
|
||||
table_pwr = [None] * 1 ##2
|
||||
table_pwr[0] = CAQTableWidget(
|
||||
self, pv_list=pv_dict['IST:2'][0:CR1IN_idx], show_units=False,
|
||||
notify_freq_hz=0, suffix = "MW",
|
||||
notify_unison=False, scale_factor=0.001, show_timestamp=False,
|
||||
init_column=True, pv_list_show=device_list[0:CR1IN_idx])
|
||||
|
||||
table_pwr[1] = CAQTableWidget(
|
||||
self, pv_list=pv_dict['IST:2'][CR1IN_idx:], show_units=False,
|
||||
notify_freq_hz=0, suffix = "MW",
|
||||
notify_unison=False, scale_factor=0.001, show_timestamp=False,
|
||||
init_column=True, pv_list_show=device_list[CR1IN_idx:])
|
||||
|
||||
|
||||
#table_pwr[1] = CAQTableWidget(
|
||||
# self, pv_list=pv_dict['IST:2'][CR1IN_idx:], show_units=False,
|
||||
# notify_freq_hz=0, suffix = "MW",
|
||||
# notify_unison=False, scale_factor=0.001, show_timestamp=False,
|
||||
# init_column=True, pv_list_show=device_list[CR1IN_idx:])
|
||||
|
||||
for tab in table_pwr:
|
||||
header_item = QTableWidgetItem()
|
||||
@@ -448,7 +527,7 @@ class AppGui(QWidget):
|
||||
|
||||
box = QVBoxLayout()
|
||||
box.addWidget(table_pwr[0])
|
||||
box.addWidget(table_pwr[1])
|
||||
##box.addWidget(table_pwr[1])
|
||||
box.setAlignment(Qt.AlignTop | Qt.AlignCenter)
|
||||
box.setSpacing(10)
|
||||
qw = QWidget()
|
||||
@@ -510,33 +589,98 @@ class AppGui(QWidget):
|
||||
sector = target.sector
|
||||
_table = self.table_sol_dict[sector]
|
||||
|
||||
def is_update_enabled():
|
||||
'''Check if update buttons are enabled
|
||||
if NOT, then do not allow inital values values to be updated"
|
||||
'''
|
||||
|
||||
if self.table_pwr_dict[sector].init_value_button.isEnabled() \
|
||||
and _table.init_value_button.isEnabled():
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def write_to_restore_ucn():
|
||||
if sector != 'UCN':
|
||||
return
|
||||
restore_pvs = self.settings.data['RestoreUCN']['PV']
|
||||
default_values = self.settings.data['RestoreUCN']['value']
|
||||
#print(restore_pvs, default_values, flush=True)
|
||||
values_dict = self.table_sol_dict['UCN'].get_init_values()
|
||||
#print(values_dict, flush=True)
|
||||
values = []
|
||||
pvs = []
|
||||
for pv, val in zip(restore_pvs, default_values):
|
||||
pv_indict = pv[-4:] + ":SOL:2"
|
||||
try:
|
||||
_val = values_dict[pv_indict]
|
||||
if _val > 0.8 * val:
|
||||
pvs.append(pv)
|
||||
values.append(_val)
|
||||
except KeyError as ex:
|
||||
print("ex", ex)
|
||||
|
||||
|
||||
if pvs:
|
||||
status, status_list = self.cafe.setScalarList(pvs, values)
|
||||
if status != self.cyca.ICAFE_NORMAL:
|
||||
self.send_to_log_window(pv_list=pvs, status=status,
|
||||
status_list=status_list,
|
||||
operation='set', pymodule=_pymodule,
|
||||
line=_line())
|
||||
|
||||
|
||||
if sector == 'UCN':
|
||||
write_to_restore_ucn()
|
||||
|
||||
|
||||
QApplication.processEvents(QEventLoop.AllEvents, 1.0)
|
||||
|
||||
#Do NOT do updates if in standby mode!
|
||||
#Update button is disabled when in standby
|
||||
|
||||
|
||||
#disenable widgets to avoid circular behaviour since
|
||||
#updates of SOL also update PWR, and vice-versa
|
||||
self.table_pwr_dict[sector].init_value_button.setEnabled(False)
|
||||
_table.init_value_button.click()
|
||||
time.sleep(0.05)
|
||||
self.table_pwr_dict[sector].init_value_button.setEnabled(True)
|
||||
|
||||
_table.init_value_button.setEnabled(False)
|
||||
self.table_pwr_dict[sector].init_value_button.click()
|
||||
time.sleep(0.05)
|
||||
self.table_sol_dict[sector].init_value_button.setEnabled(True)
|
||||
|
||||
QApplication.processEvents(QEventLoop.AllEvents, 1.0)
|
||||
#Do not click if already on standby!!
|
||||
|
||||
update_enabled = is_update_enabled()
|
||||
|
||||
if update_enabled:
|
||||
self.table_pwr_dict[sector].init_value_button.setEnabled(False)
|
||||
_table.init_value_button.click()
|
||||
time.sleep(0.05)
|
||||
self.table_pwr_dict[sector].init_value_button.setEnabled(True)
|
||||
|
||||
_table.init_value_button.setEnabled(False)
|
||||
self.table_pwr_dict[sector].init_value_button.click()
|
||||
time.sleep(0.05)
|
||||
self.table_sol_dict[sector].init_value_button.setEnabled(True)
|
||||
|
||||
QApplication.processEvents(QEventLoop.AllEvents, 1.0)
|
||||
|
||||
|
||||
|
||||
if not self.input_parameters['simulation']:
|
||||
if sector == 'UCN':
|
||||
write_to_restore_ucn()
|
||||
status, status_list, pv_list = _table.set_standby_values()
|
||||
|
||||
if status != self.cyca.ICAFE_NORMAL:
|
||||
self.check_status_list(pv_list, status_list, _line())
|
||||
|
||||
pv = 'SEC-' + target.sector + ":STATE"
|
||||
stat = self.cafe.set(pv, 0)
|
||||
self.check_status(pv, stat, _line())
|
||||
|
||||
#Seqeuncer ONLY determines when to go into STANDBY mode
|
||||
#and NOT the HLA
|
||||
##pv = 'Z' + target.sector + "-HUSH:STATE"
|
||||
##stat = self.cafe.set(pv, 0)
|
||||
##self.check_status(pv, stat, _line())
|
||||
|
||||
#Disable because _table.set_standby_values() enables it
|
||||
if not update_enabled:
|
||||
self.table_pwr_dict[sector].init_value_button.setEnabled(False)
|
||||
_table.init_value_button.setEnabled(False)
|
||||
|
||||
|
||||
def on_sector_restore(self):
|
||||
target = self.sender()
|
||||
sector = target.sector
|
||||
@@ -548,15 +692,19 @@ class AppGui(QWidget):
|
||||
if status != self.cyca.ICAFE_NORMAL:
|
||||
self.check_status_list(pv_list, status_list, _line())
|
||||
|
||||
pv = 'SEC-' + target.sector + ":STATE"
|
||||
stat = self.cafe.set(pv, 1)
|
||||
self.check_status(pv, stat, _line())
|
||||
|
||||
#Seqeuncer ONLY determines when to go into STANDBY mode
|
||||
#and NOT the HLA
|
||||
#pv = 'Z' + target.sector + "-HUSH:STATE"
|
||||
#stat = self.cafe.set(pv, 1)
|
||||
#self.check_status(pv, stat, _line())
|
||||
|
||||
_table_pwr = self.table_pwr_dict[sector]
|
||||
row_pwr_dict = _table_pwr.get_init_values()
|
||||
sum_pwr = sum(list(row_pwr_dict.values()))
|
||||
pv_last_pwr = 'SEC-' + target.sector + ":LASTPWR"
|
||||
|
||||
#pv_last_pwr = 'SEC-' + target.sector + ":LASTPWR"
|
||||
pv_last_pwr = 'Z' + target.sector + "-HUSH:LASTPWR"
|
||||
|
||||
stat = self.cafe.set(pv_last_pwr, sum_pwr)
|
||||
self.check_status(pv_last_pwr, stat, _line())
|
||||
|
||||
@@ -706,7 +854,8 @@ class AppGui(QWidget):
|
||||
table_pwr.init_value_button.click()
|
||||
time.sleep(0.1)
|
||||
table_sol.init_value_button.setEnabled(True)
|
||||
pv = "SEC-" + table_pwr.init_value_button.sector + ":LASTPWR"
|
||||
#pv = "SEC-" + table_pwr.init_value_button.sector + ":LASTPWR"
|
||||
pv = "Z" + table_pwr.init_value_button.sector + "-HUSH:LASTPWR"
|
||||
_sum = sum(table_pwr.get_init_values().values())
|
||||
#print("SUM up all the values", pv, _sum, flush=True)
|
||||
stat = self.cafe.set(pv, _sum)
|
||||
|
||||
Reference in New Issue
Block a user