コード例 #1
0
ファイル: plot.py プロジェクト: MikeFalowski/VACCA
 def setModel(self, model):
     print '*' * 80
     self.info('VaccaProfilePlot.setModel(%s)' % model)
     print '*' * 80
     try:
         #if self._profile_loaded: return
         if fandango.isSequence(
                 model
         ) or 'attributename' in fandango.tango.parse_tango_model(model):
             self.info('setting an attribute model')
             TaurusPlot.setModel(self, model)  # model = model[0]# str(
             # model).rsplit('/',1)[0]
         else:
             self.info('setting a composer model')
             assert fandango.check_device(model)
             dev = taurus.Device(model)
             if all(a in map(str.lower, dev.get_attribute_list())
                    for a in ('ccgaxxis', 'ccgpressures', 'ipaxxis',
                              'ippressures', 'thermoaxxis', 'thermocouples',
                              'axxispositions', 'axxislabels')):
                 TaurusPlot.setModel(self, [])
                 setup_profile_plot(self, model)
             else:
                 self.warning('%s has not all required attributes' % model)
         if len(self._positions) and len(self._labels):
             self.info('Setting CustomXLabels ...')
             self.setAxisCustomLabels(Qwt5.QwtPlot.xBottom,
                                      zip(self._positions, self._labels),
                                      60)
     except Exception, e:
         self.warning('VaccaProfilePlot.setModel(%s) failed!: %s' %
                      (model, e))
コード例 #2
0
    def widgets(self, MainWindow):
        #3
        self.xPlot = TaurusPlot(self.centralwidget)
        # data = range(0,20)
        # self.xPlot.setGeometry(QtCore.QRect(30, 100, 300, 200))

        #4
        self.yPlot = TaurusPlot(self.centralwidget)
        # marker = self.yPlot.getPickedMarker()
        # marker.setShowQuality
        # self.yPlot.setGeometry(QtCore.QRect(520, 100, 300, 200))

        #1
        self.xLabel = QtGui.QLabel()
        self.xLabel.setText("X")
        #2
        self.yLabel = QtGui.QLabel()
        self.yLabel.setText("Y")
        #5
        self.baseXLabel = QtGui.QLabel()
        self.baseXLabel.setText("Baseline X")
        #6
        self.baseYLabel = QtGui.QLabel()
        self.baseYLabel.setText("Baseline Y")
        #7
        self.baseXLineEdit = QtGui.QLineEdit()
        self.baseXLineEdit.setReadOnly(True)
        #8
        self.baseYLineEdit = QtGui.QLineEdit()
        self.baseYLineEdit.setReadOnly(True)
        #9
        self.timeStampLabel = QtGui.QLabel()
        self.timeStampLabel.setText("time")
        #10
        self.timeStampLineEdit = QtGui.QLineEdit()
        self.timeStampLineEdit.setReadOnly(True)
        #11
        self.rangeAILabel = QtGui.QLabel()
        self.rangeAILabel.setText("range:")
        #12
        # self.rangeAICommand = QtGui.QLineEdit()
        # self.rangeAICommand = TaurusValueComboBox()
        self.rangeAICommand = QtGui.QComboBox()
        namesItems = [
            'Range 0.1', 'Range 0.2', 'Range 0.5', 'Range 1', 'Range 2',
            'Range 5', 'Range 10'
        ]
        self.rangeAICommand.addItems(namesItems)
        # self.rangeAICommand.addValueNames(names)
        #13
        self.valueEdit = QtGui.QTextEdit()
        self.valueEdit.setReadOnly(True)
        self.valueEdit.setMaximumWidth(180)
コード例 #3
0
    def setupUi(self, Diagnostics):
        Diagnostics.setObjectName(_fromUtf8("Diagnostics"))
        Diagnostics.resize(612, 820)
        self.gridLayout = QtGui.QGridLayout(Diagnostics)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.topRight = TaurusPlot(Diagnostics)
        self.topRight.setObjectName(_fromUtf8("topRight"))
        self.gridLayout.addWidget(self.topRight, 0, 1, 1, 1)
        self.middleDownRight = TaurusPlot(Diagnostics)
        self.middleDownRight.setObjectName(_fromUtf8("middleDownRight"))
        self.gridLayout.addWidget(self.middleDownRight, 2, 1, 1, 1)
        self.middleDownLeft = TaurusPlot(Diagnostics)
        self.middleDownLeft.setObjectName(_fromUtf8("middleDownLeft"))
        self.gridLayout.addWidget(self.middleDownLeft, 2, 0, 1, 1)
        self.topLeft = TaurusPlot(Diagnostics)
        self.topLeft.setObjectName(_fromUtf8("topLeft"))
        self.gridLayout.addWidget(self.topLeft, 0, 0, 1, 1)
        self.middleUpLeft = TaurusPlot(Diagnostics)
        self.middleUpLeft.setObjectName(_fromUtf8("middleUpLeft"))
        self.gridLayout.addWidget(self.middleUpLeft, 1, 0, 1, 1)
        self.bottomLeft = TaurusPlot(Diagnostics)
        self.bottomLeft.setObjectName(_fromUtf8("bottomLeft"))
        self.gridLayout.addWidget(self.bottomLeft, 3, 0, 1, 1)
        self.middleUpRight = TaurusPlot(Diagnostics)
        self.middleUpRight.setObjectName(_fromUtf8("middleUpRight"))
        self.gridLayout.addWidget(self.middleUpRight, 1, 1, 1, 1)
        self.bottomRight = TaurusPlot(Diagnostics)
        self.bottomRight.setObjectName(_fromUtf8("bottomRight"))
        self.gridLayout.addWidget(self.bottomRight, 3, 1, 1, 1)

        self.retranslateUi(Diagnostics)
        QtCore.QMetaObject.connectSlotsByName(Diagnostics)
