Esempio n. 1
0
    def __init__(self, parent = None):
        super(RoiWidget, self).__init__(parent) # __init__(parent) for send signal to main

        # GUI construction
        self.ui = Ui_roiWidget()
        self.ui.setupUi(self)

        # define signal for GUI user operation----------------------------------------
        self.makeElementList()
        self.connect(self.ui.elements, SIGNAL("currentIndexChanged(int)"),
                     self.onEdgeChoice)
        self.connect(self.ui.doubleE0, SIGNAL("valueChanged(double)"),
                     self.updateElementList)
        self.connect(self.ui.btnE0, SIGNAL("clicked()"),
                     self.moveE0)
        self.connect(self.ui.btnStartScan, SIGNAL("clicked()"),
                     self.startScan)
        self.connect(self.ui.btnStopScan, SIGNAL("clicked()"),
                     self.stopScan)

        # region calculation----------------------------------------------------------
        self.reg_settings = []
        self.reg_settings.append(
            (self.ui.doublePre1Start,  self.ui.doublePre1Stop,
             self.ui.doublePre1Step,   self.ui.doublePre1Time,
             self.ui.labelPre1Units))
        self.reg_settings.append(
            (self.ui.doublePre2Start,  self.ui.doublePre2Stop,
             self.ui.doublePre2Step,   self.ui.doublePre2Time,
             self.ui.labelPre2Units))
        self.reg_settings.append(
            (self.ui.doubleXANESStart, self.ui.doubleXANESStop,
             self.ui.doubleXANESStep,  self.ui.doubleXANESTime,
             self.ui.labelXANESUnits))
        self.reg_settings.append(
            (self.ui.doubleXAFS1Start, self.ui.doubleXAFS1Stop,
             self.ui.doubleXAFS1Step,  self.ui.doubleXAFS1Time,
             self.ui.XAFS1Units))
        self.reg_settings.append(
            (self.ui.doubleXAFS2Start, self.ui.doubleXAFS2Stop,
             self.ui.doubleXAFS2Step,  self.ui.doubleXAFS2Time,
             self.ui.XAFS2Units))
        self.reg_settings.append(
            (self.ui.doubleXAFS3Start, self.ui.doubleXAFS3Stop,
             self.ui.doubleXAFS3Step,  self.ui.doubleXAFS3Time,
             self.ui.XAFS3Units))

        # Setup default ROI index(XAFS2)----------------------------------------------
        self.ui.selectRegion.currentIndexChanged.connect(self.regionChanged)
        self.regionChanged(self.ui.selectRegion.currentIndex())

        # Setup current energy to E0 value--------------------------------------------
        try:
            self.ui.doubleE0.setValue(epics.caget(e0Name+'.RBV', timeout=10))
        except:
            pass

        self.updateElementList()

        self.ui.progressBar.setValue(0.0)

        # Try connect to SCAN SERVER!
        try:
            self.scan_handle = ThreadScanData()

        except Exception as e:
            print e
            QMessageBox.warning(self, "Oops SCAN server",
                                " Scan server not connected please restart this program ",
                                QMessageBox.Ok)

        self.scan_handle.commSignal.connect(self.showData)