示例#1
0
    def defineStyle(self):
        """ Defines the initial style for the widget """
        self.setWindowTitle('Properties')
        self.setColumnCount(2)
        self.setRowCount(0)
        self.setGeometry(QtCore.QRect(0, 0, 400, 500))

        self.setColumnWidth(0, 124)
        self.setColumnWidth(1, 254)

        headerItem = QtGui.QTableWidgetItem()
        headerItem.setText(
            QtGui.QApplication.translate("PLCTabWidget", "Property Name", None,
                                         QtGui.QApplication.UnicodeUTF8))
        self.setHorizontalHeaderItem(0, headerItem)

        headerItem1 = QtGui.QTableWidgetItem()
        headerItem1.setText(
            QtGui.QApplication.translate("PLCTabWidget", "Value", None,
                                         QtGui.QApplication.UnicodeUTF8))
        self.setHorizontalHeaderItem(1, headerItem1)
        hh = self.horizontalHeader()
        if hh.length() > 0:
            try:
                hh.setSectionResizeMode(hh.ResizeToContents)
            except AttributeError:  # PyQt4
                hh.setResizeMode(hh.ResizeToContents)
示例#2
0
 def build_diff_table(self, data):
     self.comp._wi.tableWidget.clear()
     cols=7
     self.comp._wi.tableWidget.setColumnCount(cols)
     self.comp._wi.tableWidget.setHorizontalHeaderLabels(["Attribute Name", "RV1", "WV1", "RV2", "WV2", "diff1", "diff2"])
     self.comp._wi.tableWidget.setGeometry(QtCore.QRect(20, 190, 500, 400))
     if data:
         rows=len(data)
         self.comp._wi.tableWidget.setRowCount(rows)
         for row in range(0, rows):
                 for col in range(0, cols):
                     item=QtGui.QTableWidgetItem("%s" % data[row][col])
                     if (data[row][col]==None or data[row][col]=='None'):
                         item=QtGui.QTableWidgetItem("%s" %"X")
                         item.setTextColor(QtGui.QColor(255,0,0))
                     if row%2==0:
                         item.setBackgroundColor(QtGui.QColor(225,225,225))
                     if (col==5 or col==6) and (data[row][col]!=0) and (data[row][col]!='None') and (data[row][col]!=None):
                         item.setBackgroundColor(QtGui.QColor(45,150,255))
                     elif (col==1 or col==2):
                         if (data[row][col]>data[row][col+2]):
                             item.setBackgroundColor(QtGui.QColor(255,0,0))
                         elif(data[row][col]<data[row][col+2]):
                             item.setBackgroundColor(QtGui.QColor(255,255,0))
                     elif (col==3 or col==4):
                         if (data[row][col]>data[row][col-2]):
                             item.setBackgroundColor(QtGui.QColor(255,0,0))
                         elif (data[row][col]<data[row][col-2]):
                             item.setBackgroundColor(QtGui.QColor(255,255,0))
                     self.comp._wi.tableWidget.setItem(row,col,item)
     else:
         self.comp._wi.tableWidget.setRowCount(1)
         item=QtGui.QTableWidgetItem("%s" % QtCore.QString('No Data!'))
         self.comp._wi.tableWidget.setItem(0, 0, item)
     self.comp._wi.tableWidget.resizeColumnsToContents()
示例#3
0
    def __init__(self, parent=None, designMode=False):
        TaurusWidget.__init__(self, parent=None, designMode=designMode)

        self.loadUi(filename="selectsignal.ui")

        self.signalComboBox = SignalComboBox(self)
        self.signalComboBox.setGeometry(QtCore.QRect(70, 50, 161, 27))
        self.signalComboBox.setObjectName("SignalcomboBox")

        self.signalComboBox.currentIndexChanged['QString'].connect(
            self.onSignalChanged)

        self.doorName = None
        self.door_device = None

        registerExtensions()
