Exemple #1
0
    def showMotors(self, displayMode):
        self.motors = {}
        self.motorPanel.close(True) #destroy motor panel
        self.motorPanel = QVBox(self.containerBox)

        if self.hardwareObject is None:
            return
        else:
            if self.hardwareObject.hasObject('motors'):
                #an equipment should have a 'motors' section
                motors = self.hardwareObject['motors']
            else:
                logging.getLogger().warning('Equipment %s does not have motors', self.hardwareObject.userName())
            
        if displayMode == 'tabs':
            self.motorPanel.close(True)
            self.motorPanel = QTabWidget(self.containerBox)
        
            for motorCategory in motors.objectsNames():
                motorTab = QVBox(self.motorPanel)

                self.motorPanel.addTab(motorTab, motorCategory)

                for motor in motors[motorCategory].getDevices():
                    newMotorWidget = MotorBrick.MotorBrick(motorTab, motor.name()) 
                    self.motors[motor.name()] = newMotorWidget

                    newMotorWidget.getProperty('mnemonic').setValue(str(motor.name())) #['mnemonic'] = str(motor.name())
                    newMotorWidget.getProperty('appearance').setValue('tiny')
                    newMotorWidget.getProperty('formatString').setValue(self.getProperty('formatString').getUserValue())
                    newMotorWidget.getProperty('allowConfigure').setValue(True)
                    newMotorWidget.getProperty('allowDoubleClick').setValue(self['allowControl'])
		    newMotorWidget.getProperty('dialogCaption').setValue("%s [%s] - %s" % (self['title'], motorCategory, motor.userName()))
                    newMotorWidget.readProperties()

                    if self.isRunning():
                        newMotorWidget.run()

                    newMotorWidget.show()    

                VerticalSpacer(motorTab)
        else:  
            for motor in motors.getDevices():
                newMotorWidget = MotorBrick.MotorBrick(self.motorPanel, motor.name()) 
                self.motors[motor.name()] = newMotorWidget
                
                #newMotorWidget['mnemonic'] = str(motor.name())
                newMotorWidget.getProperty('mnemonic').setValue(str(motor.name()))
                newMotorWidget.getProperty('appearance').setValue('tiny')
                newMotorWidget.getProperty('formatString').setValue(self.getProperty('formatString').getUserValue())
                newMotorWidget.getProperty('allowConfigure').setValue(True)
                newMotorWidget.getProperty('allowDoubleClick').setValue(self['allowControl'])
                newMotorWidget.readProperties()

                if self.isRunning():
                    newMotorWidget.run()

                newMotorWidget.show()

        self.motorPanel.show()
Exemple #2
0
 def editMotorClicked(self):
     #
     # show full motor control in another window
     #
     self.controlDialog = MotorBrick.MotorControlDialog(self.cmdMotorPosition, '')
     self.controlDialog.setMotorMnemonic(self.motor.name())
     self.controlDialog.exec_loop() #modal
Exemple #3
0
    def __init__(self, *args):
        SynopticBrick.SynopticBrick.__init__.im_func(self, *args)

        self.addProperty("mnemonic", "string", "")
        self.addProperty("allow_control", "boolean", False)
        self.addProperty("mode", "combo", ("expert", "user"), "user")
        self.motor = None
        self.buttons = []

        self.expertPanel = QVBox(self.containerBox)
        self.motorWidget = MotorBrick.MotorBrick(self.expertPanel)
        expertPanelButtonsBox = QGrid(2, Qt.Vertical, self.expertPanel)
        QLabel("pos. name :", expertPanelButtonsBox)
        self.txtPositionName = QLineEdit(expertPanelButtonsBox)
        QLabel("", expertPanelButtonsBox)  # just a spacer in fact
        self.cmdSetPosition = QPushButton("Set pos.", expertPanelButtonsBox)

        self.motorWidget["appearance"] = "tiny"
        self.motorWidget["allowDoubleClick"] = True
        expertPanelButtonsBox.setMargin(5)
        expertPanelButtonsBox.setSpacing(5)

        QObject.connect(
            self.cmdSetPosition, SIGNAL("clicked()"), self.cmdSetPositionClicked
        )
    def __init__(self, *args):
        SynopticBrick.SynopticBrick.__init__.__func__(self, *args)

        self.addProperty('mnemonic', 'string', '')
        self.addProperty('allow_control', 'boolean', False)
        self.addProperty('mode', 'combo', ('expert', 'user'), 'user')
        self.motor = None
        self.buttons = []

        self.expertPanel = QVBox(self.containerBox)
        self.motorWidget = MotorBrick.MotorBrick(self.expertPanel)
        expertPanelButtonsBox = QGrid(2, Qt.Vertical, self.expertPanel)
        QLabel('pos. name :', expertPanelButtonsBox)
        self.txtPositionName = QLineEdit(expertPanelButtonsBox)
        QLabel('', expertPanelButtonsBox)  #just a spacer in fact
        self.cmdSetPosition = QPushButton('Set pos.', expertPanelButtonsBox)

        self.motorWidget['appearance'] = 'tiny'
        self.motorWidget['allowDoubleClick'] = True
        expertPanelButtonsBox.setMargin(5)
        expertPanelButtonsBox.setSpacing(5)

        QObject.connect(self.cmdSetPosition, SIGNAL('clicked()'),
                        self.cmdSetPositionClicked)