This commit is contained in:
2025-06-16 21:26:58 +02:00
parent c0831210c8
commit f49018754e

View File

@@ -70,7 +70,7 @@ class TomoComponents:
for cam in self.cameras:
yield from self.stubs.send_rpc_and_wait(
device=cam, func_name="restore_config", name=name
)
)
def update_live_processing_references(self, ref_type: Literal["dark", "flat"]):
"""
@@ -143,6 +143,43 @@ class TomoComponents:
yield from self.acquire_flat(num_flats, exposure_time=exp_time, name=name)
class AcquireDark(ScanBase):
scan_name = "acquire_dark"
def __init__(self, exp_time: float, frames_per_trigger: int = 1, **kwargs):
"""
Acquire dark images.
Args:
num_images (int): Number of dark images to acquire.
exposure_time (float): Exposure time for each dark image in seconds.
name (str): Name for the dark image acquisition. Default: "dark"
Returns:
ScanReport
"""
super().__init__(frames_per_trigger=frames_per_trigger, exp_time=exp_time, **kwargs)
self.components = TomoComponents(self)
def scan_report_instructions(self):
"""
Generate scan report instructions for the dark image acquisition.
This method provides the necessary instructions to listen to the camera progress during the scan.
"""
if not self.components.cameras:
yield from super().scan_report_instructions()
return
# Use the first camera or "gfcam" if available for reporting
report_camera = (
"gfcam" if "gfcam" in self.components.cameras else self.components.cameras[0]
)
yield from self.stubs.scan_report_instruction({"device_progress": [report_camera]})
def scan_core(self):
yield from self.components.acquire_dark(self.frames_per_trigger, self.exp_time, name="dark")
class TomoScan(LineScan):
scan_name = "tomo_line_scan"