示例#4
0
    def defineStyle(self):
        """ Defines the initial style for the widget """
        self.setWindowTitle('Properties')
        self.setColumnCount(2)
        self.setRowCount(0)
        self.setGeometry(QtCore.QRect(0, 0, 400, 500))

        self.setColumnWidth(0, 124)
        self.setColumnWidth(1, 254)

        headerItem = QtGui.QTableWidgetItem()
        headerItem.setText(
            QtGui.QApplication.translate("PLCTabWidget", "Property Name", None,
                                         QtGui.QApplication.UnicodeUTF8))
        self.setHorizontalHeaderItem(0, headerItem)

        headerItem1 = QtGui.QTableWidgetItem()
        headerItem1.setText(
            QtGui.QApplication.translate("PLCTabWidget", "Value", None,
                                         QtGui.QApplication.UnicodeUTF8))
        self.setHorizontalHeaderItem(1, headerItem1)
        self.horizontalHeader().setResizeMode(
            QtGui.QHeaderView.ResizeToContents)  # .Stretch)
    def setModel(self, model):
        if model is not None:
            self.device = taurus.Device(model)

        self.pseudo_motor_names = []
        for motor in self.device.hklpseudomotorlist:
            self.pseudo_motor_names.append(motor.split(' ')[0])

        self.h_device_name = self.pseudo_motor_names[0]
        self.h_device = taurus.Device(self.h_device_name)
        self.k_device_name = self.pseudo_motor_names[1]
        self.k_device = taurus.Device(self.k_device_name)
        self.l_device_name = self.pseudo_motor_names[2]
        self.l_device = taurus.Device(self.l_device_name)

        # Set model to hkl components

        hmodel = self.h_device_name + "/Position"
        self._ui.taurusValueLineH.setModel(hmodel)
        self._ui.taurusLabelValueH.setModel(hmodel)
        kmodel = self.k_device_name + "/Position"
        self._ui.taurusValueLineK.setModel(kmodel)
        self._ui.taurusLabelValueK.setModel(kmodel)
        lmodel = self.l_device_name + "/Position"
        self._ui.taurusValueLineL.setModel(lmodel)
        self._ui.taurusLabelValueL.setModel(lmodel)

        # Add dynamically the angle widgets

        motor_list = self.device.motorlist
        self.motor_names = []
        self.motor_devices = []

        for motor in self.device.motorlist:
            self.motor_names.append(motor.split(' ')[0])
            self.motor_devices.append(
                taurus.Device(self.motor_names[len(self.motor_names) - 1]))

        self.nb_motors = len(motor_list)

        angles_labels = []
        self.angles_names = []
        angles_taurus_label = []
        angles_taurus_input = []

        gap_x = 650 / self.nb_motors

        try:
            self.angles_names = self.device.motorroles
        except:  # Only for compatibility
            if self.nb_motors == 4:
                self.angles_names.append("omega")
                self.angles_names.append("chi")
                self.angles_names.append("phi")
                self.angles_names.append("theta")
            elif self.nb_motors == 6:
                self.angles_names.append("mu")
                self.angles_names.append("th")
                self.angles_names.append("chi")
                self.angles_names.append("phi")
                self.angles_names.append("gamma")
                self.angles_names.append("delta")

        for i in range(0, self.nb_motors):
            angles_labels.append(QtGui.QLabel(self))
            angles_labels[i].setGeometry(
                QtCore.QRect(150 + gap_x * i, 40, 71, 17))
            angles_labels[i].setLayoutDirection(QtCore.Qt.RightToLeft)
            alname = "angleslabel" + str(i)
            angles_labels[i].setObjectName(alname)
            angles_labels[i].setText(
                QtGui.QApplication.translate("HKLScan", self.angles_names[i],
                                             None,
                                             QtGui.QApplication.UnicodeUTF8))

            angles_taurus_label.append(TaurusLabel(self))
            angles_taurus_label[i].setGeometry(
                QtCore.QRect(150 + gap_x * i, 70, 81, 19))
            atlname = "anglestauruslabel" + str(i)
            angles_taurus_label[i].setObjectName(atlname)
            angles_taurus_label[i].setModel(self.motor_names[i] + "/Position")

            angles_taurus_input.append(TaurusValueLineEdit(self))
            angles_taurus_input[i].setGeometry(
                QtCore.QRect(145 + gap_x * i, 100, 91, 27))
            atlname = "anglestaurusinput" + str(i)
            angles_taurus_input[i].setObjectName(atlname)
            angles_taurus_input[i].setModel(self.motor_names[i] + "/Position")

        # Set model to engine and modes

        enginemodel = model + '/engine'
        self._ui.taurusLabelEngine.setModel(enginemodel)
        enginemodemodel = model + '/enginemode'
        self._ui.taurusLabelEngineMode.setModel(enginemodemodel)

        self.enginemodescombobox = EngineModesComboBox(self)
        self.enginemodescombobox.setGeometry(QtCore.QRect(150, 315, 221, 27))
        self.enginemodescombobox.setObjectName("enginemodeslist")

        self.enginemodescombobox.loadEngineModeNames(self.device.hklmodelist)

        self.connect(self.enginemodescombobox,
                     Qt.SIGNAL("currentIndexChanged(QString)"),
                     self.onModeChanged)

        # Add dynamically the scan buttons, range inputs and 'to max' buttons

        scan_buttons = []
        self.range_inputs = []
        self.tomax_buttons = [
        ]  # The text will be change when the max. is computed

        exec_functions = [
            self.exec_scan1, self.exec_scan2, self.exec_scan3, self.exec_scan4,
            self.exec_scan5, self.exec_scan6
        ]

        tomax_functions = [
            self.tomax_scan1, self.tomax_scan2, self.tomax_scan3,
            self.tomax_scan4, self.tomax_scan5, self.tomax_scan6
        ]

        gap_x = 650 / self.nb_motors

        for i in range(0, self.nb_motors):
            scan_buttons.append(QtGui.QPushButton(self))
            scan_buttons[i].setGeometry(
                QtCore.QRect(150 + gap_x * i, 405, 100, 26))
            wname = "scanbutton" + str(i)
            scan_buttons[i].setObjectName(wname)
            scan_buttons[i].setText(
                QtGui.QApplication.translate("DiffractometerAlignment",
                                             self.angles_names[i], None,
                                             QtGui.QApplication.UnicodeUTF8))
            self.connect(scan_buttons[i], Qt.SIGNAL("clicked()"),
                         exec_functions[i])

            self.range_inputs.append(QtGui.QLineEdit(self))
            self.range_inputs[i].setGeometry(
                QtCore.QRect(150 + gap_x * i, 440, 100, 26))
            self.range_inputs[i].setLayoutDirection(QtCore.Qt.RightToLeft)
            wname = "rangeinput" + str(i)
            self.range_inputs[i].setObjectName(wname)

            self.tomax_buttons.append(QtGui.QPushButton(self))
            self.tomax_buttons[i].setGeometry(
                QtCore.QRect(150 + gap_x * i, 475, 100, 26))
            wname = "tomaxbutton" + str(i)
            self.tomax_buttons[i].setObjectName(wname)
            self.tomax_buttons[i].setText(
                QtGui.QApplication.translate("DiffractometerAlignment", 'n.n.',
                                             None,
                                             QtGui.QApplication.UnicodeUTF8))
            self.connect(self.tomax_buttons[i], Qt.SIGNAL("clicked()"),
                         tomax_functions[i])
