def setVisit(visit): user=GDAMetadataProvider.getInstance().getMetadataValue("federalid") if user in ["i06user", "i07user", "i11user", "i22user"]: oldvisit = GDAMetadataProvider.getInstance().getMetadataValue("visit") try: ElogEntry.post("visit manually changed from %s to %s by %s" % (oldvisit, visit, user), "", "gda", None, "BLI07", "BLI07-USR", None) except: pass GDAMetadataProvider.getInstance().setMetadataValue("visit", visit)
def setVisit(visit): user=GDAMetadataProvider.getInstance().getMetadataValue("federalid") if not _valid_visit(visit): raise ValueError(visit + " is not a valid visit") if user != "b21user": oldvisit = GDAMetadataProvider.getInstance().getMetadataValue("visit") try: ElogEntry.post("visit manually changed from %s to %s by %s" % (oldvisit, visit, user), "", "gda", None, "BLB21", "BLB21-USR", None) except: pass GDAMetadataProvider.getInstance().setMetadataValue("visit", visit)
def setVisit(self, visit): oldvisit = GDAMetadataProvider.getInstance().getMetadataValue("visit") GDAMetadataProvider.getInstance().setMetadataValue("visit", visit) user = GDAMetadataProvider.getInstance().getMetadataValue("federalid") if "user" in user: #to get rid of the beamline user account "ixxuser" logTitle = "visit manually changed from %s to %s by %s" % ( oldvisit, visit, user) logContent = "" if self.eLogPost(logTitle, logContent): logger.simpleLog("Changes logged in eLog") else: logger.simpleLog("eLog failed")
def __init__(self, filespec=None, dir=None): self.format = LocalProperties.get( "gda.data.scan.datawriter.dataFormat") if dir != None and dir != "None": self.dir = dir else: self.dir = PathConstructor.createFromDefaultProperty() self.beamline = GDAMetadataProvider.getInstance().getMetadataValue( "instrument", LocalProperties.GDA_INSTRUMENT, "tmp") if (self.format == "NexusDataWriter"): #really should use scanFileName prefix rather than forcing to beamline- self.prefix = LocalProperties.get("gda.data.filePrefix", self.beamline + "-") self.ext = "nxs" if filespec == None: filespec = "%d" % NumTracker(self.beamline).currentFileNumber else: self.prefix = "" self.ext = "dat" if filespec == None: filespec = "%d" % NumTracker().currentFileNumber filespec = filespec.__str__() self.filename = self.tryFiles([ filespec, self.dir + "/" + filespec, self.prefix + filespec + "." + self.ext, self.dir + "/" + self.prefix + filespec + "." + self.ext, self.dir + "/" + filespec + "." + self.ext ]) if (self.filename == None): raise Exception("no file found for %s" % filespec)
def __init__(self, filespec=None, dir=None): self.format = LocalProperties.get("gda.data.scan.datawriter.dataFormat") if dir!=None and dir != "None": self.dir=dir else: self.dir = PathConstructor.createFromDefaultProperty() self.beamline = GDAMetadataProvider.getInstance().getMetadataValue("instrument", LocalProperties.GDA_INSTRUMENT, "tmp") if (self.format == "NexusDataWriter"): #really should use scanFileName prefix rather than forcing to beamline- self.prefix = LocalProperties.get("gda.data.filePrefix",self.beamline + "-") self.ext = "nxs" if filespec==None: filespec = "%d" % NumTracker(self.beamline).currentFileNumber else: self.prefix = "" self.ext = "dat" if filespec==None: filespec = "%d" % NumTracker().currentFileNumber filespec = filespec.__str__() self.filename = self.tryFiles([ filespec, self.dir+"/"+filespec, self.prefix+filespec+"."+self.ext, self.dir+"/"+self.prefix+filespec+"."+self.ext, self.dir+"/"+filespec+"."+self.ext ]) if (self.filename == None): raise Exception("no file found for %s" % filespec)
def __init__(self, name, scannablesToRead): self.setName(name) self.scannablesToRead = scannablesToRead self.setInputNames([]) self.setExtraNames([]) self.setOutputFormat([]) self.metadata = GDAMetadataProvider.getInstance(0);
def __init__(self, name, detectorsToCheck): self.setName(name) self.detectors = detectorsToCheck self.setInputNames(["time"]) self.setExtraNames([]) self.setOutputFormat(["%5.5f"]) self.metadata = GDAMetadataProvider.getInstance(0); self.scanCommand=None
def __init__(self, beanFile): self.__version__ = '1.02' finder = gda.factory.Finder.getInstance() find = finder.find self.simulate = False self.holdsample = SAMPLE_HOLD self.samplevolume = 35 self.beanFile = beanFile self.bean = BSSCSessionBean.createFromXML(beanFile) self.bssc = finder.listAllLocalObjects( "uk.ac.gda.devices.bssc.BioSAXSSampleChanger")[0] self.tfg = finder.listAllLocalObjects("gda.device.Timer")[0] self.jsf = JythonServerFacade.getInstance() self.detector = finder.listAllLocalObjects( "uk.ac.gda.server.ncd.detectorsystem.NcdDetectorSystem")[0] self.shutter = find("shutter") self.bsscscannable = find("bsscscannable") self.processing = find("bssc_proc") #self.energy = float(find("dcm_energy").getPosition()) self.sampleConcentration = find("sample_concentration") self.sampleName = find("samplename") self.sample_type = find('sample_type') self.sample_environment = find('sample_environment') self.experiment_definition = gdaserver.experiment_definition self.metashop = gdaserver.metashop self.meta = GDAMetadataProvider.getInstance() #need to remove hardcoding find("sample_thickness").asynchronousMoveTo(1.6) self.progresscounter = 0 self.overheadsteps = 5 self.stepspersample = 8 if self.simulate: print "running in simulation mode" self.scannables = [self.detector, self.bsscscannable] else: self.cam = gda.factory.Finder.getInstance().find("bsaxscam") self.scannables = [self.detector, self.bsscscannable, self.cam] currentVisit = GDAMetadataProvider.getInstance().getMetadataValue( "visit") self.totalSteps = self.overheadsteps + self.bean.getMeasurements( ).size() * self.stepspersample
def getVisit(): """ Returns string representing current visit ID, eg cm4963-2 """ try: gdaMetaProvider=GDAMetadataProvider.getInstance() except: exceptionType, exception, traceback = sys.exc_info() handle_messages.log(None, "problem getting GDA metadata provider", exceptionType, exception, traceback, False) print "Failed to get GDA metadata provider:", exception return gdaMetaProvider.getMetadataValue(GDAMetadataProvider.EXPERIMENT_IDENTIFIER)
def __init__(self, beanFile): self.__version__ = '1.02' finder = gda.factory.Finder.getInstance() find = finder.find self.simulate = False self.holdsample = SAMPLE_HOLD self.samplevolume = 35 self.beanFile = beanFile self.bean = BSSCSessionBean.createFromXML(beanFile) self.bssc = finder.listAllLocalObjects("uk.ac.gda.devices.bssc.BioSAXSSampleChanger")[0] self.tfg = finder.listAllLocalObjects("gda.device.Timer")[0] self.jsf = JythonServerFacade.getInstance() self.detector = finder.listAllLocalObjects("uk.ac.gda.server.ncd.detectorsystem.NcdDetectorSystem")[0] self.shutter = find("shutter") self.bsscscannable = find("bsscscannable") self.processing = find("bssc_proc") #self.energy = float(find("dcm_energy").getPosition()) self.sampleConcentration = find("sample_concentration") self.sampleName = find("samplename") self.sample_type = find('sample_type') self.sample_environment = find('sample_environment') self.experiment_definition = gdaserver.experiment_definition self.metashop = gdaserver.metashop self.meta = GDAMetadataProvider.getInstance() #need to remove hardcoding find("sample_thickness").asynchronousMoveTo(1.6) self.progresscounter = 0 self.overheadsteps = 5 self.stepspersample = 8 if self.simulate: print "running in simulation mode" self.scannables = [self.detector, self.bsscscannable] else: self.cam = gda.factory.Finder.getInstance().find("bsaxscam") self.scannables = [self.detector, self.bsscscannable, self.cam] currentVisit = GDAMetadataProvider.getInstance().getMetadataValue("visit") self.totalSteps = self.overheadsteps + self.bean.getMeasurements().size() * self.stepspersample
def __init__(self, name): self.setName(name) self.setInputNames([]) self.setExtraNames([]) self.setOutputFormat([]) self.extraHeaderItem = set() self.deviceList = [] self.metadata = GDAMetadataProvider.getInstance(0) self.scanLogger = None self.startingTime = None self.positionString = None
def setTitle(title): GDAMetadataProvider.getInstance().setMetadataValue("title", title)
def getSubdirectory(): return GDAMetadataProvider.getInstance().getMetadataValue("subdirectory")
def setSubdirectory(title): GDAMetadataProvider.getInstance().setMetadataValue("subdirectory", title)
def _get_store_key(): visit = GDAMetadataProvider.getInstance().getMetadataValue('visit') key = '%s.bsl' % visit return key
def _get_store_key(): visit = GDAMetadataProvider.getInstance().getMetadataValue('visit') key = '%s.bsl' %visit return key
from gda.factory import Finder from gda.observable import IObserver from uk.ac.diamond.daq.persistence.jythonshelf import LocalParameters from gda.data.metadata import GDAMetadataProvider BSL_CONVERSION_CONFIGURED = 'gda.scan.processing.bsl.configured' RUNNER = Finder.getInstance().find('bslConversion') class BslConversionUpdater(IObserver): def update(self, source, arg): print 'Visit changed to ' + str(arg) restore() if not LocalProperties.contains(BSL_CONVERSION_CONFIGURED): LocalProperties.set(BSL_CONVERSION_CONFIGURED, 'True') for meta in GDAMetadataProvider.getInstance().getMetadataEntries(): if meta.name == 'visit': break if meta: meta.addIObserver(BslConversionUpdater()) CONFIGURATION_FILE = 'bslUsers' DEFAULT = False STORE = LocalParameters.getXMLConfiguration(CONFIGURATION_FILE) def isConvertingOn(): """Check whether new files will be converted automatically""" return RUNNER.enabled
from uk.ac.diamond.daq.persistence.jythonshelf import LocalParameters from gda.data.metadata import GDAMetadataProvider BSL_CONVERSION_CONFIGURED = 'gda.scan.processing.bsl.configured' RUNNER = Finder.getInstance().find('bslConversion') class BslConversionUpdater(IObserver): def update(self, source, arg): print 'Visit changed to ' + str(arg) restore() if not LocalProperties.contains(BSL_CONVERSION_CONFIGURED): LocalProperties.set(BSL_CONVERSION_CONFIGURED, 'True') for meta in GDAMetadataProvider.getInstance().getMetadataEntries(): if meta.name == 'visit': break if meta: meta.addIObserver(BslConversionUpdater()) CONFIGURATION_FILE = 'bslUsers' DEFAULT = False STORE = LocalParameters.getXMLConfiguration(CONFIGURATION_FILE) def isConvertingOn(): """Check whether new files will be converted automatically""" return RUNNER.enabled
def getTitle(): return GDAMetadataProvider.getInstance().getMetadataValue("title")
def getVisit(): return GDAMetadataProvider.getInstance().getMetadataValue("visit")
def setTitle(self, title): GDAMetadataProvider.getInstance().setMetadataValue("title", title)