Skip to content

Commit 9fdf7bc

Browse files
authored
Merge pull request #25 from JunAishima/fix-raster-2022-12
Fix raster 2022 12
2 parents dfd4d7e + 4328f65 commit 9fdf7bc

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

mxtools/flyer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ def setup_vector_program(
310310

311311
def zebra_daq_prep(self):
312312
self.zebra.reset.put(1)
313-
ttime.sleep(2.0)
313+
ttime.sleep(2.0) # not known why this sleep is so long (done since LSDC 1)
314314
self.zebra.out1.put(31)
315315
self.zebra.m1_set_pos.put(1)
316316
self.zebra.m2_set_pos.put(1)

mxtools/raster_flyer.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,35 @@ def configure_detector(self, **kwargs):
4242
self.detector.file.external_name.put(file_prefix)
4343
self.detector.file.write_path_template = data_directory_name
4444

45+
def configure_zebra(self, **kwargs):
46+
angle_start = kwargs["angle_start"]
47+
exposurePeriodPerImage = kwargs["exposure_period_per_image"]
48+
detector_dead_time = kwargs["detector_dead_time"]
49+
scanWidth = kwargs["scan_width"]
50+
imgWidth = kwargs["img_width"]
51+
numImages = kwargs["num_images"]
52+
self.zebra_daq_prep()
53+
self.zebra.pc.encoder.put(3) # encoder 0=x, 1=y,2=z,3=omega
54+
ttime.sleep(1.0) # used since LSDC 1 - reason unknown
55+
self.zebra.pc.direction.put(0) # direction 0 = positive
56+
self.zebra.pc.gate.sel.put(0)
57+
self.zebra.pc.pulse.sel.put(1)
58+
self.zebra.pc.pulse.start.put(0)
59+
60+
PW = (exposurePeriodPerImage - detector_dead_time) * 1000
61+
PS = (exposurePeriodPerImage) * 1000
62+
GW = scanWidth - (1.0 - (PW / PS)) * (imgWidth / 2.0)
63+
self.setup_zebra_vector_scan(
64+
angle_start=angle_start,
65+
gate_width=GW,
66+
scan_width=scanWidth + 0.001, # JA not sure why, but done in old LSDC
67+
pulse_width=PW,
68+
pulse_step=PS,
69+
exposure_period_per_image=exposurePeriodPerImage,
70+
num_images=numImages,
71+
is_still=imgWidth == 0,
72+
)
73+
4574
# expected zebra setup:
4675
# time in ms
4776
# Posn direction: positive
@@ -68,6 +97,8 @@ def setup_zebra_vector_scan(
6897
self.zebra.pc.pulse.step.put(pulse_step)
6998
self.zebra.pc.pulse.delay.put(exposure_period_per_image / 2 * 1000)
7099
self.zebra.pc.pulse.max.put(num_images)
100+
self.vector.hold.put(0) # necessary to prevent problems upon
101+
# exposure time change
71102

72103
def detector_arm(self, **kwargs):
73104
start = kwargs["angle_start"]

0 commit comments

Comments
 (0)