magscope.ipc_commands
=====================

.. py:module:: magscope.ipc_commands


Classes
-------

.. autoapisummary::

   magscope.ipc_commands.Command
   magscope.ipc_commands.QuitCommand
   magscope.ipc_commands.SetSettingsCommand
   magscope.ipc_commands.UpdateSettingsCommand
   magscope.ipc_commands.UpdateTrackingOptionsCommand
   magscope.ipc_commands.SetAcquisitionOnCommand
   magscope.ipc_commands.WaitUntilAcquisitionOnCommand
   magscope.ipc_commands.SetAcquisitionDirOnCommand
   magscope.ipc_commands.SetAcquisitionModeCommand
   magscope.ipc_commands.SetAcquisitionDirCommand
   magscope.ipc_commands.UpdateBeadRoisCommand
   magscope.ipc_commands.LogExceptionCommand
   magscope.ipc_commands.StartupReadyCommand
   magscope.ipc_commands.UpdateCameraSettingCommand
   magscope.ipc_commands.SetSimulatedFocusCommand
   magscope.ipc_commands.MoveFocusMotorAbsoluteCommand
   magscope.ipc_commands.RequestFocusMotorLimitsCommand
   magscope.ipc_commands.ReportFocusMotorLimitsCommand
   magscope.ipc_commands.UpdateVideoBufferPurgeCommand
   magscope.ipc_commands.MoveBeadsCommand
   magscope.ipc_commands.AddRandomBeadsCommand
   magscope.ipc_commands.UpdateXYLockEnabledCommand
   magscope.ipc_commands.UpdateXYLockIntervalCommand
   magscope.ipc_commands.UpdateXYLockMaxCommand
   magscope.ipc_commands.UpdateXYLockWindowCommand
   magscope.ipc_commands.UpdateZLockEnabledCommand
   magscope.ipc_commands.UpdateZLockBeadCommand
   magscope.ipc_commands.UpdateZLockTargetCommand
   magscope.ipc_commands.UpdateZLockIntervalCommand
   magscope.ipc_commands.UpdateZLockMaxCommand
   magscope.ipc_commands.UpdateZLockWindowCommand
   magscope.ipc_commands.UpdateScriptStatusCommand
   magscope.ipc_commands.UpdateScriptStepCommand
   magscope.ipc_commands.ShowMessageCommand
   magscope.ipc_commands.ShowErrorCommand
   magscope.ipc_commands.UpdateZLUTMetadataCommand
   magscope.ipc_commands.LoadZLUTCommand
   magscope.ipc_commands.UnloadZLUTCommand
   magscope.ipc_commands.StartZLUTGenerationCommand
   magscope.ipc_commands.CancelZLUTGenerationCommand
   magscope.ipc_commands.UpdateZLUTGenerationStateCommand
   magscope.ipc_commands.UpdateZLUTGenerationProgressCommand
   magscope.ipc_commands.UpdateZLUTGenerationEvaluationCommand
   magscope.ipc_commands.SelectGeneratedZLUTBeadCommand
   magscope.ipc_commands.SaveGeneratedZLUTCommand
   magscope.ipc_commands.CancelGeneratedZLUTEvaluationCommand
   magscope.ipc_commands.RequestProfileLengthCommand
   magscope.ipc_commands.ReportProfileLengthCommand
   magscope.ipc_commands.RequestZLUTProfileLengthCommand
   magscope.ipc_commands.ReportZLUTProfileLengthCommand
   magscope.ipc_commands.ClearPendingZLUTProfileLengthCommand
   magscope.ipc_commands.ArmZLUTSweepCaptureCommand
   magscope.ipc_commands.DisarmZLUTSweepCaptureCommand
   magscope.ipc_commands.ZLUTSweepCaptureCompleteCommand
   magscope.ipc_commands.RemoveBeadFromPendingMovesCommand
   magscope.ipc_commands.RemoveBeadsFromPendingMovesCommand
   magscope.ipc_commands.SetXYLockOnCommand
   magscope.ipc_commands.ExecuteXYLockCommand
   magscope.ipc_commands.SetXYLockIntervalCommand
   magscope.ipc_commands.SetXYLockMaxCommand
   magscope.ipc_commands.SetXYLockWindowCommand
   magscope.ipc_commands.SetZLockOnCommand
   magscope.ipc_commands.SetZLockBeadCommand
   magscope.ipc_commands.SetZLockTargetCommand
   magscope.ipc_commands.SetZLockIntervalCommand
   magscope.ipc_commands.SetZLockMaxCommand
   magscope.ipc_commands.SetZLockWindowCommand
   magscope.ipc_commands.GetCameraSettingCommand
   magscope.ipc_commands.SetCameraSettingCommand
   magscope.ipc_commands.LoadScriptCommand
   magscope.ipc_commands.StartScriptCommand
   magscope.ipc_commands.PauseScriptCommand
   magscope.ipc_commands.ResumeScriptCommand
   magscope.ipc_commands.SleepCommand
   magscope.ipc_commands.UpdateWaitingCommand