示例#6
0
    def setModel(self, model):

        self.model = model

        if model is not None:
            self.device = taurus.Device(model)

        self.update_values()

        uxmodel = model + "/ux"
        self._ui.taurusuxvalue.setModel(uxmodel)
        self._ui.taurusuxeditvalue.setModel(uxmodel)
        uymodel = model + "/uy"
        self._ui.taurusuyvalue.setModel(uymodel)
        self._ui.taurusuyeditvalue.setModel(uymodel)
        uzmodel = model + "/uz"
        self._ui.taurusuzvalue.setModel(uzmodel)
        self._ui.taurusuzeditvalue.setModel(uzmodel)
        amodel = model + "/a"
        self._ui.taurusalatticevalue.setModel(amodel)
        self._ui.taurusalatticeeditvalue.setModel(amodel)
        bmodel = model + "/b"
        self._ui.taurusblatticevalue.setModel(bmodel)
        self._ui.taurusblatticeeditvalue.setModel(bmodel)
        cmodel = model + "/c"
        self._ui.taurusclatticevalue.setModel(cmodel)
        self._ui.taurusclatticeeditvalue.setModel(cmodel)
        alphamodel = model + "/alpha"
        self._ui.taurusalphalatticevalue.setModel(alphamodel)
        self._ui.taurusalphalatticeeditvalue.setModel(alphamodel)
        betamodel = model + "/beta"
        self._ui.taurusbetalatticevalue.setModel(betamodel)
        self._ui.taurusbetalatticeeditvalue.setModel(betamodel)
        gammamodel = model + "/gamma"
        self._ui.taurusgammalatticevalue.setModel(gammamodel)
        self._ui.taurusgammalatticeeditvalue.setModel(gammamodel)
        psirefhmodel = model + "/psirefh"
        self._ui.taurusvalue_psirefh.setModel(psirefhmodel)
        self._ui.tauruseditvalue_psirefh.setModel(psirefhmodel)
        psirefkmodel = model + "/psirefk"
        self._ui.taurusvalue_psirefk.setModel(psirefkmodel)
        self._ui.tauruseditvalue_psirefk.setModel(psirefkmodel)
        psireflmodel = model + "/psirefl"
        self._ui.taurusvalue_psirefl.setModel(psireflmodel)
        self._ui.tauruseditvalue_psirefl.setModel(psireflmodel)
        wavelengthmodel = model + "/wavelength"
        self._ui.tauruswavelengthvalue.setModel(wavelengthmodel)

        # Set model to engine and modes

        enginemodel = model + '/engine'
        self._ui.taurusLabelEngine.setModel(enginemodel)

        self.enginescombobox = PrivateComboBox(self)
        self.enginescombobox.setGeometry(QtCore.QRect(130, 460, 221, 27))
        self.enginescombobox.setObjectName("engineslist")

        self.enginescombobox.loadItems(self.device.enginelist)

        self.enginescombobox.currentIndexChanged['QString'].connect(
            self.onEngineChanged)

        enginemodemodel = model + '/enginemode'
        self._ui.taurusLabelEngineMode.setModel(enginemodemodel)

        self.enginemodescombobox = PrivateComboBox(self)
        self.enginemodescombobox.setGeometry(QtCore.QRect(130, 500, 221, 27))
        self.enginemodescombobox.setObjectName("enginemodeslist")

        self.enginemodescombobox.loadItems(self.device.enginemodelist)

        self.enginemodescombobox.currentIndexChanged['QString'].connect(
            self.onModeChanged)

        # Set model to crystal

        crystalmodel = model + '/crystal'
        self._ui.taurusLabelCrystal.setModel(crystalmodel)

        self.crystalscombobox = PrivateComboBox(self)
        self.crystalscombobox.setGeometry(QtCore.QRect(130, 540, 221, 27))
        self.crystalscombobox.setObjectName("crystallist")

        self.crystalscombobox.loadItems(self.device.crystallist)

        self.crystalscombobox.currentIndexChanged['QString'].connect(
            self.onCrystalChanged)
