Example #1
0
    def onFolderSelect(self,evt):
        style = wx.DD_DIR_MUST_EXIST|wx.DD_DEFAULT_STYLE
        
        dlg = wx.DirDialog(self, "Select Working Directory:", os.getcwd(),
                           style=style)

        if dlg.ShowModal() == wx.ID_OK:
            basedir = os.path.abspath(str(dlg.GetPath()))
            try:
                os.chdir(nativepath(basedir))
                self.mapper.basedir = basedir
            except OSError:
                pass
        dlg.Destroy()
Example #2
0
    def connect_mapper(self):
        "setup epics callbacks for PVs from mapper "
        mapper_pv = self.config['general']['mapdb']
        self.mapper = mapper(mapper_pv)
        self.mapper.add_callback('Start',self.onMapStart)
        self.mapper.add_callback('Abort',self.onMapAbort)
        self.mapper.add_callback('message',self.onMapMessage)
        self.mapper.add_callback('info',self.onMapInfo)
        self.mapper.add_callback('nrow',self.onMapRow)
        if self._pvs is None:
            self._pvs = {}
            for pvname,label in self.config['slow_positioners'].items():
                self._pvs[label] = epics.PV(pvname)

        os.chdir(nativepath(self.mapper.basedir))
        self.SetMotorLimits()
Example #3
0
    def ReadMaster(self):
        self.rowdata = None
        self.master_header = None

        if self.folder is not None:
            fname = os.path.join(nativepath(self.folder), self.MasterFile)
            # print  'EscanWriter Read Scan file ', fname
            if os.path.exists(fname):
                try:
                    header, rows = readMasterFile(fname)
                except:
                    print 'Cannot read Scan folder'
                    return
                self.master_header = header
                self.rowdata = rows
                self.starttime = self.master_header[0][6:]
        if self.environ is None:
            self.environ = readEnvironFile(os.path.join(self.folder, self.EnvFile))

        if self.roidata is None:
            # print 'Read ROI data from ', os.path.join(self.folder,self.ROIFile)
            self.roidata = readROIFile(os.path.join(self.folder,self.ROIFile))

        if self.scanconf is None:
            fastmap = FastMapConfig()
            self.slow_positioners = fastmap.config['slow_positioners']
            self.fast_positioners = fastmap.config['fast_positioners']

            self.scanconf, self.generalconf = readScanConfig(os.path.join(self.folder,self.ScanFile))
            scan = self.scanconf
            self.mca_prefix = self.generalconf['xmap']

            self.dim = self.scanconf['dimension']
            self.comments = self.scanconf['comments']
            self.filename = self.scanconf['filename']

            self.pos1 = self.scanconf['pos1']

            self.ipos1 = -1
            for i, posname in enumerate(self.fast_positioners):
                if posname == self.pos1:
                    self.ipos1 = i

            if self.dim > 1:
                self.pos2 =self.scanconf['pos2']
Example #4
0
    def onStartScan(self,evt=None):
        fname = str(self.filename.GetValue())
        if os.path.exists(fname):
            fname = increment_filename(fname)
            self.filename.SetValue(fname)

        sname = 'CurrentScan.ini'
        if os.path.exists(sname):
            shutil.copy(sname, 'PreviousScan.ini')
            
        self.SaveConfigFile(sname, scan_only=True)
        self.mapper.StartScan(fname, sname)            

        # setup escan saver 
        self.data_mode   = 'w'
        self.data_fname  = os.path.abspath(os.path.join(nativepath(self.mapper.basedir), self.mapper.filename))

        self.usertitles.Disable()
        self.filename.Disable()        
        self.abortbutton.Enable()        
        self.start_time = time.time()