コード例 #4
0
    def widgets(self,MainWindow):
        #3
        self.xPlot = TaurusPlot(self.centralwidget)
        # data = range(0,20)
        # self.xPlot.setGeometry(QtCore.QRect(30, 100, 300, 200))

        #4
        self.yPlot = TaurusPlot(self.centralwidget)
        # marker = self.yPlot.getPickedMarker()
        # marker.setShowQuality
        # self.yPlot.setGeometry(QtCore.QRect(520, 100, 300, 200))

        #1
        self.xLabel = QtGui.QLabel()
        self.xLabel.setText("X")
        #2
        self.yLabel = QtGui.QLabel()
        self.yLabel.setText("Y")
        #5
        self.baseXLabel = QtGui.QLabel()
        self.baseXLabel.setText("Baseline X")
        #6
        self.baseYLabel = QtGui.QLabel()
        self.baseYLabel.setText("Baseline Y")
        #7
        self.baseXLineEdit = QtGui.QLineEdit()
        self.baseXLineEdit.setReadOnly(True)
        #8
        self.baseYLineEdit = QtGui.QLineEdit()
        self.baseYLineEdit.setReadOnly(True)
        #9
        self.timeStampLabel = QtGui.QLabel()
        self.timeStampLabel.setText("time")
        #10
        self.timeStampLineEdit = QtGui.QLineEdit()
        self.timeStampLineEdit.setReadOnly(True)
        #11
        self.rangeAILabel = QtGui.QLabel()
        self.rangeAILabel.setText("range:")
        #12
        # self.rangeAICommand = QtGui.QLineEdit()
        # self.rangeAICommand = TaurusValueComboBox()
        self.rangeAICommand = QtGui.QComboBox()
        namesItems = ['Range 0.1','Range 0.2','Range 0.5','Range 1','Range 2','Range 5','Range 10']
        self.rangeAICommand.addItems(namesItems)
        # self.rangeAICommand.addValueNames(names)
        #13
        self.valueEdit = QtGui.QTextEdit()
        self.valueEdit.setReadOnly(True)
        self.valueEdit.setMaximumWidth(180)
コード例 #5
0
    def setupUi(self, Loops):
        Loops.setObjectName(_fromUtf8("Loops"))
        Loops.resize(612, 616)
        self.gridLayout = QtGui.QGridLayout(Loops)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.topLeft = TaurusPlot(Loops)
        self.topLeft.setObjectName(_fromUtf8("topLeft"))
        self.gridLayout.addWidget(self.topLeft, 0, 0, 1, 1)
        self.middleLeft = TaurusPlot(Loops)
        self.middleLeft.setObjectName(_fromUtf8("middleLeft"))
        self.gridLayout.addWidget(self.middleLeft, 1, 0, 1, 1)
        self.middleRight = TaurusPlot(Loops)
        self.middleRight.setObjectName(_fromUtf8("middleRight"))
        self.gridLayout.addWidget(self.middleRight, 1, 1, 1, 1)
        self.topRight = TaurusPlot(Loops)
        self.topRight.setObjectName(_fromUtf8("topRight"))
        self.gridLayout.addWidget(self.topRight, 0, 1, 1, 1)
        self.bottomLeft = TaurusPlot(Loops)
        self.bottomLeft.setObjectName(_fromUtf8("bottomLeft"))
        self.gridLayout.addWidget(self.bottomLeft, 2, 0, 1, 1)
        self.bottomRight = TaurusPlot(Loops)
        self.bottomRight.setObjectName(_fromUtf8("bottomRight"))
        self.gridLayout.addWidget(self.bottomRight, 2, 1, 1, 1)

        self.retranslateUi(Loops)
        QtCore.QMetaObject.connectSlotsByName(Loops)