示例#7
0
    def reflections_list_window(self):

        reflections = self.device.reflectionlist

        nb_ref = 0
        xindex = 20
        xh = 70
        xk = 150
        xl = 230
        xrelevance = 330
        xaffinement = 380
        xangle1 = 430
        xangle2 = 510
        xangle3 = 590
        xangle4 = 670
        xangle5 = 750
        xangle6 = 830
        yhkl = 100
        w = ReflectionsList()

        self.taurusValueIndex = []
        self.taurusValueH = []
        self.taurusValueK = []
        self.taurusValueL = []
        self.taurusValueRelevance = []
        self.taurusValueAffinement = []
        self.taurusValueAngle1 = []
        self.taurusValueAngle2 = []
        self.taurusValueAngle3 = []
        self.taurusValueAngle4 = []
        self.taurusValueAngle5 = []
        self.taurusValueAngle6 = []

        if reflections is not None:
            for ref in reflections:
                if nb_ref == 0:
                    self.rl_label1_7 = QtGui.QLabel(w)
                    self.rl_label1_7.setGeometry(
                        QtCore.QRect(xangle1 + 20, 70, 51, 20))
                    self.rl_label1_7.setObjectName("rl_label1_7")
                #               self.testlabel.setLayoutDirection(QtCore.Qt.RightToLeft)
                    self.rl_label1_8 = QtGui.QLabel(w)
                    self.rl_label1_8.setGeometry(
                        QtCore.QRect(xangle2 + 20, 70, 71, 20))
                    self.rl_label1_8.setObjectName("rl_label1_8")
                #               self.testlabel.setLayoutDirection(QtCore.Qt.RightToLeft)
                    self.rl_label1_9 = QtGui.QLabel(w)
                    self.rl_label1_9.setGeometry(
                        QtCore.QRect(xangle3 + 20, 70, 41, 20))
                    self.rl_label1_9.setObjectName("rl_label1_9")
                    self.rl_label1_10 = QtGui.QLabel(w)
                    self.rl_label1_10.setGeometry(
                        QtCore.QRect(xangle4 + 20, 70, 41, 20))
                    self.rl_label1_10.setObjectName("rl_label1_10")
                    try:
                        self.angle_names = self.device.motorroles
                    except:  # Only for compatibility
                        if self.nb_motors == 4:
                            self.angles_names.append("omega")
                            self.angles_names.append("chi")
                            self.angles_names.append("phi")
                            self.angles_names.append("theta")
                        elif self.nb_motors == 6:
                            self.angles_names.append("mu")
                            self.angles_names.append("th")
                            self.angles_names.append("chi")
                            self.angles_names.append("phi")
                            self.angles_names.append("gamma")
                            self.angles_names.append("delta")
                # 4circles diffractometer
                    if len(ref) == 10:
                        self.rl_label1_7.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[0], None))
                        self.rl_label1_8.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[1], None))
                        self.rl_label1_9.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[2], None))
                        self.rl_label1_10.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[3], None))
                # 6 circles diffractometer
                    elif len(ref) == 12:
                        self.rl_label1_11 = QtGui.QLabel(w)
                        self.rl_label1_11.setGeometry(
                            QtCore.QRect(xangle5 + 20, 70, 71, 20))
                        self.rl_label1_11.setObjectName("rl_label1_11")
                        self.rl_label1_12 = QtGui.QLabel(w)
                        self.rl_label1_12.setGeometry(
                            QtCore.QRect(xangle6 + 20, 70, 41, 20))
                        self.rl_label1_12.setObjectName("rl_label1_12")
                        self.rl_label1_7.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[0], None))
                        self.rl_label1_8.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[1], None))
                        self.rl_label1_9.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[2], None))
                        self.rl_label1_10.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[3], None))
                        self.rl_label1_11.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[4], None))
                        self.rl_label1_12.setText(QtGui.QApplication.translate(
                            "Form", self.angle_names[5], None))

                self.taurusValueIndex.append(TaurusValueLineEdit(w))
                self.taurusValueIndex[nb_ref].setGeometry(
                    QtCore.QRect(xindex, 100 + 30 * (nb_ref), 41, 27))
                self.taurusValueIndex[nb_ref].setReadOnly(True)
                indexname = "taurusValueIndex" + str(nb_ref + 2)
                self.taurusValueIndex[nb_ref].setObjectName(indexname)
                self.taurusValueIndex[nb_ref].setValue(int(ref[0]))

                self.taurusValueH.append(TaurusValueLineEdit(w))
                self.taurusValueH[nb_ref].setGeometry(
                    QtCore.QRect(xh, 100 + 30 * (nb_ref), 81, 27))
                self.taurusValueH[nb_ref].setReadOnly(True)
                hname = "taurusValueH" + str(nb_ref + 2)
                self.taurusValueH[nb_ref].setObjectName(hname)
                self.taurusValueH[nb_ref].setValue("%10.4f" % ref[1])

                self.taurusValueK.append(TaurusValueLineEdit(w))
                self.taurusValueK[nb_ref].setGeometry(
                    QtCore.QRect(xk, 100 + 30 * (nb_ref), 81, 27))
                self.taurusValueK[nb_ref].setReadOnly(True)
                kname = "taurusValueK" + str(nb_ref + 2)
                self.taurusValueK[nb_ref].setObjectName(kname)
                self.taurusValueK[nb_ref].setValue("%10.4f" % ref[2])

                self.taurusValueL.append(TaurusValueLineEdit(w))
                self.taurusValueL[nb_ref].setGeometry(
                    QtCore.QRect(xl, 100 + 30 * (nb_ref), 81, 27))
                self.taurusValueL[nb_ref].setReadOnly(True)
                lname = "taurusValueL" + str(nb_ref + 2)
                self.taurusValueL[nb_ref].setObjectName(lname)
                self.taurusValueL[nb_ref].setValue("%10.4f" % ref[3])

                self.taurusValueRelevance.append(TaurusValueLineEdit(w))
                self.taurusValueRelevance[nb_ref].setGeometry(
                    QtCore.QRect(xrelevance, 100 + 30 * (nb_ref), 41, 27))
                self.taurusValueRelevance[nb_ref].setReadOnly(True)
                relevancename = "taurusValueRelevance" + str(nb_ref + 2)
                self.taurusValueRelevance[nb_ref].setObjectName(relevancename)
                self.taurusValueRelevance[nb_ref].setValue(int(ref[4]))

                self.taurusValueAffinement.append(TaurusValueLineEdit(w))
                self.taurusValueAffinement[nb_ref].setGeometry(
                    QtCore.QRect(xaffinement, 100 + 30 * (nb_ref), 41, 27))
                self.taurusValueAffinement[nb_ref].setReadOnly(True)
                affinementname = "taurusValueAffinement" + str(nb_ref + 2)
                self.taurusValueAffinement[
                    nb_ref].setObjectName(affinementname)
                self.taurusValueAffinement[nb_ref].setValue(int(ref[5]))

                self.taurusValueAngle1.append(TaurusValueLineEdit(w))
                self.taurusValueAngle1[nb_ref].setGeometry(
                    QtCore.QRect(xangle1, 100 + 30 * (nb_ref), 81, 27))
                self.taurusValueAngle1[nb_ref].setReadOnly(True)
                angle1name = "taurusValueAngle1" + str(nb_ref + 2)
                self.taurusValueAngle1[nb_ref].setObjectName(angle1name)
                self.taurusValueAngle1[nb_ref].setValue("%10.4f" % ref[6])

                self.taurusValueAngle2.append(TaurusValueLineEdit(w))
                self.taurusValueAngle2[nb_ref].setGeometry(
                    QtCore.QRect(xangle2, 100 + 30 * (nb_ref), 81, 27))
                self.taurusValueAngle2[nb_ref].setReadOnly(True)
                angle2name = "taurusValueAngle2" + str(nb_ref + 2)
                self.taurusValueAngle2[nb_ref].setObjectName(angle2name)
                self.taurusValueAngle2[nb_ref].setValue("%10.4f" % ref[7])

                self.taurusValueAngle3.append(TaurusValueLineEdit(w))
                self.taurusValueAngle3[nb_ref].setGeometry(
                    QtCore.QRect(xangle3, 100 + 30 * (nb_ref), 81, 27))
                self.taurusValueAngle3[nb_ref].setReadOnly(True)
                angle3name = "taurusValueAngle3" + str(nb_ref + 2)
                self.taurusValueAngle3[nb_ref].setObjectName(angle3name)
                self.taurusValueAngle3[nb_ref].setValue("%10.4f" % ref[8])

                self.taurusValueAngle4.append(TaurusValueLineEdit(w))
                self.taurusValueAngle4[nb_ref].setGeometry(
                    QtCore.QRect(xangle4, 100 + 30 * (nb_ref), 81, 27))
                self.taurusValueAngle4[nb_ref].setReadOnly(True)
                angle4name = "taurusValueAngle4" + str(nb_ref + 2)
                self.taurusValueAngle4[nb_ref].setObjectName(angle4name)
                self.taurusValueAngle4[nb_ref].setValue("%10.4f" % ref[9])

                if len(ref) == 12:
                    self.taurusValueAngle5.append(TaurusValueLineEdit(w))
                    self.taurusValueAngle5[nb_ref].setGeometry(
                        QtCore.QRect(xangle5, 100 + 30 * (nb_ref), 81, 27))
                    self.taurusValueAngle5[nb_ref].setReadOnly(True)
                    angle5name = "taurusValueAngle5" + str(nb_ref + 2)
                    self.taurusValueAngle5[nb_ref].setObjectName(angle5name)
                    self.taurusValueAngle5[nb_ref].setValue("%10.4f" % ref[10])

                    self.taurusValueAngle6.append(TaurusValueLineEdit(w))
                    self.taurusValueAngle6[nb_ref].setGeometry(
                        QtCore.QRect(xangle6, 100 + 30 * (nb_ref), 81, 27))
                    self.taurusValueAngle6[nb_ref].setReadOnly(True)
                    angle6name = "taurusValueAngle6" + str(nb_ref + 2)
                    self.taurusValueAngle6[nb_ref].setObjectName(angle6name)
                    self.taurusValueAngle6[nb_ref].setValue("%10.4f" % ref[11])

                nb_ref = nb_ref + 1

            w.resize(930, 100 + nb_ref * 50)

        else:
            self.rl_label_nor = QtGui.QLabel(w)
            self.rl_label_nor.setGeometry(
                QtCore.QRect(xangle1 - 50, 110, 300, 20))
            font = QtGui.QFont()
            font.setPointSize(12)
            font.setWeight(75)
            font.setBold(True)
            self.rl_label_nor.setFont(font)
            self.rl_label_nor.setObjectName("rl_label_nor")
            self.rl_label_nor.setText(QtGui.QApplication.translate(
                "Form", "NO REFLECTIONS", None))

        w.show()
        w.show()
