From aa71364fe12bf263fd261320a44d7f80eede4fce Mon Sep 17 00:00:00 2001 From: x03daop Date: Wed, 5 Apr 2017 11:37:23 +0200 Subject: [PATCH] Startup --- script/MultiRegionHoloScan.py | 77 +++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 script/MultiRegionHoloScan.py diff --git a/script/MultiRegionHoloScan.py b/script/MultiRegionHoloScan.py new file mode 100644 index 00000000..03d8fa7e --- /dev/null +++ b/script/MultiRegionHoloScan.py @@ -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()