diff --git a/FRTND_E/active_frntd_e.py b/FRTND_E/active_frntd_e.py index 174a749ba118ab7a459e81d3f8aa08a876893934..64e7363363a96a4aecc9438199d9230f049d911a 100644 --- a/FRTND_E/active_frntd_e.py +++ b/FRTND_E/active_frntd_e.py @@ -15,13 +15,11 @@ # -from PyQt4 import QtCore -from PyQt4 import QtGui +from PyQt4 import QtCore, QtGui from ui_frntd_e import * import Blfe import tango - class Worker(QtCore.QThread): def __init__(self, parent=None): QtCore.QThread.__init__(self, parent) @@ -31,13 +29,37 @@ class Worker(QtCore.QThread): # tango device for syrmep - geco device self.syrmepstopper = 0 self.syrmepstopperindex = 0 - self.stopper_value = -1 # 0: closed , 1:open, -1 : unknown + self.syrmep_stopper_value = -1 # 0: closed , 1:open, -1 : unknown + self.nanoescastopper = 0 + self.nanoescashutterindex = 0 + self.nanoesca_stopper_value = -1 # 0: closed , 1:open, -1 : unknown + + self.nanoescashutter = 0 + self.nanoescashutterindex = 0 + self.nanoesca_stopper_value = -1 # 0: closed , 1:open, -1 : unknown + try: self.syrmepstopper = tango.DeviceProxy( "syrmep-control-01.blcs.elettra.trieste.it:20000/syrmep/beamline/geco" ) except tango.DevFailed as e: - self.syrmepstopper = 0 + self.nanoescastopper = 0 + # tango device for nanoesca - geco device + self.nanoescastopper = 0 + self.nanoescastopperindex = 0 + self.nanoesca_stopper_value = -1 # 0: closed , 1:open, -1 : unknown + try: + self.nanoescastopper = tango.DeviceProxy( + "bl014-control-01.blcs.elettra.trieste.it:20000/bl014/beamline/geco" + + ) + except tango.DevFailed as e: + self.nanoescastopper = 0 + + self.nanoescashutter = 0 + self.nanoescashutterindex = 0 + self.nanoesca_shutter_value = -1 # 0: closed , 1:open, -1 : unknown + self.nanoescashutter=self.nanoescastopper # the tango device is the same of the stopper def run(self): if self.mode == "update": @@ -50,9 +72,15 @@ class Worker(QtCore.QThread): self.emit(QtCore.SIGNAL("UpdateThread(PyQt_PyObject)"), self.BL) # read tango status try: - self.stopper_value = self.syrmepstopper.r_bs4_v + self.syrmep_stopper_value = self.syrmepstopper.r_bs4_v + except tango.DevFailed as e: + self.syrmep_stopper_value = -1 + try: + self.nanoesca_stopper_value = self.nanoescastopper.read_attribute("STFE_S01-04.01").value + self.nanoesca_shutter_value = self.nanoescashutter.read_attribute("SHFE_S01-04.01").value except tango.DevFailed as e: - self.stopper_value = -1 + self.nanoesca_stopper_value = -1 + self.nanoesca_shutter_value = -1 def execute(self): errtable = self.BL.closeall() @@ -74,6 +102,42 @@ class Worker(QtCore.QThread): self.BL, errtable, ) + + #close esca/superesca stopper + try: + self.nanoescastopper.write_attribute("STFE_S01-04.01",0) + except tango.DevFailed as e: + self.emit( + QtCore.SIGNAL("ExecuteError(PyQt_PyObject,PyQt_PyObject)"), + self.BL, + "geco/STFE_S01-04.01", + ) + if errtable is None: + self.emit(QtCore.SIGNAL("ExecuteThread(PyQt_PyObject)"), self.BL) + else: + self.emit( + QtCore.SIGNAL("ExecuteError(PyQt_PyObject,PyQt_PyObject)"), + self.BL, + errtable, + ) + #close esca/superesca stopper + try: + self.nanoescashutter.write_attribute("SHFE_S01-04.01",0) + except tango.DevFailed as e: + self.emit( + QtCore.SIGNAL("ExecuteError(PyQt_PyObject,PyQt_PyObject)"), + self.BL, + "geco/SHFE_S01-04.01", + ) + if errtable is None: + self.emit(QtCore.SIGNAL("ExecuteThread(PyQt_PyObject)"), self.BL) + else: + self.emit( + QtCore.SIGNAL("ExecuteError(PyQt_PyObject,PyQt_PyObject)"), + self.BL, + errtable, + ) + class active_frntd_e(Ui_frntd_e, QtCore.QObject): @@ -123,7 +187,7 @@ class active_frntd_e(Ui_frntd_e, QtCore.QObject): self.redbrush = QtGui.QBrush(QtGui.QColor("red")) self.graybrush = QtGui.QBrush(QtGui.QColor("gray")) n = self.BL.nentries - self.tableWidget.setRowCount(n + 1) + self.tableWidget.setRowCount(n + 3) row = 0 for entry in self.BL.bltable: bname = entry[2] @@ -153,6 +217,48 @@ class active_frntd_e(Ui_frntd_e, QtCore.QObject): self.thread.syrmepstopperindex = row self.syrmepstopperindex = row row = row + 1 + #palette = self.label.palette() + #palette.setBrush(QtGui.QPalette.Window, self.graybrush) + #self.label.setPalette(palette) + #self.label.setAutoFillBackground(1) + #self.label.setText("UNKNOWN") + # ---- + bname = "NanoEsca/Nanospectr." + objname = "geco/STFE_S01-04.01" + stname = "UNKNOWN" + col0 = QtGui.QTableWidgetItem(bname, 0) + col1 = QtGui.QTableWidgetItem(objname, 1) + col2 = QtGui.QTableWidgetItem(stname, 2) + col2.setBackground(self.graybrush) + self.tableWidget.setItem(row, 0, col0) + self.tableWidget.setItem(row, 1, col1) + self.tableWidget.setItem(row, 2, col2) + self.tableWidget.setRowHeight(row, 22) + self.thread.nanoescastopperindex = row + self.nanoescastopperindex = row + + row = row + 1 + + + bname = "NanoEsca/Nanospectr." + objname = "geco/SHFE_S01-04.01" + stname = "UNKNOWN" + col0 = QtGui.QTableWidgetItem(bname, 0) + col1 = QtGui.QTableWidgetItem(objname, 1) + col2 = QtGui.QTableWidgetItem(stname, 2) + col2.setBackground(self.graybrush) + self.tableWidget.setItem(row, 0, col0) + self.tableWidget.setItem(row, 1, col1) + self.tableWidget.setItem(row, 2, col2) + self.tableWidget.setRowHeight(row, 22) + self.thread.nanoescashutterindex = row + self.nanoescashutterindex = row + + row = row + 1 + + + + #---------------------------------------------------------- palette = self.label.palette() palette.setBrush(QtGui.QPalette.Window, self.graybrush) self.label.setPalette(palette) @@ -197,17 +303,52 @@ class active_frntd_e(Ui_frntd_e, QtCore.QObject): # check syrmep tango reading idx = self.thread.syrmepstopperindex item = self.tableWidget.item(idx, 2) - if self.thread.stopper_value == 1: + if self.thread.syrmep_stopper_value == 1: + item.setBackground(self.redbrush) + item.setText("OPEN") + if self.thread.syrmep_stopper_value == 0: + item.setBackground(self.greenbrush) + item.setText("CLOSED") + if self.thread.syrmep_stopper_value == -1: + item.setBackground(self.graybrush) + item.setText("UNKNOWN") + + #--------------------------------------------- + # check nanoesca stopper tango reading + idx = self.thread.nanoescastopperindex + item = self.tableWidget.item(idx, 2) + if self.thread.nanoesca_stopper_value == 1: + item.setBackground(self.redbrush) + item.setText("OPEN") + if self.thread.nanoesca_stopper_value == 0: + item.setBackground(self.greenbrush) + item.setText("CLOSED") + if self.thread.nanoesca_stopper_value == -1: + item.setBackground(self.graybrush) + item.setText("UNKNOWN") + + + #--------------------------------------------- + + #--------------------------------------------- + # check nanoesca shutter tango reading + idx = self.thread.nanoescashutterindex + item = self.tableWidget.item(idx, 2) + if self.thread.nanoesca_shutter_value == 1: item.setBackground(self.redbrush) item.setText("OPEN") - if self.thread.stopper_value == 0: + if self.thread.nanoesca_shutter_value == 0: item.setBackground(self.greenbrush) item.setText("CLOSED") - if self.thread.stopper_value == -1: + if self.thread.nanoesca_shutter_value == -1: item.setBackground(self.graybrush) item.setText("UNKNOWN") + + + #------------------------------------------------------------------- + all_tango_closed = self.thread.syrmep_stopper_value == 0 and self.thread.nanoesca_stopper_value == 0 and self.thread.nanoesca_shutter_value == 0 palette = self.label.palette() - if mybl.allclosed() == 1 and self.thread.stopper_value == 0: + if mybl.allclosed() == 1 and all_tango_closed : palette.setBrush(QtGui.QPalette.Window, self.greenbrush) self.label.setText("ALL CLOSED") else: @@ -215,6 +356,7 @@ class active_frntd_e(Ui_frntd_e, QtCore.QObject): self.label.setText("OPEN/CLOSED") self.label.setPalette(palette) self.label.setAutoFillBackground(1) + #--------------------------------------------- def slot_do_close(self): # first stop aqcusition thread