Beispiel #1
0
    def _setup_ui(self):
        vbox = QtGui.QVBoxLayout(self)
        self.setLayout(vbox)

        grid = QtGui.QGridLayout()
        self.form = MAXForm(withButtons=False)

        grid.addWidget(self.form, 0, 0, 2, 1)
        # rescale taurus form methode
        self.form.scrollArea.sizeHint = self.scaleSize
        self.status_label = StatusArea()
        grid.addWidget(self.status_label, 0, 1, 1, 1)

        commandbox = QtGui.QVBoxLayout(self)
        self.start_button = TaurusCommandButton(command="StartCycle")
        self.start_button.setUseParentModel(True)
        self.stop_button = TaurusCommandButton(command="StopCycle")
        self.stop_button.setUseParentModel(True)
        commandbox.addWidget(self.start_button)
        commandbox.addWidget(self.stop_button)
        grid.addLayout(commandbox, 1, 1, 1, 1)

        vbox.addLayout(grid)

        self.trend = TaurusTrend()
        vbox.addWidget(self.trend, stretch=1)
        self.trend_trigger.connect(self.set_trend_paused)

        self.cyclingState = None
Beispiel #2
0
    def __init__(self, parent=None, designMode=False):

        TaurusTrend.__init__(self, parent, designMode)
        self._plotables = CaselessDict()
        self._movingMotors = []
        self._macroNames = []
        self._doorName = None

        self.setMinimumSize(300, 200)
        self.setXIsTime(True)
        self.setAxisScale(Qwt5.QwtPlot.xBottom, 0, 60)
        self.setXDynScale(True)
Beispiel #3
0
    def __init__(self, parent=None, designMode=False):

        TaurusTrend.__init__(self, parent, designMode)
        self.setUseParentModel(False)
        self._plotables = CaselessDict()
        self._movingMotors = []
        self._macroNames = []
        self._doorName = None

        self.setMinimumSize(300, 200)
        self.setXIsTime(True)
        self.setAxisScale(Qwt5.QwtPlot.xBottom, 0, 60)
        self.setXDynScale(True)
 def open_new_trend(self):
     from taurus.qt.qtgui.plot import TaurusTrend
     tt = TaurusTrend()
     tt.show()
     self.extras.append(tt)
     tt.setUseArchiving(True)
     tt.showLegend(True)
     return tt
Beispiel #5
0
 def event(self, event):
     # if event.type() == Qt.QEvent.ToolTip: print "!!!!!!!", event.type()
     if event.type() == Qt.QEvent.ToolTip:
         #            info = self.getMonitorInfo()
         #            self.setToolTip(info)
         event.accept()
     return TaurusTrend.event(self, event)
Beispiel #6
0
 def event(self, event):
     # if event.type() == Qt.QEvent.ToolTip: print "!!!!!!!", event.type()
     if event.type() == Qt.QEvent.ToolTip:
         #            info = self.getMonitorInfo()
         #            self.setToolTip(info)
         event.accept()
     return TaurusTrend.event(self, event)
Beispiel #7
0
    def __init__(self, parent=None, designMode=False):
        TaurusTrend.__init__(self, parent=parent, designMode=designMode)

        self.setXIsTime(True)
        # set a 5 minutes range by default
        self.setAxisScale(self.xBottom, 0, 5 * 60)
        self.setXDynScale(True)

        self.setCanvasBackground(Qt.Qt.black)

        self.showLegend(False)
        self.enableAxis(self.xBottom, False)
        self.enableAxis(self.xTop, False)
        self.enableAxis(self.yLeft, False)
        self.enableAxis(self.yRight, False)
        self.setAllowZoomers(False)
        self.toggleDataInspectorMode(enable=True)
        self.setMaximumSize(60, 60)
