113 lines
3.7 KiB
Python
113 lines
3.7 KiB
Python
import os
|
|
|
|
from PyQt4 import QtGui, QtCore, uic
|
|
|
|
from labels import cm
|
|
|
|
base_dir = os.path.dirname(os.path.realpath(__file__))
|
|
|
|
|
|
class SERWindow(QtGui.QWidget):
|
|
def __init__(self, main_window, parent=None):
|
|
QtGui.QWidget.__init__(self, parent)
|
|
uic.loadUi("%s/ui/ser.ui" % base_dir, self)
|
|
|
|
self.main_window = main_window
|
|
self.units = self.main_window.units
|
|
self.addAttribute = lambda dev, attr: self.main_window.addAttribute(dev, attr)
|
|
|
|
self.list_layout = QtGui.QVBoxLayout()
|
|
self.ContentFrame.setLayout(self.list_layout)
|
|
self.liberas = {}
|
|
|
|
def addLibera(self, dev):
|
|
print "[ INFO]: SER: add Libera %s" % dev
|
|
libera = SERWidget(self.main_window, dev)
|
|
self.connect(self, QtCore.SIGNAL("update"), libera.update)
|
|
self.liberas[dev] = libera
|
|
self.list_layout.addWidget(libera)
|
|
|
|
def update(self, cache):
|
|
self.emit(QtCore.SIGNAL("update"), cache)
|
|
|
|
def showEvent(self, evt):
|
|
self.emit(QtCore.SIGNAL("show"))
|
|
evt.accept()
|
|
|
|
def hideEvent(self, evt):
|
|
self.emit(QtCore.SIGNAL("hide"))
|
|
evt.accept()
|
|
|
|
|
|
class SERWidget(QtGui.QWidget):
|
|
def __init__(self, main_window, device, parent=None):
|
|
QtGui.QWidget.__init__(self, parent)
|
|
uic.loadUi("%s/ui/serwidget.ui" % base_dir, self)
|
|
|
|
self.main_window = main_window
|
|
self.units = self.main_window.units
|
|
self.addAttribute = lambda dev, attr: self.main_window.addAttribute(dev, attr)
|
|
|
|
self.device = device
|
|
|
|
self.IDLabel.setText(device)
|
|
|
|
self.M1IDLabel.setModel(device, "SERM1Id")
|
|
self.M1OffLabel.setModel(device, "SERM1Output")
|
|
self.M1OffLabel.setColorMap(cm.SER_OFF)
|
|
self.M1ManualLabel.setModel(device, "SERM1Output")
|
|
self.M1ManualLabel.setColorMap(cm.SER_MANUAL)
|
|
self.M1FOFBLabel.setModel(device, "SERM1Output")
|
|
self.M1FOFBLabel.setColorMap(cm.SER_FOFB)
|
|
self.M1FOFBValueLabel.setModel(device, "SERM1FOFB")
|
|
|
|
self.M2IDLabel.setModel(device, "SERM2Id")
|
|
self.M2OffLabel.setModel(device, "SERM2Output")
|
|
self.M2OffLabel.setColorMap(cm.SER_OFF)
|
|
self.M2ManualLabel.setModel(device, "SERM2Output")
|
|
self.M2ManualLabel.setColorMap(cm.SER_MANUAL)
|
|
self.M2FOFBLabel.setModel(device, "SERM2Output")
|
|
self.M2FOFBLabel.setColorMap(cm.SER_FOFB)
|
|
self.M2FOFBValueLabel.setModel(device, "SERM2FOFB")
|
|
|
|
self.M3IDLabel.setModel(device, "SERM3Id")
|
|
self.M3OffLabel.setModel(device, "SERM3Output")
|
|
self.M3OffLabel.setColorMap(cm.SER_OFF)
|
|
self.M3ManualLabel.setModel(device, "SERM3Output")
|
|
self.M3ManualLabel.setColorMap(cm.SER_MANUAL)
|
|
self.M3FOFBLabel.setModel(device, "SERM3Output")
|
|
self.M3FOFBLabel.setColorMap(cm.SER_FOFB)
|
|
self.M3FOFBValueLabel.setModel(device, "SERM3FOFB")
|
|
|
|
self.M4IDLabel.setModel(device, "SERM4Id")
|
|
self.M4OffLabel.setModel(device, "SERM4Output")
|
|
self.M4OffLabel.setColorMap(cm.SER_OFF)
|
|
self.M4ManualLabel.setModel(device, "SERM4Output")
|
|
self.M4ManualLabel.setColorMap(cm.SER_MANUAL)
|
|
self.M4FOFBLabel.setModel(device, "SERM4Output")
|
|
self.M4FOFBLabel.setColorMap(cm.SER_FOFB)
|
|
self.M4FOFBValueLabel.setModel(device, "SERM4FOFB")
|
|
|
|
self.connect(self.M1ManualSpinBox, QtCore.SIGNAL("editingFinished()"), self.setM1)
|
|
self.connect(self.M2ManualSpinBox, QtCore.SIGNAL("editingFinished()"), self.setM2)
|
|
self.connect(self.M3ManualSpinBox, QtCore.SIGNAL("editingFinished()"), self.setM3)
|
|
self.connect(self.M4ManualSpinBox, QtCore.SIGNAL("editingFinished()"), self.setM4)
|
|
|
|
def update(self, cache):
|
|
self.emit(QtCore.SIGNAL("update"), cache)
|
|
|
|
def setM1(self):
|
|
self.setMagnet(1, self.M1ManualSpinBox.value())
|
|
|
|
def setM2(self):
|
|
self.setMagnet(2, self.M2ManualSpinBox.value())
|
|
|
|
def setM3(self):
|
|
self.setMagnet(3, self.M3ManualSpinBox.value())
|
|
|
|
def setM4(self):
|
|
self.setMagnet(4, self.M4ManualSpinBox.value())
|
|
|
|
def setMagnet(self, mid, value):
|
|
self.main_window.devices[self.device].write_attribute("SERM%dManual" % mid, value)
|