コード例 #6
0
 def neXusPreviewWidgetFactory(self, ddict):
     '''returns a widget showing a preview of a node in a NeXus file'''
     #@todo: check if this is the root group and it has a valid nexus data directory, in which case the default plot should be returned
     if ddict['type'] == 'Dataset':
         node = ddict['name']
         data = self.__nexusFile[node]
         if len(data.shape) == 1 and isinstance(data[0], (numpy.floating, numpy.integer, int, float)):
             w = TaurusPlot()
             w.attachRawData({"x": numpy.arange(len(data)), "y": data})
         else:
             w = HDF5DatasetTable.HDF5DatasetTable()
             w.setDataset(data)
     else:
         info = HDF5Info.getInfo(self.__nexusFile, ddict["name"])
         w = HDF5Info.HDF5InfoWidget()
         w.setInfoDict(info)
     return w
コード例 #7
0
ファイル: taurusnexuswidget.py プロジェクト: cpascual/taurus
 def neXusPreviewWidgetFactory(self, ddict):
     """returns a widget showing a preview of a node in a NeXus file"""
     # @todo: check if this is the root group and it has a valid nexus data directory, in which case the default plot should be returned
     if ddict["type"] == "Dataset":
         node = ddict["name"]
         data = self.__nexusFile[node]
         if len(data.shape) == 1 and isinstance(data[0], (numpy.floating, numpy.integer, int, float)):
             w = TaurusPlot()
             w.attachRawData({"x": numpy.arange(len(data)), "y": data})
         else:
             w = HDF5DatasetTable.HDF5DatasetTable()
             w.setDataset(data)
     else:
         info = HDF5Info.getInfo(self.__nexusFile, ddict["name"])
         w = HDF5Info.HDF5InfoWidget()
         w.setInfoDict(info)
     return w
コード例 #8
0
ファイル: taurusplot03.py プロジェクト: cmft/taurus
#!/usr/bin/env python

import sys
from taurus.external.qt import Qt
from taurus.qt.qtgui.plot import TaurusPlot, CurveAppearanceProperties

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

import numpy
from taurus.qt import Qwt5

panel = TaurusPlot()

rawdata1 = {"y": 5 * numpy.random.random(10), "name": "Random"}
rawdata2 = {"x": [1, 2, 5, 7], "y": [2, 3, 1, 4], "name": "Hand-written"}
rawdata3 = {"x": numpy.arange(0, 10, 0.1), "f(x)": "sqrt(x)"}

p1 = CurveAppearanceProperties(sStyle=Qwt5.QwtSymbol.Rect,
                               sSize=5,
                               sColor="green",
                               sFill=False,
                               lStyle=Qt.Qt.NoPen)