Beispiel #8
0
    def __init__(self, parent=None, designMode=False):
        TaurusTrend.__init__(self, parent=parent, designMode=designMode)

        self.setXIsTime(True)
        # set a 5 minutes range by default
        self.setAxisScale(self.xBottom, 0, 5 * 60)
        self.setXDynScale(True)

        self.setCanvasBackground(Qt.Qt.black)

        self.showLegend(False)
        self.enableAxis(self.xBottom, False)
        self.enableAxis(self.xTop, False)
        self.enableAxis(self.yLeft, False)
        self.enableAxis(self.yRight, False)
        self.setAllowZoomers(False)
        self.toggleDataInspectorMode(enable=True)
        self.setMaximumSize(60, 60)
    def setupUi(self, LiberaBrilliancePlusMini):
        LiberaBrilliancePlusMini.setObjectName(_fromUtf8("LiberaBrilliancePlusMini"))
        LiberaBrilliancePlusMini.resize(338, 670)
        self.gridLayout = QtGui.QGridLayout(LiberaBrilliancePlusMini)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.taurusTrend_2 = TaurusTrend(LiberaBrilliancePlusMini)
        self.taurusTrend_2.setObjectName(_fromUtf8("taurusTrend_2"))
        self.gridLayout.addWidget(self.taurusTrend_2, 3, 0, 1, 1)
        self.taurusTrend = TaurusTrend(LiberaBrilliancePlusMini)
        self.taurusTrend.setObjectName(_fromUtf8("taurusTrend"))
        self.gridLayout.addWidget(self.taurusTrend, 1, 0, 2, 1)
        #self.taurusCurveDialog = TaurusCurveDialog(LiberaBrilliancePlusMini)
        #self.taurusCurveDialog.setModifiableByUser(False)
        #self.taurusCurveDialog.setObjectName(_fromUtf8("taurusCurveDialog"))
        #self.gridLayout.addWidget(self.taurusCurveDialog, 0, 0, 1, 1)

        self.retranslateUi(LiberaBrilliancePlusMini)
        QtCore.QMetaObject.connectSlotsByName(LiberaBrilliancePlusMini)
    def setupUi(self, LiberaSinglePassMini):
        LiberaSinglePassMini.setObjectName(_fromUtf8("LiberaSinglePassMini"))
        LiberaSinglePassMini.resize(338, 670)
        self.gridLayout = QtGui.QGridLayout(LiberaSinglePassMini)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.taurusTrend_2 = TaurusTrend(LiberaSinglePassMini)
        self.taurusTrend_2.setObjectName(_fromUtf8("taurusTrend_2"))
        self.gridLayout.addWidget(self.taurusTrend_2, 3, 0, 1, 1)
        self.taurusTrend = TaurusTrend(LiberaSinglePassMini)
        self.taurusTrend.setObjectName(_fromUtf8("taurusTrend"))
        self.gridLayout.addWidget(self.taurusTrend, 1, 0, 2, 1)
        self.taurusCurveDialog = TaurusCurveDialog(LiberaSinglePassMini)
        self.taurusCurveDialog.setModifiableByUser(False)
        self.taurusCurveDialog.setObjectName(_fromUtf8("taurusCurveDialog"))
        self.gridLayout.addWidget(self.taurusCurveDialog, 0, 0, 1, 1)

        self.retranslateUi(LiberaSinglePassMini)
        QtCore.QMetaObject.connectSlotsByName(LiberaSinglePassMini)
 def open_new_trend(self):
     from taurus.qt.qtgui.plot import TaurusTrend
     tt = TaurusTrend()
     tt.show()
     self.extras.append(tt)
     tt.setUseArchiving(True)
     tt.showLegend(True)
     return tt
class Ui_LiberaSinglePassEMini(object):
    def setupUi(self, LiberaSinglePassEMini):
        LiberaSinglePassEMini.setObjectName(_fromUtf8("LiberaSinglePassEMini"))
        LiberaSinglePassEMini.resize(338, 670)
        self.gridLayout = QtGui.QGridLayout(LiberaSinglePassEMini)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.taurusTrend_2 = TaurusTrend(LiberaSinglePassEMini)
        self.taurusTrend_2.setObjectName(_fromUtf8("taurusTrend_2"))
        self.gridLayout.addWidget(self.taurusTrend_2, 3, 0, 1, 1)
        self.taurusTrend = TaurusTrend(LiberaSinglePassEMini)
        self.taurusTrend.setObjectName(_fromUtf8("taurusTrend"))
        self.gridLayout.addWidget(self.taurusTrend, 1, 0, 2, 1)
        #self.taurusCurveDialog = TaurusCurveDialog(LiberaSinglePassEMini)
        #self.taurusCurveDialog.setModifiableByUser(False)
        #self.taurusCurveDialog.setObjectName(_fromUtf8("taurusCurveDialog"))
        #self.gridLayout.addWidget(self.taurusCurveDialog, 0, 0, 1, 1)

        self.retranslateUi(LiberaSinglePassEMini)
        QtCore.QMetaObject.connectSlotsByName(LiberaSinglePassEMini)

    def retranslateUi(self, LiberaSinglePassEMini):
        LiberaSinglePassEMini.setWindowTitle(_translate("LiberaSinglePassEMini", "Form", None))
