eda_plugin.actuators.pycro.PycroAcquisition

class eda_plugin.actuators.pycro.PycroAcquisition(*args: Any, **kwargs: Any)

Bases: MMAcquisition

MMAcquisition that can be used with actuators.micro_manager.MMActuator.

This implementation of a MMAcquisition uses the remote acquisition interplay between pycromanager (https://github.com/micro-manager/pycro-manager) and Micro-Magellan (https://micro-manager.org/MicroMagellan). An image_process_fn receives the images recorded and sends them to the analyser. A post_hardware_hook gives the possibility to change a capture event. This is used to add another image event with the interval that is currently requested by the interpreter.

__init__(event_bus: EventBus, start_interval: float = 5.0, settings=None)

Set default settings, set up first acquisiton events connect signals.

Methods

__init__(event_bus[, start_interval, settings])

Set default settings, set up first acquisiton events connect signals.

change_interval(new_interval)

Change the internal interval.

get_channel_information()

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

post_hardware(event, _, event_queue)

Return the event, unless acquisition was stopped.

receive_image(image, metadata)

Extract relevant metadata, make utility.data_sctructures.PyImage and notify EventBus.

start()

Start the QThread first, then yourself.

start_acq()

Start acquisition.

stop_acq()

Stop acquisition.

Attributes

acquisition_ended

acquisition_started_event

alias of object

change_interval(new_interval)

Change the internal interval.

get_channel_information()

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

new_image

alias of PyImage

post_hardware(event, _, event_queue: Queue)

Return the event, unless acquisition was stopped.

If acquisition continues running, add another event with the interval present in the moment.

receive_image(image, metadata)

Extract relevant metadata, make utility.data_sctructures.PyImage and notify EventBus.

start()

Start the QThread first, then yourself.

start_acq()

Start acquisition.

stop_acq()

Stop acquisition.

If there would still be many events in the acquisition queue, this would not be trivial. Works here, as this implementation only generates the next event and can then pass None. https://github.com/micro-manager/pycro-manager/issues/340