Esempio n. 1
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
Esempio n. 2
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
 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
    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)
Esempio n. 5
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
Esempio n. 6
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_())