class Ui_LiberaBrilliancePlusMini(object):
    def setupUi(self, LiberaBrilliancePlusMini):
        LiberaBrilliancePlusMini.setObjectName(
            _fromUtf8("LiberaBrilliancePlusMini"))
        LiberaBrilliancePlusMini.resize(338, 670)
        self.gridLayout = QtGui.QGridLayout(LiberaBrilliancePlusMini)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.taurusTrend_2 = TaurusTrend(LiberaBrilliancePlusMini)
        self.taurusTrend_2.setObjectName(_fromUtf8("taurusTrend_2"))
        self.gridLayout.addWidget(self.taurusTrend_2, 3, 0, 1, 1)
        self.taurusTrend = TaurusTrend(LiberaBrilliancePlusMini)
        self.taurusTrend.setObjectName(_fromUtf8("taurusTrend"))
        self.gridLayout.addWidget(self.taurusTrend, 1, 0, 2, 1)
        #self.taurusCurveDialog = TaurusCurveDialog(LiberaBrilliancePlusMini)
        #self.taurusCurveDialog.setModifiableByUser(False)
        #self.taurusCurveDialog.setObjectName(_fromUtf8("taurusCurveDialog"))
        #self.gridLayout.addWidget(self.taurusCurveDialog, 0, 0, 1, 1)

        self.retranslateUi(LiberaBrilliancePlusMini)
        QtCore.QMetaObject.connectSlotsByName(LiberaBrilliancePlusMini)

    def retranslateUi(self, LiberaBrilliancePlusMini):
        LiberaBrilliancePlusMini.setWindowTitle(
            _translate("LiberaBrilliancePlusMini", "Form", None))
Beispiel #14
0
    def _updateTemporaryTrends1D(self, trends1d):
        '''adds necessary trend1D panels and removes no longer needed ones

        :param trends1d: (dict) A dict whose keys are tuples of axes and
                         whose values are list of model names to plot

        :returns: (tuple) two lists new,rm:new contains the names of the new
                  panels and rm contains the names of the removed panels
        '''
        from taurus.qt.qtgui.plot import TaurusTrend
        newpanels = []
        for axes, plotables in trends1d.items():
            if not axes:
                continue
            if axes not in self._trends1d:
                w = TaurusTrend()
                w.setXIsTime(False)
                w.setScanDoor(self.getModelObj().fullname)
                # TODO: use a standard key for <idx> and <mov>
                w.setScansXDataKey(axes[0])
                pname = u'Trend1D - %s' % ":".join(axes)
                panel = self.createPanel(w,
                                         pname,
                                         registerconfig=False,
                                         permanent=False)
                try:  # if the panel is a dockwidget, raise it
                    panel.raise_()
                except:
                    pass
                self._trends1d[axes] = pname
                newpanels.append(pname)

            widget = self.getPanelWidget(self._trends1d[axes])
            flt = ChannelFilter(plotables)
            widget.onScanPlotablesFilterChanged(flt)

        # remove trends that are no longer configured
        removedpanels = []
        olditems = list(self._trends1d.items())
        for axes, name in olditems:
            if axes not in trends1d:
                removedpanels.append(name)
                self.removePanel(name)
                self._trends1d.pop(axes)

        return newpanels, removedpanels
