def connect_db(self, dbname=None, new=False): """connects to a db, possibly creating a new one""" if dbname is None: filelist = self.config.get_dblist() if new: filelist = None dlg = ConnectDialog(filelist=filelist) dlg.Raise() if dlg.ShowModal() == wx.ID_OK: dbname = dlg.filebrowser.GetValue() if not dbname.endswith('.ein'): dbname = "%s.ein" % dbname else: return None, dbname dlg.Destroy() db = InstrumentDB() if isInstrumentDB(dbname): db.connect(dbname) set_hostpid = True if not db.check_hostpid(): hostname = db.get_info('host_name') pid = db.get_info('process_id') ret = popup(None, FILE_IN_USE_MSG % (os.path.abspath(dbname), hostname, pid), 'Database in use', style=wx.YES_NO|wx.ICON_EXCLAMATION) set_hostpid = (ret != wx.ID_YES) if set_hostpid: db.set_hostpid() else: db.create_newdb(dbname, connect=True) self.config.set_current_db(dbname) return db, dbname
def connect_db(self, dbname=None, new=False): """connects to a db, possibly creating a new one""" dlg = None if dbname is None: filelist = self.config.get_dblist() if new: filelist = None dlg = ConnectDialog(filelist=filelist) dlg.Raise() if dlg.ShowModal() == wx.ID_OK: dbname = dlg.filebrowser.GetValue() if not dbname.endswith('.ein'): dbname = "%s.ein" % dbname else: print(" ... Dlg Destroy") dlg.Destroy() return None, dbname db = InstrumentDB() if isInstrumentDB(dbname): db.connect(dbname) set_hostpid = True if not db.check_hostpid(): hostname = db.get_info('host_name') pid = db.get_info('process_id') ret = popup(None, FILE_IN_USE_MSG % (os.path.abspath(dbname), hostname, pid), 'Database in use', style=wx.YES_NO|wx.ICON_EXCLAMATION) set_hostpid = (ret != wx.ID_YES) if set_hostpid: db.set_hostpid() else: db.create_newdb(dbname, connect=True) self.config.set_current_db(dbname) if dlg is not None: dlg.message.SetLabel("Connecting to Epics PVs in database") for pv in db.get_allpvs(): self.pvlist.init_connect(pv.name, is_motor=(4==pv.pvtype_id)) return db, dbname
def connect_db(self, dbname=None, new=False): """connects to a db, possibly creating a new one""" if dbname is None: filelist = self.config.get_dblist() if new: filelist = None dlg = ConnectDialog(filelist=filelist) dlg.Raise() if dlg.ShowModal() == wx.ID_OK: dbname = dlg.filebrowser.GetValue() if not dbname.endswith('.ein'): dbname = "%s.ein" % dbname else: return None, dbname dlg.Destroy() db = InstrumentDB() if isInstrumentDB(dbname): db.connect(dbname) set_hostpid = True if not db.check_hostpid(): hostname = db.get_info('host_name') pid = db.get_info('process_id') ret = popup(None, FILE_IN_USE_MSG % (os.path.abspath(dbname), hostname, pid), 'Database in use', style=wx.YES_NO | wx.ICON_EXCLAMATION) set_hostpid = (ret != wx.ID_YES) if set_hostpid: db.set_hostpid() else: db.create_newdb(dbname, connect=True) self.config.set_current_db(dbname) return db, dbname