Startup
This commit is contained in:
77
script/MultiRegionHoloScan.py
Normal file
77
script/MultiRegionHoloScan.py
Normal file
@@ -0,0 +1,77 @@
|
||||
"""
|
||||
Arguments:
|
||||
|
||||
VECTOR (Double[][], Scan vector: Eph,Elow,Ehigh or Eph,Ecenter)
|
||||
SENSORS (list)
|
||||
LATENCY (double)
|
||||
MODE ('fixed' or 'swept')
|
||||
TYPE ('CIS' or 'CFS')
|
||||
STEP (double)
|
||||
"""
|
||||
|
||||
LATENCY = 0.0
|
||||
|
||||
|
||||
class SpectrumReader(ReadonlyRegisterBase, ReadonlyRegisterArray):
|
||||
def doRead(self):
|
||||
global VECTOR
|
||||
self.setup()
|
||||
trig_scienta()
|
||||
time.sleep(0.1)
|
||||
return Scienta.getSpectrum().read()
|
||||
|
||||
def getSize(self):
|
||||
return len(Scienta.getSpectrumX())
|
||||
|
||||
|
||||
class SpectrumReader1(SpectrumReader):
|
||||
def setup(self):
|
||||
global energy_scale_array, initial_energy_range
|
||||
Scienta.getLowEnergy().write(self.elo)
|
||||
Scienta.getHighEnergy().write(self.ehi)
|
||||
Scienta.getStepSize().write(self.estep)
|
||||
energy_scale_array = [Scienta.getLowEnergy().take(), Scienta.getHighEnergy().take(), Scienta.getStepSize().take()]
|
||||
|
||||
class SpectrumReader2(SpectrumReader):
|
||||
def setup(self):
|
||||
global energy_scale_array, initial_energy_range
|
||||
Scienta.getLowEnergy().write(self.elo)
|
||||
Scienta.getHighEnergy().write(self.ehi)
|
||||
Scienta.getStepSize().write(self.estep)
|
||||
energy_scale_array = energy_scale_array + [Scienta.getLowEnergy().take(), Scienta.getHighEnergy().take(), Scienta.getStepSize().take()]
|
||||
append_dataset(energy_scale_table,energy_scale_array)
|
||||
|
||||
class ImageReader(ReadonlyRegisterBase, ReadonlyRegisterMatrix):
|
||||
def doRead(self):
|
||||
return Scienta.getDataMatrix().read()
|
||||
|
||||
def getWidth(self):
|
||||
global initial_energy_range
|
||||
return int( (initial_energy_range[self.index][1] - initial_energy_range[self.index][0]) / initial_energy_range[self.index][2])
|
||||
|
||||
def getHeight(self):
|
||||
return Scienta.getDataMatrix().getHeight()
|
||||
|
||||
|
||||
#PHI_RANGE (tuple (min, max))
|
||||
#THETA_RANGE (tuple (min, max))
|
||||
#STEPS (tuple (phi, theta))
|
||||
def measure_stuff():
|
||||
global VECTOR, MOTORS, SENSORS
|
||||
reader1 = SpectrumReader1(); reader1.initialize()
|
||||
reader2 = SpectrumReader2(); reader2.initialize()
|
||||
image1 = ImageReader(); image1.initialize(); image1.index=0; set_device_alias(image1, "Image1")
|
||||
image2 = ImageReader(); image2.initialize(); image2.index=1; set_device_alias(image2, "Image2")
|
||||
|
||||
Scienta.getDataMatrix()
|
||||
|
||||
SENSORS = [SampleCurrent, RefCurrent, reader1, image1, reader2, image2]
|
||||
|
||||
adjust_sensors()
|
||||
set_adc_averaging()
|
||||
set_preference(Preference.PLOT_TYPES, {'Scienta spectrum':1})
|
||||
|
||||
ascan((ManipulatorPhi, ManipulatorTheta), SENSORS, (PHI_RANGE[0], THETA_RANGE[0]), (PHI_RANGE[1], THETA_RANGE[1]), STEPS, LATENCY, RELATIVE, zigzag = ZIGZAG, before_read=wait_beam, after_read = after_readout)
|
||||
|
||||
global VECTOR, MOTORS, SENSORS
|
||||
measure_stuff()
|
||||
Reference in New Issue
Block a user