eda_plugin.actuators.micro_manager.TimerMMAcquisition

class eda_plugin.actuators.micro_manager.TimerMMAcquisition(*args: Any, **kwargs: Any)

Bases: MMAcquisition

An acquisition using a timer in slow mode to ‘open; acquisition in specific intervals.

A mechanism is used where the acquisition in Micro-Manager is paused for the interval time and resarted for a short time period to allow for the acquisition of the necessary frames. The time that this takes should be calibrated by calling calibrate. If this is not called, the time to wait is estimated and depends on the channel_switch_time defined in the MMAcquisition. As this can be wrong and not all slices/channels might have been recorded, check_missing_channels opens up the acquisition again to get additional frames as necessary. It also increases the wait_time for the next time, if it was calibrated. This will fine-adjust the wait time and make the acquisition more consistent. The updated wait_time is also saved into MMActuator for the next acquisition.

__init__(studio, start_interval: float = 5.0, calibrated_wait_time: float | None = None, auto_adjust: bool = False)

Initialise the QTimer and connect signals.

Methods

__init__(studio[, start_interval, ...])

Initialise the QTimer and connect signals.

acquire()

Open acquisition for a short time in slow mode.

calibrate()

Take a short sequence and measure the time to open acquisition for each frame.

change_interval

check_missing_channels([adjust])

Get missing images.

get_channel_information()

Get channel information from the MM table and count how many channels are active.

start()

Start the QThread first, then yourself.

start_acq()

Start the acquisition with the current settings.

stop_acq

Attributes

acquisition_ended

acquire()

Open acquisition for a short time in slow mode.

calibrate()

Take a short sequence and measure the time to open acquisition for each frame.

Take this as a starting point for a ramp up.

change_interval(new_interval: float)

Information received by MMACtuator from the interpreter, change internal interval.

Here, the acquisition is originally set up in the fast interval, so we will stop any special intervention if we go into fast mode and just let the acquisition run. If we set up slow mode, we will set the timer to temporarily let the acquisition run on a frequency the represents the slow interval.

check_missing_channels(adjust: bool = False)

Get missing images.

Check if there are all images of the last timepoint in the datastore. If not, acquisition was closed too early, open up the acquisiton again for a shorter time to gather the missing images. It could be helpful to increase channel_switch_time automatically if this happens often for acquisiton.

get_channel_information()

Get channel information from the MM table and count how many channels are active.

start()

Start the QThread first, then yourself.

start_acq()

Start the acquisition with the current settings.

stop_acq()

Stop received from MM or GUI, stop.