p2 = CurveAppearanceProperties(sStyle=Qwt5.QwtSymbol.Triangle,
                               sSize=8,
                               sColor="red",
                               sFill=True,
                               lColor="red",
コード例 #9
0
class Ui_Loops(object):
    def setupUi(self, Loops):
        Loops.setObjectName(_fromUtf8("Loops"))
        Loops.resize(612, 616)
        self.gridLayout = QtGui.QGridLayout(Loops)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.topLeft = TaurusPlot(Loops)
        self.topLeft.setObjectName(_fromUtf8("topLeft"))
        self.gridLayout.addWidget(self.topLeft, 0, 0, 1, 1)
        self.middleLeft = TaurusPlot(Loops)
        self.middleLeft.setObjectName(_fromUtf8("middleLeft"))
        self.gridLayout.addWidget(self.middleLeft, 1, 0, 1, 1)
        self.middleRight = TaurusPlot(Loops)
        self.middleRight.setObjectName(_fromUtf8("middleRight"))
        self.gridLayout.addWidget(self.middleRight, 1, 1, 1, 1)
        self.topRight = TaurusPlot(Loops)
        self.topRight.setObjectName(_fromUtf8("topRight"))
        self.gridLayout.addWidget(self.topRight, 0, 1, 1, 1)
        self.bottomLeft = TaurusPlot(Loops)
        self.bottomLeft.setObjectName(_fromUtf8("bottomLeft"))
        self.gridLayout.addWidget(self.bottomLeft, 2, 0, 1, 1)
        self.bottomRight = TaurusPlot(Loops)
        self.bottomRight.setObjectName(_fromUtf8("bottomRight"))
        self.gridLayout.addWidget(self.bottomRight, 2, 1, 1, 1)

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

    def retranslateUi(self, Loops):
        Loops.setWindowTitle(QtGui.QApplication.translate("Loops", "Form", None, QtGui.QApplication.UnicodeUTF8))
コード例 #10
0
#!/usr/bin/env python

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

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

panel = TaurusPlot()
model = ['sys/taurustest/1/abscissas', 'sys/taurustest/1/curve']
panel.setModel(model)

########################
# END EXAMPLE CODE
########################
panel.show()
sys.exit(app.exec_())
コード例 #11
0
ファイル: panels.py プロジェクト: srgblnch/PicoHarp300
 def __init__(self, parent=None, designMode=False):
     TaurusPlot.__init__(self, parent, designMode)
コード例 #12
0
ファイル: panels.py プロジェクト: Yarokha/PicoHarp300
 def __init__(self, parent=None, designMode=False):
     TaurusPlot.__init__(self, parent, designMode)
コード例 #13
0
#!/usr/bin/env python

import sys
from taurus.external.qt import Qt
from taurus.qt.qtgui.plot import TaurusPlot, CurveAppearanceProperties

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

import numpy
from taurus.qt import Qwt5

panel = TaurusPlot()

rawdata1 = {"y": 5 * numpy.random.random(10), "name": "Random"}
rawdata2 = {"x": [1, 2, 5, 7], "y": [2, 3, 1, 4], "name": "Hand-written"}
rawdata3 = {"x": numpy.arange(0, 10, 0.1), "f(x)": "sqrt(x)"}

p1 = CurveAppearanceProperties(sStyle=Qwt5.QwtSymbol.Rect,
                               sSize=5,
                               sColor="green",
                               sFill=False,
                               lStyle=Qt.Qt.NoPen)

p2 = CurveAppearanceProperties(sStyle=Qwt5.QwtSymbol.Triangle,
                               sSize=8,
                               sColor="red",
                               sFill=True,
                               lColor="red",
コード例 #14
0
class Ui_MainWindow(QtGui.QMainWindow):
    def setupUi(self, MainWindow):
        MainWindow.resize(1000, 600)
        MainWindow.setMinimumSize(700, 400)
        self.centralwidget = QtGui.QWidget(MainWindow)

        self.widgets(MainWindow)

        MainWindow.setCentralWidget(self.centralwidget)
        self.centerOnScreen(MainWindow)
        self.layouts(MainWindow)
        self.readTangoData()
        self.signals()
        if MDEBUG:
            self.plotSett()  # ??? debug

    def widgets(self, MainWindow):
        #3
        self.xPlot = TaurusPlot(self.centralwidget)
        # data = range(0,20)
        # self.xPlot.setGeometry(QtCore.QRect(30, 100, 300, 200))

        #4
        self.yPlot = TaurusPlot(self.centralwidget)
        # marker = self.yPlot.getPickedMarker()
        # marker.setShowQuality
        # self.yPlot.setGeometry(QtCore.QRect(520, 100, 300, 200))

        #1
        self.xLabel = QtGui.QLabel()
        self.xLabel.setText("X")
        #2
        self.yLabel = QtGui.QLabel()
        self.yLabel.setText("Y")
        #5
        self.baseXLabel = QtGui.QLabel()
        self.baseXLabel.setText("Baseline X")
        #6
        self.baseYLabel = QtGui.QLabel()
        self.baseYLabel.setText("Baseline Y")
        #7
        self.baseXLineEdit = QtGui.QLineEdit()
        self.baseXLineEdit.setReadOnly(True)
        #8
        self.baseYLineEdit = QtGui.QLineEdit()
        self.baseYLineEdit.setReadOnly(True)
        #9
        self.timeStampLabel = QtGui.QLabel()
        self.timeStampLabel.setText("time")
        #10
        self.timeStampLineEdit = QtGui.QLineEdit()
        self.timeStampLineEdit.setReadOnly(True)
        #11
        self.rangeAILabel = QtGui.QLabel()
        self.rangeAILabel.setText("range:")
        #12
        # self.rangeAICommand = QtGui.QLineEdit()
        # self.rangeAICommand = TaurusValueComboBox()
        self.rangeAICommand = QtGui.QComboBox()
        namesItems = [
            'Range 0.1', 'Range 0.2', 'Range 0.5', 'Range 1', 'Range 2',
            'Range 5', 'Range 10'
        ]
        self.rangeAICommand.addItems(namesItems)
        # self.rangeAICommand.addValueNames(names)
        #13
        self.valueEdit = QtGui.QTextEdit()
        self.valueEdit.setReadOnly(True)
        self.valueEdit.setMaximumWidth(180)

    def plotSett(self):
        print("PLOT SETT")

        # curveSymbol = Qwt.QwtSymbol(Qwt.QwtSymbol.Ellipse,
        #                             Qt.QBrush(Qt.Qt.red),
        #                             Qt.QPen(Qt.Qt.black, 2),
        #                             Qt.QSize(9, 9))

        p1 = CurveAppearanceProperties(sStyle=Qwt.QwtSymbol.Ellipse,
                                       sSize=5,
                                       sColor="blue",
                                       sFill=True,
                                       lStyle=Qt.Qt.NoPen)

        self.xPlot.setCurveAppearanceProperties({'wireX': p1})
        self.yPlot.setCurveAppearanceProperties({'wireY': p1})

        # sd = self.xPlot.getCurveNames()
        # self.xPlot.getCurveNames().setSymbol(curveSymbol)
        # sd = self.yPlot.setSymbol
        # print sd
        # self.yPlot.

    def layouts(self, MainWindow):
        mainLayout = QtGui.QGridLayout()
        mainLayout.setSpacing(30)

        layout1 = QtGui.QHBoxLayout()
        layout1.addWidget(self.baseXLabel)
        layout1.addWidget(self.baseXLineEdit)

        layout2 = QtGui.QHBoxLayout()
        layout2.addWidget(self.baseYLabel)
        layout2.addWidget(self.baseYLineEdit)

        layout3 = QtGui.QHBoxLayout()
        layout3.addWidget(self.timeStampLabel)
        layout3.addWidget(self.timeStampLineEdit)

        layout4 = QtGui.QHBoxLayout()
        layout4.addWidget(self.rangeAILabel)
        layout4.addWidget(self.rangeAICommand)

        labelLayout = QtGui.QHBoxLayout()
        labelLayout.addStretch(0)
        labelLayout.addWidget(self.xLabel)
        labelLayout.addStretch(0)

        mainLayout.addLayout(labelLayout, 0, 0)

        labelLayout = QtGui.QHBoxLayout()
        labelLayout.addStretch(0)
        labelLayout.addWidget(self.yLabel)
        labelLayout.addStretch(0)

        mainLayout.addLayout(labelLayout, 0, 2)

        mainLayout.addWidget(self.xPlot, 1, 0)
        mainLayout.addWidget(self.yPlot, 1, 2)
        mainLayout.addLayout(layout1, 2, 0)
        mainLayout.addLayout(layout2, 2, 2)
        mainLayout.addLayout(layout3, 3, 0)
        mainLayout.addLayout(layout4, 3, 2)
        mainLayout.addWidget(self.valueEdit, 1, 1)

        centralWidget = MainWindow.centralWidget()
        centralWidget.setLayout(mainLayout)

    def commandRange(self, it):
        commands = [
            'SetAIRange0_1', 'SetAIRange0_2', 'SetAIRange0_5', 'SetAIRange1',
            'SetAIRange2', 'SetAIRange5', 'SetAIRange10'
        ]
        command = commands[it]
        self.chTangoData()
        if MDEBUG:
            print(command)
        else:
            try:
                tango_test.command_inout(command)
            except PyTango.DevFailed as exc:
                self.setBeginAIRange()
                print(str(exc))

    def signals(self):
        self.connect(self.rangeAICommand, QtCore.SIGNAL("activated(int)"),
                     self.commandRange)

    def readTangoData(self):
        self.chTangoData()
        self.readPR1Avg()
        self.setBeginAIRange()

    def readPR1Avg(self):
        pr1avgData = tango_test.read_attribute("pr1avg").value
        # wiresX = pr1avgData
        pnt1 = self.nWiresX
        pnt2 = pnt1 + self.nWiresY
        pnt3 = self.nWiresX
        pnt4 = pnt3 + self.nWiresY

        dataX = pr1avgData[0][0:pnt1]
        dataY = pr1avgData[0][pnt1:pnt2]
        sclX = pr1avgData[1][0:pnt3]
        sclY = pr1avgData[1][pnt3:pnt4]

        # p1 = CurveAppearanceProperties(sStyle=Qwt.QwtSymbol.Ellipse,
        #                sSize=5,
        #                sColor="blue",
        #                sFill=True,
        #                lStyle=Qt.Qt.NoPen)
        # self.xPlot.attachRawData({"x":sclX, "y":dataX},properties=p1)
        # self.yPlot.attachRawData({"x":sclY, "y":dataY},properties=p1)

        self.xPlot.attachRawData({"x": sclX, "y": dataX, 'title': "wireX"})
        self.yPlot.attachRawData({"x": sclY, "y": dataY, 'title': "wireY"})

        # self.xPlot.getPickedMarker()

        if MDEBUG:
            print("1: " + str(pnt1) + "  2: " + str(pnt2) + "  3: " +
                  str(pnt3) + "  4: " + str(pnt4))
            # tt = self.xPlot.createConfigDict()
            # print(tt)

    def chTangoData(self):
        baselineX = tango_test.read_attribute("baselineX")
        baselineY = tango_test.read_attribute("baselineY")
        timestamp = tango_test.read_attribute("PR_Timestamp")
        dt = datetime.fromtimestamp(
            timestamp.value).strftime('%d-%m-%Y %H:%M:%S')
        self.baseXLineEdit.setText(str(baselineX.value))
        self.baseYLineEdit.setText(str(baselineY.value))
        self.timeStampLineEdit.setText(dt)

        prX0 = tango_test.read_attribute("prX0")
        prX0val = prX0.value
        prY0 = tango_test.read_attribute("prY0")
        prY0val = prY0.value
        prWX = tango_test.read_attribute("prWX")
        prWXval = prWX.value
        prWY = tango_test.read_attribute("prWY")
        prWYval = prWY.value

        self.valueEdit.clear()
        self.valueEdit.append("X0 = " + str(round(prX0val[0], 3)))
        self.valueEdit.append("")
        self.valueEdit.append("Y0 = " + str(round(prY0val[0], 3)))
        self.valueEdit.append("")
        self.valueEdit.append("Wx = " + str(round(prWXval[0], 3)))
        self.valueEdit.append("")
        self.valueEdit.append("Wy = " + str(round(prWYval[0], 3)))
        self.valueEdit.append("")

        self.nWiresX = tango_test.read_attribute("wiresX").value
        self.nWiresY = tango_test.read_attribute("wiresY").value
        if MDEBUG:
            print("WiresX=" + str(self.nWiresX))
            print("WiresY=" + str(self.nWiresY))

    def setBeginAIRange(self):
        airange = tango_test.read_attribute("AI_Range")
        if airange.value == 10.0:
            self.rangeAICommand.setCurrentIndex(6)
        if airange.value == 5.0:
            self.rangeAICommand.setCurrentIndex(5)
        if airange.value == 2.0:
            self.rangeAICommand.setCurrentIndex(4)
        if airange.value == 1.0:
            self.rangeAICommand.setCurrentIndex(3)
        if airange.value == 0.5:
            self.rangeAICommand.setCurrentIndex(2)
        if airange.value == 0.2:
            self.rangeAICommand.setCurrentIndex(1)
        if airange.value == 0.1:
            self.rangeAICommand.setCurrentIndex(0)

    def centerOnScreen(self, MainWindow):
        resolution = QtGui.QDesktopWidget().screenGeometry()
        MainWindow.move(
            (resolution.width() / 2) - (self.frameSize().width() / 2),
            (resolution.height() / 2) - (self.frameSize().height() / 2))
コード例 #15
0
class Ui_MainWindow(QtGui.QMainWindow):
    def setupUi(self, MainWindow):
        MainWindow.resize(1000, 600)
        MainWindow.setMinimumSize(700,400)
        self.centralwidget = QtGui.QWidget(MainWindow)

        self.widgets(MainWindow)

        MainWindow.setCentralWidget(self.centralwidget)
        self.centerOnScreen(MainWindow)
        self.layouts(MainWindow)
        self.readTangoData()
        self.signals()
        if MDEBUG:
            self.plotSett() # ??? debug

    def widgets(self,MainWindow):
        #3
        self.xPlot = TaurusPlot(self.centralwidget)
        # data = range(0,20)
        # self.xPlot.setGeometry(QtCore.QRect(30, 100, 300, 200))

        #4
        self.yPlot = TaurusPlot(self.centralwidget)
        # marker = self.yPlot.getPickedMarker()
        # marker.setShowQuality
        # self.yPlot.setGeometry(QtCore.QRect(520, 100, 300, 200))

        #1
        self.xLabel = QtGui.QLabel()
        self.xLabel.setText("X")
        #2
        self.yLabel = QtGui.QLabel()
        self.yLabel.setText("Y")
        #5
        self.baseXLabel = QtGui.QLabel()
        self.baseXLabel.setText("Baseline X")
        #6
        self.baseYLabel = QtGui.QLabel()
        self.baseYLabel.setText("Baseline Y")
        #7
        self.baseXLineEdit = QtGui.QLineEdit()
        self.baseXLineEdit.setReadOnly(True)
        #8
        self.baseYLineEdit = QtGui.QLineEdit()
        self.baseYLineEdit.setReadOnly(True)
        #9
        self.timeStampLabel = QtGui.QLabel()
        self.timeStampLabel.setText("time")
        #10
        self.timeStampLineEdit = QtGui.QLineEdit()
        self.timeStampLineEdit.setReadOnly(True)
        #11
        self.rangeAILabel = QtGui.QLabel()
        self.rangeAILabel.setText("range:")
        #12
        # self.rangeAICommand = QtGui.QLineEdit()
        # self.rangeAICommand = TaurusValueComboBox()
        self.rangeAICommand = QtGui.QComboBox()
        namesItems = ['Range 0.1','Range 0.2','Range 0.5','Range 1','Range 2','Range 5','Range 10']
        self.rangeAICommand.addItems(namesItems)
        # self.rangeAICommand.addValueNames(names)
        #13
        self.valueEdit = QtGui.QTextEdit()
        self.valueEdit.setReadOnly(True)
        self.valueEdit.setMaximumWidth(180)

    def plotSett(self):
        print("PLOT SETT")

        # curveSymbol = Qwt.QwtSymbol(Qwt.QwtSymbol.Ellipse,
        #                             Qt.QBrush(Qt.Qt.red),
        #                             Qt.QPen(Qt.Qt.black, 2),
        #                             Qt.QSize(9, 9))

        p1 = CurveAppearanceProperties(sStyle=Qwt.QwtSymbol.Ellipse,
                               sSize=5,
                               sColor="blue",
                               sFill=True,
                               lStyle=Qt.Qt.NoPen)

        self.xPlot.setCurveAppearanceProperties({'wireX':p1})
        self.yPlot.setCurveAppearanceProperties({'wireY':p1})

        # sd = self.xPlot.getCurveNames()
        # self.xPlot.getCurveNames().setSymbol(curveSymbol)
        # sd = self.yPlot.setSymbol
        # print sd
        # self.yPlot.

    def layouts(self, MainWindow):
        mainLayout = QtGui.QGridLayout()
        mainLayout.setSpacing(30)

        layout1 = QtGui.QHBoxLayout()
        layout1.addWidget(self.baseXLabel)
        layout1.addWidget(self.baseXLineEdit)

        layout2 = QtGui.QHBoxLayout()
        layout2.addWidget(self.baseYLabel)
        layout2.addWidget(self.baseYLineEdit)

        layout3 = QtGui.QHBoxLayout()
        layout3.addWidget(self.timeStampLabel)
        layout3.addWidget(self.timeStampLineEdit)

        layout4 = QtGui.QHBoxLayout()
        layout4.addWidget(self.rangeAILabel)
        layout4.addWidget(self.rangeAICommand)

        labelLayout = QtGui.QHBoxLayout()
        labelLayout.addStretch(0)
        labelLayout.addWidget(self.xLabel)
        labelLayout.addStretch(0)

        mainLayout.addLayout(labelLayout,0,0)

        labelLayout = QtGui.QHBoxLayout()
        labelLayout.addStretch(0)
        labelLayout.addWidget(self.yLabel)
        labelLayout.addStretch(0)

        mainLayout.addLayout(labelLayout,0,2)

        mainLayout.addWidget(self.xPlot,1,0)
        mainLayout.addWidget(self.yPlot,1,2)
        mainLayout.addLayout(layout1,2,0)
        mainLayout.addLayout(layout2,2,2)
        mainLayout.addLayout(layout3,3,0)
        mainLayout.addLayout(layout4,3,2)
        mainLayout.addWidget(self.valueEdit,1,1)

        centralWidget = MainWindow.centralWidget()
        centralWidget.setLayout(mainLayout)

    def commandRange(self,it):
        commands = ['SetAIRange0_1','SetAIRange0_2','SetAIRange0_5',
                    'SetAIRange1','SetAIRange2','SetAIRange5','SetAIRange10']
        command = commands[it]
        self.chTangoData()
        if MDEBUG:
            print(command)
        else:
			try:
				tango_test.command_inout(command)
			except PyTango.DevFailed as exc:
				self.setBeginAIRange()
				print(str(exc))

    def signals(self):
        self.connect(self.rangeAICommand,QtCore.SIGNAL("activated(int)"),self.commandRange)

    def readTangoData(self):
        self.chTangoData()
        self.readPR1Avg()
        self.setBeginAIRange()

    def readPR1Avg(self):
        pr1avgData = tango_test.read_attribute("pr1avg").value
        # wiresX = pr1avgData
        pnt1=self.nWiresX
        pnt2=pnt1+self.nWiresY
        pnt3=self.nWiresX
        pnt4=pnt3+self.nWiresY

        dataX = pr1avgData[0][0:pnt1]
        dataY = pr1avgData[0][pnt1:pnt2]
        sclX = pr1avgData[1][0:pnt3]
        sclY = pr1avgData[1][pnt3:pnt4]

        # p1 = CurveAppearanceProperties(sStyle=Qwt.QwtSymbol.Ellipse,
        #                sSize=5,
        #                sColor="blue",
        #                sFill=True,
        #                lStyle=Qt.Qt.NoPen)
        # self.xPlot.attachRawData({"x":sclX, "y":dataX},properties=p1)
        # self.yPlot.attachRawData({"x":sclY, "y":dataY},properties=p1)

        self.xPlot.attachRawData({"x":sclX, "y":dataX, 'title':"wireX"})
        self.yPlot.attachRawData({"x":sclY, "y":dataY, 'title':"wireY"})


        # self.xPlot.getPickedMarker()

        if MDEBUG:
            print("1: " + str(pnt1) + "  2: " + str(pnt2) + "  3: "  + str(pnt3) + "  4: " + str(pnt4))
            # tt = self.xPlot.createConfigDict()
            # print(tt)

    def chTangoData(self):
        baselineX = tango_test.read_attribute("baselineX")
        baselineY = tango_test.read_attribute("baselineY")
        timestamp = tango_test.read_attribute("PR_Timestamp")
        dt = datetime.fromtimestamp(timestamp.value).strftime('%d-%m-%Y %H:%M:%S')
        self.baseXLineEdit.setText(str(baselineX.value))
        self.baseYLineEdit.setText(str(baselineY.value))
        self.timeStampLineEdit.setText(dt)

        prX0 = tango_test.read_attribute("prX0")
        prX0val = prX0.value
        prY0 = tango_test.read_attribute("prY0")
        prY0val = prY0.value
        prWX = tango_test.read_attribute("prWX")
        prWXval = prWX.value
        prWY = tango_test.read_attribute("prWY")
        prWYval = prWY.value

        self.valueEdit.clear()
        self.valueEdit.append("X0 = " + str(round(prX0val[0],3)))
        self.valueEdit.append("")
        self.valueEdit.append("Y0 = " + str(round(prY0val[0],3)))
        self.valueEdit.append("")
        self.valueEdit.append("Wx = " + str(round(prWXval[0],3)))
        self.valueEdit.append("")
        self.valueEdit.append("Wy = " + str(round(prWYval[0],3)))
        self.valueEdit.append("")

        self.nWiresX = tango_test.read_attribute("wiresX").value
        self.nWiresY = tango_test.read_attribute("wiresY").value
        if MDEBUG:
            print("WiresX=" + str(self.nWiresX))
            print("WiresY=" + str(self.nWiresY))

    def setBeginAIRange(self):
        airange = tango_test.read_attribute("AI_Range")
        if airange.value == 10.0:
            self.rangeAICommand.setCurrentIndex(6)
        if airange.value == 5.0:
            self.rangeAICommand.setCurrentIndex(5)
        if airange.value == 2.0:
            self.rangeAICommand.setCurrentIndex(4)
        if airange.value == 1.0:
            self.rangeAICommand.setCurrentIndex(3)
        if airange.value == 0.5:
            self.rangeAICommand.setCurrentIndex(2)
        if airange.value == 0.2:
            self.rangeAICommand.setCurrentIndex(1)
        if airange.value == 0.1:
            self.rangeAICommand.setCurrentIndex(0)

    def centerOnScreen(self,MainWindow):
        resolution = QtGui.QDesktopWidget().screenGeometry()
        MainWindow.move((resolution.width() / 2) - (self.frameSize().width() / 2),
                  (resolution.height() / 2) - (self.frameSize().height() / 2))
コード例 #16
0
ファイル: plot.py プロジェクト: MikeFalowski/VACCA
 def __init__(self, *args, **kwargs):
     TaurusPlot.__init__(self, *args, **kwargs)
     self._profile_loaded = False
     self._positions = []
     self._labels = []
     self.setModelInConfig(False)
コード例 #17
0
class Ui_Diagnostics(object):
    def setupUi(self, Diagnostics):
        Diagnostics.setObjectName(_fromUtf8("Diagnostics"))
        Diagnostics.resize(612, 820)
        self.gridLayout = QtGui.QGridLayout(Diagnostics)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.topRight = TaurusPlot(Diagnostics)
        self.topRight.setObjectName(_fromUtf8("topRight"))
        self.gridLayout.addWidget(self.topRight, 0, 1, 1, 1)
        self.middleDownRight = TaurusPlot(Diagnostics)
        self.middleDownRight.setObjectName(_fromUtf8("middleDownRight"))
        self.gridLayout.addWidget(self.middleDownRight, 2, 1, 1, 1)
        self.middleDownLeft = TaurusPlot(Diagnostics)
        self.middleDownLeft.setObjectName(_fromUtf8("middleDownLeft"))
        self.gridLayout.addWidget(self.middleDownLeft, 2, 0, 1, 1)
        self.topLeft = TaurusPlot(Diagnostics)
        self.topLeft.setObjectName(_fromUtf8("topLeft"))
        self.gridLayout.addWidget(self.topLeft, 0, 0, 1, 1)
        self.middleUpLeft = TaurusPlot(Diagnostics)
        self.middleUpLeft.setObjectName(_fromUtf8("middleUpLeft"))
        self.gridLayout.addWidget(self.middleUpLeft, 1, 0, 1, 1)
        self.bottomLeft = TaurusPlot(Diagnostics)
        self.bottomLeft.setObjectName(_fromUtf8("bottomLeft"))
        self.gridLayout.addWidget(self.bottomLeft, 3, 0, 1, 1)
        self.middleUpRight = TaurusPlot(Diagnostics)
        self.middleUpRight.setObjectName(_fromUtf8("middleUpRight"))
        self.gridLayout.addWidget(self.middleUpRight, 1, 1, 1, 1)
        self.bottomRight = TaurusPlot(Diagnostics)
        self.bottomRight.setObjectName(_fromUtf8("bottomRight"))
        self.gridLayout.addWidget(self.bottomRight, 3, 1, 1, 1)

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

    def retranslateUi(self, Diagnostics):
        Diagnostics.setWindowTitle(QtGui.QApplication.translate("Diagnostics", "Form", None, QtGui.QApplication.UnicodeUTF8))