示例#8
0
    def setModel(self, model):
        if model is not None:
            self.device = taurus.Device(model)

        self.pseudo_motor_names = []
        for motor in self.device.hklpseudomotorlist:
            self.pseudo_motor_names.append(motor.split(' ')[0])

        self.h_device_name = self.pseudo_motor_names[0]
        self.h_device = taurus.Device(self.h_device_name)
        self.k_device_name = self.pseudo_motor_names[1]
        self.k_device = taurus.Device(self.k_device_name)
        self.l_device_name = self.pseudo_motor_names[2]
        self.l_device = taurus.Device(self.l_device_name)

        # Add dynamically the angle widgets

        motor_list = self.device.motorlist
        motor_names = []
        for motor in self.device.motorlist:
            motor_names.append(motor.split(' ')[0])

        self.nb_motors = len(motor_list)

        angles_labels = []
        angles_names = []
        angles_taurus_label = []

        gap_x = 800 / self.nb_motors

        try:
            angles_names = self.device.motorroles
        except:  # Only for compatibility
            if self.nb_motors == 4:
                angles_names.append("omega")
                angles_names.append("chi")
                angles_names.append("phi")
                angles_names.append("theta")
            elif self.nb_motors == 6:
                angles_names.append("mu")
                angles_names.append("th")
                angles_names.append("chi")
                angles_names.append("phi")
                angles_names.append("gamma")
                angles_names.append("delta")

        for i in range(0, self.nb_motors):
            angles_labels.append(QtGui.QLabel(self))
            angles_labels[i].setGeometry(
                QtCore.QRect(50 + gap_x * i, 290, 51, 17))
            alname = "angleslabel" + str(i)
            angles_labels[i].setObjectName(alname)
            angles_labels[i].setText(
                QtGui.QApplication.translate("HKLScan", angles_names[i], None,
                                             QtGui.QApplication.UnicodeUTF8))
            angles_taurus_label.append(TaurusLabel(self))
            angles_taurus_label[i].setGeometry(
                QtCore.QRect(50 + gap_x * i, 320, 81, 19))
            atlname = "anglestauruslabel" + str(i)
            angles_taurus_label[i].setObjectName(atlname)
            angles_taurus_label[i].setModel(motor_names[i] + "/Position")

        # Set model to hkl display

        hmodel = self.h_device_name + "/Position"
        self._ui.taurusValueLineH.setModel(hmodel)
        self._ui.taurusLabelValueH.setModel(hmodel)
        kmodel = self.k_device_name + "/Position"
        self._ui.taurusValueLineK.setModel(kmodel)
        self._ui.taurusLabelValueK.setModel(kmodel)
        lmodel = self.l_device_name + "/Position"
        self._ui.taurusValueLineL.setModel(lmodel)
        self._ui.taurusLabelValueL.setModel(lmodel)

        # Set model to engine and modes

        enginemodel = model + '/engine'
        self._ui.taurusLabelEngine.setModel(enginemodel)
        enginemodemodel = model + '/enginemode'
        self._ui.taurusLabelEngineMode.setModel(enginemodemodel)

        self.enginemodescombobox = EngineModesComboBox(self)
        self.enginemodescombobox.setGeometry(QtCore.QRect(150, 445, 221, 27))
        self.enginemodescombobox.setObjectName("enginemodeslist")

        self.enginemodescombobox.loadEngineModeNames(self.device.hklmodelist)

        self.connect(self.enginemodescombobox,
                     Qt.SIGNAL("currentIndexChanged(QString)"),
                     self.onModeChanged)