Beispiel #15
0
    def _updateTemporaryTrends1D(self, trends1d):
        '''adds necessary trend1D panels and removes no longer needed ones

        :param trends1d: (dict) A dict whose keys are tuples of axes and
                         whose values are list of model names to plot

        :returns: (tuple) two lists new,rm:new contains the names of the new
                  panels and rm contains the names of the removed panels
        '''
        from taurus.qt.qtgui.plot import TaurusTrend  # TODO: use tpg instead!
        newpanels = []
        for axes, plotables in trends1d.items():
            if not axes:
                continue
            if axes not in self._trends1d:
                w = TaurusTrend()
                w.setXIsTime(False)
                w.setScanDoor(self.getModelObj().fullname)
                # TODO: use a standard key for <idx> and <mov>
                w.setScansXDataKey(axes[0])
                pname = u'Trend1D - %s' % ":".join(axes)
                panel = self.createPanel(w, pname, registerconfig=False,
                                         permanent=False)
                try:  # if the panel is a dockwidget, raise it
                    panel.raise_()
                except Exception:
                    pass
                self._trends1d[axes] = pname
                newpanels.append(pname)

            widget = self.getPanelWidget(self._trends1d[axes])
            flt = ChannelFilter(plotables)
            widget.onScanPlotablesFilterChanged(flt)

        # remove trends that are no longer configured
        removedpanels = []
        olditems = list(self._trends1d.items())
        for axes, name in olditems:
            if axes not in trends1d:
                removedpanels.append(name)
                self.removePanel(name)
                self._trends1d.pop(axes)

        return newpanels, removedpanels
Beispiel #16
0
#!/usr/bin/env python

import sys
from taurus.external.qt import Qt
from taurus.qt.qtgui.plot import TaurusTrend

app = Qt.QApplication(sys.argv)
##########################
# BEGIN EXAMPLE CODE
##########################

panel = TaurusTrend()
model = ['sys/taurustest/1/position']
panel.setXIsTime(True)  # to show the x values as time
panel.setModel(model)

########################
# END EXAMPLE CODE
########################
panel.show()
sys.exit(app.exec_())
Beispiel #17
0
def get_archive_trend(models=None, length=4 * 3600, show=False):
    # This method is to be added to
    # PyTangoArchiving.widgets.trend in next releases

    #class PressureTrend(TaurusTrend):
    #def showEvent(self,event):
    #if not getattr(self,'_tuned',False):
    #setup_pressure_trend(self)
    #setattr(self,'_tuned',True)
    #TaurusTrend.showEvent(self,event)

    from taurus.external.qt import Qwt5
    tt = TaurusTrend()
    try:
        tt.setXDynScale(True)
        tt.setUseArchiving(True)
        tt.setModelInConfig(False)
        tt.disconnect(tt.axisWidget(tt.xBottom),
                      Qt.SIGNAL("scaleDivChanged ()"), tt._scaleChangeWarning)
        xMax = time.time()  #tt.axisScaleDiv(Qwt5.QwtPlot.xBottom).upperBound()
        rg = length  #abs(self.str2deltatime(str(self.ui.xRangeCB.currentText())))
        xMin = xMax - rg
        tt.setAxisScale(Qwt5.QwtPlot.xBottom, xMin, xMax)
        if models: tt.setModel(models)
        if show: tt.show()
        tt.setWindowTitle('Trend')
    except:
        print 'Exception in set_pressure_trend(%s)' % tt
        print traceback.format_exc()
    return tt
Beispiel #18
0
import sys
from taurus.external.qt import Qt
from taurus.qt.qtgui.application import TaurusApplication

app = TaurusApplication(sys.argv, cmd_line_parser=None)
panel = Qt.QWidget()
layout = Qt.QHBoxLayout()
panel.setLayout(layout)

#from taurus.qt.qtgui.display import TaurusLabel
#w = TaurusLabel()
#layout.addWidget(w)
#w.model = 'ET7000_server/test/pet7_7026/ai00'

from taurus.qt.qtgui.plot import TaurusTrend
panel = TaurusTrend()
model = ['ET7000_server/test/pet7_7026/ai00']
#panel.setXIsTime(True) #to show the x values as time
panel.setModel(model)

