update in table writes to LASTPWR

This commit is contained in:
2023-06-02 14:11:55 +02:00
parent e3900c8b74
commit bcab5267fa
2 changed files with 54 additions and 18 deletions

View File

@@ -87,7 +87,7 @@
-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", "AK1","AK2"]
"iocDevice" : ["ABT", "ABK1","ABK2"]
},
"Parameters":{

View File

@@ -71,8 +71,12 @@ class AppGui(QWidget):
self.I_min = 1.0
sec_state_list = ['SEC-IP2:STATE','SEC-IW2:STATE','SEC-PK1:STATE','SEC-PK2:STATE',
'SEC-SINQ:STATE','SEC-UCN:STATE']
self.cafe.openPrepare()
self.cafe.open(['HUSH:LASTPWR','HUSH:TOTPWR','HUSH:LASTSAVE','HUSH:TOTSAVE'])
self.cafe.open(sec_state_list)
self.cafe.openNowAndWait(0.1)
@@ -152,8 +156,27 @@ class AppGui(QWidget):
self.gui_header.beam_current_wgt_dict[
"PK2"].trigger_monitor_float.connect(receive_pk2_update)
#self.cafe.monitor("MWC2:IST:2", cb)
#print(dir(self.gui_header.header_wgt.layout().widget()), flush=True)
def receive_sec_state(handle, pv, pvdata):
#print(pv)
#pvdata.show()
pvsplit = pv.split(":")
secsplit = pvsplit[0].split("SEC-")
sec = secsplit[1]
if pvdata.value[0] == 'ON':
#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)
else:
#print("sec-OFF", secsplit[1], flush=True)
self.table_sol_dict[sec].init_value_button.setEnabled(False)
self.table_pwr_dict[sec].init_value_button.setEnabled(False)
#print("sec", secsplit[1], flush=True)
for state in sec_state_list:
self.cafe.monitor(state, receive_sec_state)
def group_sector_status(self):
@@ -202,6 +225,7 @@ class AppGui(QWidget):
for i, sector in enumerate(self.settings.data["header"][idx:]):
a, b, c, d, e, f = self.sector_status(sector)
a.setContentsMargins(2, 0, 0, 0)
qgrid.addWidget(a, i+1, 0, 1, 1)
qgrid.addWidget(b, i+1, 1, 1, 1)
qgrid.addWidget(c, i+1, 2, 1, 1)
@@ -216,9 +240,9 @@ class AppGui(QWidget):
qtot = QLabel("Total:")
f = qtot.font()
f.setPixelSize(13)
qtot.setFont(f)
fnt = qtot.font()
fnt.setPixelSize(13)
qtot.setFont(fnt)
qgrid.addWidget(qtot, _row+1, 0, 1, 1)
qgrid.addWidget(
CAQLineEdit(self, pv_name="HUSH:LASTPWR", show_units=True),
@@ -239,7 +263,12 @@ class AppGui(QWidget):
qw.setContentsMargins(9, 9, 9, 9)
qw.setObjectName("OUTER")
qw.setLayout(qgrid)
qw.setFixedWidth(490) #480
qw.setFixedWidth(496) #480
#for column_no in range(0, 5):
# qgrid.itemAtPosition(1, column_no).widget().setStyleSheet("QWidget { background: lightblue; }") #addStyleName(
#item = qgrid.itemAt(2) #.widget().setStyleSheet("QLabel { background-color: green }")
#item.widget().setStyleSheet("background-color: green") #widgets on grid from left to right starting at top rtow
return qw
@@ -278,17 +307,17 @@ class AppGui(QWidget):
#print("device", device, flush=True)
def cb_outtime(handle, pv, pvdata):
_delta = "{}".format(str(timedelta(seconds=(pvdata.value[0]))))
if ", " in _delta:
_split = _delta.split(", ")
if len(_split[1]) == len("0:00:00"):
_delta = _split[0] + ", " + _split[1]
if 'days,' in _delta:
_delta = _delta.replace("days,", "d")
elif 'day,' in _delta:
_delta = _delta.replace("day,", "d")
try:
self.offtime_dict[pv].setText(_delta)
_delta = "{}".format(str(timedelta(seconds=(pvdata.value[0]))))
if ", " in _delta:
_split = _delta.split(", ")
if len(_split[1]) == len("0:00:00"):
_delta = _split[0] + ", " + _split[1]
if 'days,' in _delta:
_delta = _delta.replace("days,", "d")
elif 'day,' in _delta:
_delta = _delta.replace("day,", "d")
self.offtime_dict[pv].setText(_delta)
except KeyError:
pass
@@ -302,8 +331,10 @@ class AppGui(QWidget):
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)
monitor_callback=cb_outtime, show_units=True)
self.offtime_dict[pv_pwr_timeout] = qptime
qptime.setFixedWidth(104)
@@ -675,6 +706,11 @@ 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"
_sum = sum(table_pwr.get_init_values().values())
#print("SUM up all the values", pv, _sum, flush=True)
stat = self.cafe.set(pv, _sum)
self.check_status(pv, stat, _line())
def on_init_update():
table_pwr.init_value_button.setEnabled(False)