示例#9
0
    def display_angles(self):

        xangle = []
        for i in range(0, 6):
            xangle.append(40 + i * 100)

        yhkl = 50

        tr = self.device.selectedtrajectory

        w = DisplayScanAngles()

        angles_labels = []
        angles_names = []

        if self.nb_motors == 4:
            angles_names.append("omega")
            angles_names.append("chi")
            angles_names.append("phi")
            angles_names.append("theta")
        elif self.nb_motors == 6:
            angles_names.append("mu")
            angles_names.append("th")
            angles_names.append("chi")
            angles_names.append("phi")
            angles_names.append("gamma")
            angles_names.append("delta")

        dsa_label = []
        for i in range(0, self.nb_motors):
            dsa_label.append(QtGui.QLabel(w))
            dsa_label[i].setGeometry(QtCore.QRect(xangle[i], yhkl, 51, 20))
            label_name = "dsa_label_" + str(i)
            dsa_label[i].setObjectName(label_name)
            dsa_label[i].setText(
                QtGui.QApplication.translate("Form", angles_names[i], None,
                                             QtGui.QApplication.UnicodeUTF8))

        start_hkl = []
        stop_hkl = []
        missed_values = 0
        # TODO: This code will raise exception if one of the line edits is empty.
        # But not all dimensions (H & K & L) are obligatory. One could try
        # to display angles of just 1 or 2 dimensional scan.
        try:
            start_hkl.append(float(self._ui.lineEditStartH.text()))
            start_hkl.append(float(self._ui.lineEditStartK.text()))
            start_hkl.append(float(self._ui.lineEditStartL.text()))
            stop_hkl.append(float(self._ui.lineEditStopH.text()))
            stop_hkl.append(float(self._ui.lineEditStopK.text()))
            stop_hkl.append(float(self._ui.lineEditStopL.text()))
            nb_points = int(self._ui.LineEditNbpoints.text())
        except:
            nb_points = -1
            missed_values = 1

        increment_hkl = []

        if nb_points > 0:
            for i in range(0, 3):
                increment_hkl.append((stop_hkl[i] - start_hkl[i]) / nb_points)

        taurusValueAngle = []

        for i in range(0, nb_points + 1):
            hkl_temp = []
            for j in range(0, 3):
                hkl_temp.append(start_hkl[j] + i * increment_hkl[j])

            no_trajectories = 0
            try:
                self.device.write_attribute("computetrajectoriessim", hkl_temp)
            except:
                no_trajectories = 1

            if not no_trajectories:

                angles_list = self.device.trajectorylist[tr]

                taurusValueAngle.append([])

                for iangle in range(0, self.nb_motors):
                    taurusValueAngle[i].append(TaurusValueLineEdit(w))
                    taurusValueAngle[i][iangle].setGeometry(
                        QtCore.QRect(xangle[iangle], yhkl + 30 * (i + 1), 80,
                                     27))
                    taurusValueAngle[i][iangle].setReadOnly(True)
                    tva_name = "taurusValueAngle" + str(i) + "_" + str(iangle)
                    taurusValueAngle[i][iangle].setObjectName(tva_name)
                    taurusValueAngle[i][iangle].setValue("%10.4f" %
                                                         angles_list[iangle])
            else:
                taurusValueAngle.append(TaurusValueLineEdit(w))
                taurusValueAngle[i].setGeometry(
                    QtCore.QRect(xangle[0], yhkl + 30 * (i + 1),
                                 self.nb_motors * 120, 27))
                taurusValueAngle[i].setReadOnly(True)
                tva_name = "taurusValueAngle" + str(i)
                taurusValueAngle[i].setObjectName(tva_name)
                taurusValueAngle[i].setValue(
                    "...                             No angle solution for hkl values                             ..."
                )
        # TODO: not all dimensions (H & K & L) are obligatory. One could try
        # to display angles of just 1 or 2 dimensional scan.
        if nb_points == -1:
            nb_points = 0
            taurusValueAngle.append(TaurusValueLineEdit(w))
            taurusValueAngle[0].setGeometry(
                QtCore.QRect(xangle[0], yhkl + 30, self.nb_motors * 120, 27))
            taurusValueAngle[0].setReadOnly(True)
            tva_name = "taurusValueAngle"
            taurusValueAngle[0].setObjectName(tva_name)
            taurusValueAngle[0].setValue(
                "...          No scan parameters filled. Fill them in the main window         ..."
            )

        w.resize(self.nb_motors * 140, 120 + nb_points * 40)

        w.show()
        w.show()
