w
This commit is contained in:
@@ -167,6 +167,7 @@ class Pilatus(PSIDeviceBase, ADBase):
|
||||
|
||||
def _poll_array_data(self):
|
||||
while not self._poll_thread_stop_event.wait(1 / self._poll_rate):
|
||||
logger.debug("Polling Pilatus array data for preview...")
|
||||
value = self.image1.array_data.get()
|
||||
if value is None:
|
||||
continue
|
||||
@@ -317,7 +318,7 @@ class Pilatus(PSIDeviceBase, ADBase):
|
||||
# TODO change to new ANDSTATUS
|
||||
status_cam = AndStatus(status_hdf, status_cam)
|
||||
status = AndStatus(status_cam, status_img_written) # , name=f"{self.name}_on_complete")
|
||||
status.add_callback(self._complete_callback) # Callback that writing was successful
|
||||
# status.add_callback(self._complete_callback) # Callback that writing was successful
|
||||
return status
|
||||
|
||||
def on_kickoff(self) -> None:
|
||||
@@ -330,39 +331,43 @@ class Pilatus(PSIDeviceBase, ADBase):
|
||||
|
||||
def on_destroy(self) -> None:
|
||||
"""Called when the device is destroyed. Cleanup resources here."""
|
||||
self.on_stop()
|
||||
self._poll_thread_stop_event.set()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pilatus = Pilatus(name="pilatus", prefix="X01DA-ES2-PIL:")
|
||||
logger.info(f"Calling wait for connection")
|
||||
# pilatus.wait_for_connection(all_signals=True, timeout=20)
|
||||
logger.info(f"Connecting to pilatus...")
|
||||
pilatus.on_connected()
|
||||
for exp_time, scan_number, n_pnts in zip([0.5, 1.0, 2.0], [1, 2, 3], [30, 20, 10]):
|
||||
pilatus.scan_info.msg.num_points = n_pnts
|
||||
pilatus.scan_info.msg.scan_parameters["exposure_time"] = exp_time
|
||||
pilatus.scan_info.msg.scan_parameters["frames_per_trigger"] = 1
|
||||
pilatus.scan_info.msg.info["file_components"] = (
|
||||
f"/sls/x01da/data/p22481/raw/data/S00000-00999/S{scan_number:05d}/S{scan_number:05d}",
|
||||
"h5",
|
||||
)
|
||||
pilatus.on_stage()
|
||||
logger.info(f"Stage done")
|
||||
pilatus.on_pre_scan().wait(timeout=5)
|
||||
logger.info(f"Pre-scan done")
|
||||
for ii in range(pilatus.scan_info.msg.num_points):
|
||||
# if ii == 0:
|
||||
# time.sleep(1)
|
||||
logger.info(f"Triggering image {ii+1}/{pilatus.scan_info.msg.num_points}")
|
||||
pilatus.on_trigger().wait()
|
||||
p = pilatus.preview.get()
|
||||
if p is not None:
|
||||
p: DevicePreviewMessage
|
||||
logger.warning(
|
||||
f"Preview shape: {p.data.shape}, max: {np.max(p.data)}, min: {np.min(p.data)}, mean: {np.mean(p.data)}"
|
||||
)
|
||||
pilatus.on_complete().wait(timeout=5)
|
||||
logger.info(f"Complete done")
|
||||
pilatus.on_unstage()
|
||||
logger.info(f"Unstage done")
|
||||
try:
|
||||
pilatus = Pilatus(name="pilatus", prefix="X01DA-ES2-PIL:")
|
||||
logger.info(f"Calling wait for connection")
|
||||
# pilatus.wait_for_connection(all_signals=True, timeout=20)
|
||||
logger.info(f"Connecting to pilatus...")
|
||||
pilatus.on_connected()
|
||||
for exp_time, scan_number, n_pnts in zip([0.5, 1.0, 2.0], [1, 2, 3], [30, 20, 10]):
|
||||
pilatus.scan_info.msg.num_points = n_pnts
|
||||
pilatus.scan_info.msg.scan_parameters["exposure_time"] = exp_time
|
||||
pilatus.scan_info.msg.scan_parameters["frames_per_trigger"] = 1
|
||||
pilatus.scan_info.msg.info["file_components"] = (
|
||||
f"/sls/x01da/data/p22481/raw/data/S00000-00999/S{scan_number:05d}/S{scan_number:05d}",
|
||||
"h5",
|
||||
)
|
||||
pilatus.on_stage()
|
||||
logger.info(f"Stage done")
|
||||
pilatus.on_pre_scan().wait(timeout=5)
|
||||
logger.info(f"Pre-scan done")
|
||||
for ii in range(pilatus.scan_info.msg.num_points):
|
||||
# if ii == 0:
|
||||
# time.sleep(1)
|
||||
logger.info(f"Triggering image {ii+1}/{pilatus.scan_info.msg.num_points}")
|
||||
pilatus.on_trigger().wait()
|
||||
p = pilatus.preview.get()
|
||||
if p is not None:
|
||||
p: DevicePreviewMessage
|
||||
logger.warning(
|
||||
f"Preview shape: {p.data.shape}, max: {np.max(p.data)}, min: {np.min(p.data)}, mean: {np.mean(p.data)}"
|
||||
)
|
||||
pilatus.on_complete().wait(timeout=5)
|
||||
logger.info(f"Complete done")
|
||||
pilatus.on_unstage()
|
||||
logger.info(f"Unstage done")
|
||||
finally:
|
||||
pilatus.on_destroy()
|
||||
|
||||
Reference in New Issue
Block a user