pymmcore_plus.mda package#


Module contents#

class MDAEngine(mmc: CMMCorePlus = None)[source]#

Bases: pymmcore_plus.mda._engine.PMDAEngine


Cancel the currently running acquisition.

This is a no-op if no acquisition is currently running. If an acquisition is running then this will cancel the acquistion and a sequenceCanceled signal, followed by a sequenceFinished signal will be emitted.

property events:

Return the MDA events object.

is_paused() bool[source]#

Return whether the acquistion is currently paused.

Use toggle_pause to change the paused state.


bool – Whether the current acquistion is paused.

is_running() bool[source]#

Return whether an acquistion is currently underway.

This will return True at any point between the emission of the sequenceStarted and sequenceFinished signals, including when the acquisition is currently paused.


bool – Whether an acquistion is underway.

run(sequence: useq._mda_sequence.MDASequence) None[source]#

Run the multi-dimensional acquistion defined by sequence.

Most users should not use this directly as it will block further execution. Instead use run_mda on CMMCorePlus which will run on a thread.


sequence (MDASequence) – The sequence of events to run.


Toggle the paused state of the current acquisition.

To get whether the acquisition is currently paused use the is_paused method. This method is a no-op if no acquistion is currently underway.

class PMDAEngine(*args, **kwargs)[source]#

Bases: Protocol

abstract cancel()[source]#

Cancel the MDA.

abstract property events:

Return the MDA events object.

abstract is_paused() bool[source]#

Returns whether the acquistion is currently paused.

abstract is_running() bool[source]#

Return whether currently running an Acquistion

abstract run(sequence: useq._mda_sequence.MDASequence)[source]#

Start the acquisition loop blocking the current thread.

abstract toggle_pause()[source]#

Switch whether the MDA is paused.