示例#10
0
    def setModel(self, model):
        if model is not None:
            self.device = taurus.Device(model)

        xhkl = []
        xangles = []
        xlabels = []
        for i in range(0, 6):
            xhkl.append(70 + 80 * i)
            xangles.append(310 + 80 * i)
            xlabels.append(340 + 90 * i)
        ybasis = 20

        reflections = self.device.reflectionlist

        angle_names = []
        self.angle_labels = []
        self.hkl_values = []
        self.angle_values = []
        self.index_values = []

        # Find number of real motors
        self.nb_angles = len(self.device.motorlist)

        if reflections is not None:
            self.nb_reflections = len(reflections)
        else:
            self.nb_reflections = 0

        try:
            angle_names = self.device.motorroles
        except:  # Only for compatibility
            if self.nb_angles == 4:
                angle_names.append("omega")
                angle_names.append("chi")
                angle_names.append("phi")
                angle_names.append("tth")
            elif self.nb_angles == 6:
                angle_names.append("mu")
                angle_names.append("th")
                angle_names.append("chi")
                angle_names.append("phi")
                angle_names.append("gamma")
                angle_names.append("delta")

        for jref in range(0, 10):
            self.index_values.append(QtGui.QLineEdit(self))
            self.index_values[jref].setLayoutDirection(QtCore.Qt.RightToLeft)
            self.index_values[jref].setGeometry(
                QtCore.QRect(20, ybasis + 30 * (jref + 1), 51, 27))
            object_name = "indexvalue" + str(jref)
            self.index_values[jref].setObjectName(object_name)

        for i in range(0, 3):
            self.hkl_values.append([])
            for jref in range(0, 10):
                self.hkl_values[i].append(QtGui.QLineEdit(self))
                self.hkl_values[i][jref].setLayoutDirection(
                    QtCore.Qt.RightToLeft)
                self.hkl_values[i][jref].setGeometry(
                    QtCore.QRect(xhkl[i], ybasis + 30 * (jref + 1), 81, 27))
                object_name = "hklvalue" + str(i) + "_" + str(jref)
                self.hkl_values[i][jref].setObjectName(object_name)

        for i in range(0, self.nb_angles):
            self.angle_labels.append(QtGui.QLabel(self))
            self.angle_labels[i].setGeometry(
                QtCore.QRect(xangles[i], ybasis, 70, 20))
            self.angle_labels[i].setLayoutDirection(QtCore.Qt.RightToLeft)
            object_name = "anglelabel" + str(i)
            self.angle_labels[i].setObjectName(object_name)
            self.angle_labels[i].setText(
                QtGui.QApplication.translate("Form", angle_names[i], None,
                                             QtGui.QApplication.UnicodeUTF8))
            self.angle_values.append([])
            for jref in range(0, 10):
                self.angle_values[i].append(QtGui.QLineEdit(self))
                self.angle_values[i][jref].setLayoutDirection(
                    QtCore.Qt.RightToLeft)
                self.angle_values[i][jref].setGeometry(
                    QtCore.QRect(xangles[i], ybasis + 30 * (jref + 1), 81, 27))
                object_name = "anglevalue" + str(i) + "_" + str(jref)
                self.angle_values[i][jref].setObjectName(object_name)

        for jref in range(0, self.nb_reflections):
            ref = reflections[jref]
            # Fill index
            self.index_values[jref].setText(str(jref))
            # Fill hkl values
            for i in range(0, 3):
                self.hkl_values[i][jref].setText(
                    ("%12.4f" % ref[i + 1]).strip())
            # Fill the angle values
            for i in range(0, self.nb_angles):
                self.angle_values[i][jref].setText(
                    ("%12.4f" % ref[i + 6]).strip())