""" Arguments: """ MOTORS = [Eph] VECTOR = [295.0, 296.0] LATENCY = 0.0 REGION1 = {'elo': 240.0, 'ehi': 242.0, 'estep': 0.1, 'epass': 100, 'tstep': 0.1, 'iter': 1} REGION2 = {'elo': 241.0, 'ehi': 243.0, 'estep': 0.2, 'epass': 100, 'tstep': 0.1, 'iter': 1} REGIONS = [REGION1, REGION2] Scienta.setAcquisitionMode(ch.psi.pshell.epics.Scienta.AcquisitionMode.Swept) class SpectrumReader(ReadonlyRegisterBase, ReadonlyRegisterArray): def setup(self): Scienta.lowEnergy.write(self.region['elo']) Scienta.highEnergy.write(self.region['ehi']) Scienta.stepSize.write(self.region['estep']) Scienta.setPassEnergy(self.region['epass']) Scienta.stepTime.write(self.region['tstep']) Scienta.setIterations(self.region['iter']) def read(self): print "enter SpectrumReader.read" print str(self.region) self.setup() trig_scienta() time.sleep(0.5) sp = Scienta.getSpectrum().read() nx = len(sp) print "w = ", nx return sp def getSize(self): print "SpectrumReader.getSize" n1 = Scienta.numChannels.read() n2 = len(Scienta.getSpectrumX()) n3 = int((self.region['ehi'] - self.region['elo']) / self.region['estep']) print n1, n2, n3 return n3 class ImageReader(ReadonlyRegisterBase, ReadonlyRegisterMatrix): def read(self): print "ImageReader.read" nx = Scienta.getDataMatrix().getWidth() ny = Scienta.getDataMatrix().getHeight() print "w, h = ", nx, ny return Scienta.getDataMatrix().read() def getWidth(self): print "ImageReader.getWidth" n2 = Scienta.getDataMatrix().getWidth() n3 = int((self.region['ehi'] - self.region['elo']) / self.region['estep']) print n2, n3 return n3 def getHeight(self): print "ImageReader.getHeight" n2 = Scienta.getDataMatrix().getHeight() n3 = Scienta.slices.read() print n2, n3 return n3 index = 0 reader1 = SpectrumReader() reader1.initialize() reader1.index = index reader1.region = REGIONS[index] set_device_alias(reader1, "ScientaSpectrum1") image1 = ImageReader() image1.initialize() image1.index = index image1.region = REGIONS[index] set_device_alias(image1, "ScientaImage1") index = 1 reader2 = SpectrumReader() reader2.initialize() reader2.index = index reader2.region = REGIONS[index] set_device_alias(reader2, "ScientaSpectrum2") image2 = ImageReader() image2.initialize() image2.index = index image2.region = REGIONS[index] set_device_alias(image2, "ScientaImage2") #reader3 = SpectrumReader() #reader3.initialize() #image3 = ImageReader() #image3.initialize() #image3.index=2 #set_device_alias(image3, "ScientaImage3") SENSORS = [SampleCurrent, RefCurrent, reader1, image1, reader2, image2]#, reader3, image3] Scienta.getDataMatrix() adjust_sensors() set_adc_averaging() set_preference(Preference.PLOT_TYPES, {'Scienta spectrum':1}) vscan(MOTORS, SENSORS, VECTOR, True, LATENCY,False, before_read=wait_beam, after_read = after_readout)