Module Contents
---------------

.. py:class:: Command

   Typed IPC payload sent between processes.


.. py:class:: QuitCommand

   Bases: :py:obj:`Command`


   Request that all manager processes exit.


.. py:class:: SetSettingsCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: settings
      :type:  magscope.settings.MagScopeSettings


.. py:class:: UpdateSettingsCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: settings
      :type:  magscope.settings.MagScopeSettings


.. py:class:: UpdateTrackingOptionsCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  dict


.. py:class:: SetAcquisitionOnCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  bool


.. py:class:: WaitUntilAcquisitionOnCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  bool


.. py:class:: SetAcquisitionDirOnCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  bool


.. py:class:: SetAcquisitionModeCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: mode
      :type:  magscope.utils.AcquisitionMode


.. py:class:: SetAcquisitionDirCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  str | None


.. py:class:: UpdateBeadRoisCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


.. py:class:: LogExceptionCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: process_name
      :type:  str


   .. py:attribute:: details
      :type:  str


.. py:class:: StartupReadyCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: process_name
      :type:  str
      :value: 'UIManager'



.. py:class:: UpdateCameraSettingCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: name
      :type:  str


   .. py:attribute:: value
      :type:  str


.. py:class:: SetSimulatedFocusCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: offset
      :type:  float


.. py:class:: MoveFocusMotorAbsoluteCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: z
      :type:  float


.. py:class:: RequestFocusMotorLimitsCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


.. py:class:: ReportFocusMotorLimitsCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: z_min
      :type:  float


   .. py:attribute:: z_max
      :type:  float


.. py:class:: UpdateVideoBufferPurgeCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: t
      :type:  float


.. py:class:: MoveBeadsCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: moves
      :type:  list[tuple[int, int, int]]


.. py:class:: AddRandomBeadsCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: count
      :type:  int


   .. py:attribute:: seed
      :type:  int | None
      :value: None



.. py:class:: UpdateXYLockEnabledCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  bool


.. py:class:: UpdateXYLockIntervalCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: UpdateXYLockMaxCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: UpdateXYLockWindowCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  int


.. py:class:: UpdateZLockEnabledCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  bool


.. py:class:: UpdateZLockBeadCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  int


.. py:class:: UpdateZLockTargetCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: UpdateZLockIntervalCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: UpdateZLockMaxCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: UpdateZLockWindowCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  int


.. py:class:: UpdateScriptStatusCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: status
      :type:  magscope.scripting.ScriptStatus


.. py:class:: UpdateScriptStepCommand

   Bases: :py:obj:`Command`


   Report the currently executing script step to the GUI.


   .. py:attribute:: current_step
      :type:  int | None


   .. py:attribute:: total_steps
      :type:  int


   .. py:attribute:: description
      :type:  str | None


.. py:class:: ShowMessageCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: text
      :type:  str


   .. py:attribute:: details
      :type:  str | None
      :value: None



.. py:class:: ShowErrorCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: text
      :type:  str


   .. py:attribute:: details
      :type:  str | None
      :value: None



.. py:class:: UpdateZLUTMetadataCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: filepath
      :type:  str | None
      :value: None



   .. py:attribute:: z_min
      :type:  float | None
      :value: None



   .. py:attribute:: z_max
      :type:  float | None
      :value: None



   .. py:attribute:: step_size
      :type:  float | None
      :value: None



   .. py:attribute:: profile_length
      :type:  int | None
      :value: None



.. py:class:: LoadZLUTCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: filepath
      :type:  str


.. py:class:: UnloadZLUTCommand

   Bases: :py:obj:`Command`


   Clear the currently loaded Z-LUT.


.. py:class:: StartZLUTGenerationCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: start_nm
      :type:  float


   .. py:attribute:: step_nm
      :type:  float


   .. py:attribute:: stop_nm
      :type:  float


   .. py:attribute:: profiles_per_bead
      :type:  int


.. py:class:: CancelZLUTGenerationCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


.. py:class:: UpdateZLUTGenerationStateCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: status
      :type:  str


   .. py:attribute:: detail
      :type:  str | None
      :value: None



   .. py:attribute:: running
      :type:  bool
      :value: False



   .. py:attribute:: can_cancel
      :type:  bool
      :value: False



   .. py:attribute:: phase
      :type:  str
      :value: 'idle'



   .. py:attribute:: z_axis_min_nm
      :type:  float | None
      :value: None



   .. py:attribute:: z_axis_max_nm
      :type:  float | None
      :value: None



   .. py:attribute:: z_axis_descending
      :type:  bool
      :value: False



.. py:class:: UpdateZLUTGenerationProgressCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: current_step
      :type:  int


   .. py:attribute:: total_steps
      :type:  int


   .. py:attribute:: capture_count
      :type:  int


   .. py:attribute:: capture_capacity
      :type:  int


   .. py:attribute:: motor_z_value
      :type:  float | None
      :value: None



.. py:class:: UpdateZLUTGenerationEvaluationCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: active
      :type:  bool


   .. py:attribute:: bead_ids
      :type:  list[int]


   .. py:attribute:: selected_bead_id
      :type:  int | None
      :value: None



.. py:class:: SelectGeneratedZLUTBeadCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: bead_id
      :type:  int


.. py:class:: SaveGeneratedZLUTCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: filepath
      :type:  str


   .. py:attribute:: bead_id
      :type:  int


   .. py:attribute:: load_after_save
      :type:  bool
      :value: True



.. py:class:: CancelGeneratedZLUTEvaluationCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


.. py:class:: RequestProfileLengthCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


.. py:class:: ReportProfileLengthCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: profile_length
      :type:  int | None
      :value: None



.. py:class:: RequestZLUTProfileLengthCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: bead_ids
      :type:  tuple[int, Ellipsis]
      :value: ()



   .. py:attribute:: bead_rois
      :type:  tuple[tuple[int, int, int, int], Ellipsis]
      :value: ()



.. py:class:: ReportZLUTProfileLengthCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: profile_length
      :type:  int | None
      :value: None



.. py:class:: ClearPendingZLUTProfileLengthCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


.. py:class:: ArmZLUTSweepCaptureCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: step_index
      :type:  int


   .. py:attribute:: motor_z_value
      :type:  float


   .. py:attribute:: remaining_profiles_per_bead
      :type:  int


   .. py:attribute:: earliest_timestamp
      :type:  float


   .. py:attribute:: bead_ids
      :type:  tuple[int, Ellipsis]
      :value: ()



   .. py:attribute:: bead_rois
      :type:  tuple[tuple[int, int, int, int], Ellipsis]
      :value: ()



.. py:class:: DisarmZLUTSweepCaptureCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


.. py:class:: ZLUTSweepCaptureCompleteCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: step_index
      :type:  int


   .. py:attribute:: written_count
      :type:  int


   .. py:attribute:: written_profiles_per_bead
      :type:  int


   .. py:attribute:: error
      :type:  str | None
      :value: None



.. py:class:: RemoveBeadFromPendingMovesCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: id
      :type:  int


.. py:class:: RemoveBeadsFromPendingMovesCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: ids
      :type:  list[int]


.. py:class:: SetXYLockOnCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  bool


.. py:class:: ExecuteXYLockCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: now
      :type:  float | None
      :value: None



.. py:class:: SetXYLockIntervalCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: SetXYLockMaxCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: SetXYLockWindowCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  int


.. py:class:: SetZLockOnCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  bool


.. py:class:: SetZLockBeadCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  int


.. py:class:: SetZLockTargetCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: SetZLockIntervalCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: SetZLockMaxCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  float


.. py:class:: SetZLockWindowCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: value
      :type:  int


.. py:class:: GetCameraSettingCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: name
      :type:  str


.. py:class:: SetCameraSettingCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: name
      :type:  str


   .. py:attribute:: value
      :type:  str


.. py:class:: LoadScriptCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: path
      :type:  str


.. py:class:: StartScriptCommand

   Bases: :py:obj:`Command`


   Start the currently loaded script.


.. py:class:: PauseScriptCommand

   Bases: :py:obj:`Command`


   Pause the running script.


.. py:class:: ResumeScriptCommand

   Bases: :py:obj:`Command`


   Resume a paused script.


.. py:class:: SleepCommand

   Bases: :py:obj:`Command`


   Typed IPC payload sent between processes.


   .. py:attribute:: duration
      :type:  float


.. py:class:: UpdateWaitingCommand

   Bases: :py:obj:`Command`


   Signal that a wait condition has been satisfied.


