magscope.zlut_generation

Contents

magscope.zlut_generation#

Attributes#

Classes#

GeneratedZLUTResult

ZLUTGenerationManager

Abstract base class for processes in the MagScope

Module Contents#

magscope.zlut_generation.logger[source]#
class magscope.zlut_generation.GeneratedZLUTResult[source]#
bead_id: int[source]#
zlut_array: numpy.ndarray[source]#
class magscope.zlut_generation.ZLUTGenerationManager[source]#

Bases: magscope.processes.ManagerProcessBase

Abstract base class for processes in the MagScope

Subclass requirements: * Each subclass should have a unique name. * There should only be one instance of each subclass (singleton). * The class name is used for consistent inter-process identification.

_TRACKING_ACQUISITION_MODES[source]#
_active = False[source]#
_cancel_requested = False[source]#
_current_step_index = 0[source]#
_dataset: magscope.datatypes.ZLUTSweepDataset | None = None[source]#
_focus_buffer: magscope.datatypes.MatrixBuffer | None = None[source]#
_focus_motor_name: str | None = None[source]#
_generated_zluts: dict[int, GeneratedZLUTResult][source]#
_last_progress_emit = 0.0[source]#
_phase = 'idle'[source]#
_previous_acquisition_on = False[source]#
_profile_length: int | None = None[source]#
_profiles_per_bead = 0[source]#
_pending_start_request: tuple[float, float, float, int] | None = None[source]#
_current_step_capture_earliest_timestamp = 0.0[source]#
_current_step_profiles_written = 0[source]#
_requested_range: tuple[float, float, float] | None = None[source]#
_selected_bead_id: int | None = None[source]#
_session_bead_roi_ids[source]#
_session_bead_roi_values[source]#
_step_capture_complete = False[source]#
_steps[source]#
setup()[source]#
do_main_loop()[source]#
quit()[source]#

Shutdown the process (and ask the other processes to quit too).

start_generation(start_nm: float, step_nm: float, stop_nm: float, profiles_per_bead: int)[source]#
cancel_generation()[source]#
report_profile_length(profile_length: int | None = None)[source]#
report_focus_motor_limits(z_min: float, z_max: float) None[source]#
handle_capture_complete(step_index: int, written_count: int, written_profiles_per_bead: int, error: str | None = None)[source]#
select_generated_bead(bead_id: int)[source]#
save_generated_zlut(filepath: str, bead_id: int, load_after_save: bool = True)[source]#
cancel_evaluation()[source]#
_prepare_session(start_nm: float, step_nm: float, stop_nm: float, profiles_per_bead: int) None[source]#
_create_dataset() None[source]#
_issue_move_for_current_step() None[source]#
_advance_when_in_position() None[source]#
_advance_after_capture() None[source]#
_complete_session() None[source]#
_cancel_session() None[source]#
_fail_session(reason: str) None[source]#
_fail_evaluation(reason: str) None[source]#
_fail_startup(exc: Exception) None[source]#
_cleanup_runtime_state(*, destroy_dataset: bool) None[source]#
_reset_dataset(*, destroy: bool) None[source]#
_latest_focus_state() tuple[float, float, bool] | None[source]#
_clear_pending_profile_length_request() None[source]#
_bead_id_payload() tuple[int, Ellipsis][source]#
_bead_roi_payload() tuple[tuple[int, int, int, int], Ellipsis][source]#
_maybe_send_progress() None[source]#
_send_progress(*, force: bool) None[source]#
_send_state(status: str, *, detail: str | None = None, running: bool = False, can_cancel: bool = False, phase: str = 'idle') None[source]#
_send_evaluation_state(*, active: bool) None[source]#
_build_generated_zluts() None[source]#
_discover_focus_motor_name() str | None[source]#
static _validate_sweep_limits(start_nm: float, stop_nm: float, z_min: float, z_max: float) None[source]#
static _build_steps(start_nm: float, step_nm: float, stop_nm: float) numpy.ndarray[source]#