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()
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()
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']
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()