panel.show()
sys.exit(app.exec_())
Beispiel #19
0
class CyclePanel(TaurusWidget):
    "Panel for controlling the cycling functionality"

    trend_trigger = QtCore.pyqtSignal(bool)

    attrs = [
        "CyclingTimePlateau", "CyclingIterations", "CyclingSteps",
        "CyclingRampTime", "NominalSetPoint"
    ]
    scale_factor = 1.1

    def __init__(self, parent=None):
        TaurusWidget.__init__(self, parent)
        self._setup_ui()
        print('CyclePanel juste avant setmodel')

    #    self.setModel('sys/tg_test/1')

    def scaleSize(self):
        size = self.form.scrollArea.widget().frameSize()
        return QtCore.QSize(size.width(), size.height() * self.scale_factor)

    def _setup_ui(self):
        vbox = QtGui.QVBoxLayout(self)
        self.setLayout(vbox)

        grid = QtGui.QGridLayout()
        self.form = MAXForm(withButtons=False)

        grid.addWidget(self.form, 0, 0, 2, 1)
        # rescale taurus form methode
        self.form.scrollArea.sizeHint = self.scaleSize
        self.status_label = StatusArea()
        grid.addWidget(self.status_label, 0, 1, 1, 1)

        commandbox = QtGui.QVBoxLayout(self)
        self.start_button = TaurusCommandButton(command="StartCycle")
        self.start_button.setUseParentModel(True)
        self.stop_button = TaurusCommandButton(command="StopCycle")
        self.stop_button.setUseParentModel(True)
        commandbox.addWidget(self.start_button)
        commandbox.addWidget(self.stop_button)
        grid.addLayout(commandbox, 1, 1, 1, 1)

        vbox.addLayout(grid)

        self.trend = TaurusTrend()
        vbox.addWidget(self.trend, stretch=1)
        self.trend_trigger.connect(self.set_trend_paused)

        self.cyclingState = None

    def setModel(self, device):
        print self.__class__.__name__, "setModel", device
        TaurusWidget.setModel(self, device)
        # self.state_button.setModel(device)
        if device:
            self.form.setModel(
                ["%s/%s" % (device, attribute) for attribute in self.attrs])

            self.status_label.setModel("%s/cyclingStatus" % device)

            ps = str(PyTango.Database().get_device_property(
                device, "PowerSupplyProxy")["PowerSupplyProxy"][0])

            self.trend.setPaused()
            self.trend.setModel(["%s/Current" % ps])
            self.trend.setForcedReadingPeriod(0.2)
            self.trend.showLegend(True)

            # let's pause the trend when not cycling
            self.cyclingState = self.getModelObj().getAttribute("cyclingState")
            self.cyclingState.addListener(self.handle_cycling_state)
        else:
            if self.cyclingState:
                self.cyclingState.removeListener(self.handle_cycling_state)
            self.trend.setModel(None)
            self.status_label.setModel(None)

    def handle_cycling_state(self, evt_src, evt_type, evt_value):
        if evt_type in [
                PyTango.EventType.CHANGE_EVENT,
                PyTango.EventType.PERIODIC_EVENT
        ]:
            self.trend_trigger.emit(evt_value.value)

    def set_trend_paused(self, value):
        self.trend.setForcedReadingPeriod(0.2 if value else -1)
        self.trend.setPaused(not value)
Beispiel #20
0
#!/usr/bin/env python

import sys
from taurus.qt.qtgui.plot import TaurusTrend
from taurus.qt.qtgui.application import TaurusApplication

app = TaurusApplication(sys.argv)
##########################
# BEGIN EXAMPLE CODE
##########################

panel = TaurusTrend()
model = ['sys/taurustest/1/position']
panel.setXIsTime(True)  # to show the x values as time
panel.setModel(model)

########################
# END EXAMPLE CODE
########################
panel.show()
sys.exit(app.exec_())
Beispiel #21
0
def get_archive_trend(models=None,length=4*3600,show=False):
    # This method is to be added to PyTangoArchiving.widgets.trend in next releases
    
    #class PressureTrend(TaurusTrend):
        #def showEvent(self,event):
            #if not getattr(self,'_tuned',False): 
                #setup_pressure_trend(self)
                #setattr(self,'_tuned',True)        
            #TaurusTrend.showEvent(self,event)
    
    from PyQt4 import Qwt5
    tt = TaurusTrend()
    try:
        tt.setXDynScale(True)
        tt.setUseArchiving(True)
        tt.setModelInConfig(False)
        tt.disconnect(tt.axisWidget(tt.xBottom), Qt.SIGNAL("scaleDivChanged ()"), tt._scaleChangeWarning)
        xMax = time.time() #tt.axisScaleDiv(Qwt5.QwtPlot.xBottom).upperBound()
        rg = length #abs(self.str2deltatime(str(self.ui.xRangeCB.currentText())))
        xMin=xMax-rg
        tt.setAxisScale(Qwt5.QwtPlot.xBottom,xMin, xMax)
        if models: tt.setModel(models)
        if show: tt.show()
        tt.setWindowTitle('Trend')
    except:
        print 'Exception in set_pressure_trend(%s)'%tt
        print traceback.format_exc()
    return tt