MMDevice  1.4
Public Member Functions | Static Public Attributes | List of all members
MM::Stage Class Referenceabstract

#include <MMDevice.h>

Inheritance diagram for MM::Stage:
MM::Device CDeviceBase< MM::Stage, U > CStageBase< U >

Public Member Functions

virtual DeviceType GetType () const
 
virtual int SetPositionUm (double pos)=0
 
virtual int SetRelativePositionUm (double d)=0
 
virtual int Move (double velocity)=0
 
virtual int Stop ()=0
 
virtual int Home ()=0
 
virtual int SetAdapterOriginUm (double d)=0
 
virtual int GetPositionUm (double &pos)=0
 
virtual int SetPositionSteps (long steps)=0
 
virtual int GetPositionSteps (long &steps)=0
 
virtual int SetOrigin ()=0
 
virtual int GetLimits (double &lower, double &upper)=0
 
virtual int GetFocusDirection (FocusDirection &direction)=0
 Return the focus direction. More...
 
virtual int IsStageSequenceable (bool &isSequenceable) const =0
 
virtual int IsStageLinearSequenceable (bool &isSequenceable) const =0
 
virtual bool IsContinuousFocusDrive () const =0
 
virtual int GetStageSequenceMaxLength (long &nrEvents) const =0
 
virtual int StartStageSequence ()=0
 
virtual int StopStageSequence ()=0
 
virtual int ClearStageSequence ()=0
 
virtual int AddToStageSequence (double position)=0
 
virtual int SendStageSequence ()=0
 
virtual int SetStageLinearSequence (double dZ_um, long nSlices)=0
 
- Public Member Functions inherited from MM::Device
virtual unsigned GetNumberOfProperties () const =0
 
virtual int GetProperty (const char *name, char *value) const =0
 
virtual int SetProperty (const char *name, const char *value)=0
 
virtual bool HasProperty (const char *name) const =0
 
virtual bool GetPropertyName (unsigned idx, char *name) const =0
 
virtual int GetPropertyReadOnly (const char *name, bool &readOnly) const =0
 
virtual int GetPropertyInitStatus (const char *name, bool &preInit) const =0
 
virtual int HasPropertyLimits (const char *name, bool &hasLimits) const =0
 
virtual int GetPropertyLowerLimit (const char *name, double &lowLimit) const =0
 
virtual int GetPropertyUpperLimit (const char *name, double &hiLimit) const =0
 
virtual int GetPropertyType (const char *name, MM::PropertyType &pt) const =0
 
virtual unsigned GetNumberOfPropertyValues (const char *propertyName) const =0
 
virtual bool GetPropertyValueAt (const char *propertyName, unsigned index, char *value) const =0
 
virtual int IsPropertySequenceable (const char *name, bool &isSequenceable) const =0
 
virtual int GetPropertySequenceMaxLength (const char *propertyName, long &nrEvents) const =0
 
virtual int StartPropertySequence (const char *propertyName)=0
 
virtual int StopPropertySequence (const char *propertyName)=0
 
virtual int ClearPropertySequence (const char *propertyName)=0
 
virtual int AddToPropertySequence (const char *propertyName, const char *value)=0
 
virtual int SendPropertySequence (const char *propertyName)=0
 
virtual bool GetErrorText (int errorCode, char *errMessage) const =0
 
virtual bool Busy ()=0
 
virtual double GetDelayMs () const =0
 
virtual void SetDelayMs (double delay)=0
 
virtual bool UsesDelay ()=0
 
virtual HDEVMODULE GetModuleHandle () const =0
 
virtual void SetModuleHandle (HDEVMODULE hLibraryHandle)=0
 
virtual void SetLabel (const char *label)=0
 
virtual void GetLabel (char *name) const =0
 
virtual void SetModuleName (const char *moduleName)=0
 
virtual void GetModuleName (char *moduleName) const =0
 
virtual void SetDescription (const char *description)=0
 
virtual void GetDescription (char *description) const =0
 
virtual int Initialize ()=0
 
virtual int Shutdown ()=0
 
virtual void GetName (char *name) const =0
 
virtual void SetCallback (Core *callback)=0
 
virtual bool SupportsDeviceDetection (void)=0
 
virtual MM::DeviceDetectionStatus DetectDevice (void)=0
 
virtual void SetParentID (const char *parentId)=0
 
virtual void GetParentID (char *parentID) const =0
 

Static Public Attributes

static const DeviceType Type = StageDevice
 

Detailed Description

Single axis stage API

Member Function Documentation

◆ AddToStageSequence()

virtual int MM::Stage::AddToStageSequence ( double  position)
pure virtual

Add one value to the sequence

◆ ClearStageSequence()

virtual int MM::Stage::ClearStageSequence ( )
pure virtual

Remove all values in the sequence

◆ GetFocusDirection()

virtual int MM::Stage::GetFocusDirection ( FocusDirection &  direction)
pure virtual

Return the focus direction.

Indicates whether increasing position corresponds to movement in the direction that brings the objective and sample closer together.

Unless the direction is known for sure (does not depend on e.g. how the hardware is installed), this function must return FocusDirectionUnknown (the application can allow the user to specify the direction as needed).

Non-focus single-axis stages must also return FocusDirectionUnknown.

◆ IsStageLinearSequenceable()

virtual int MM::Stage::IsStageLinearSequenceable ( bool &  isSequenceable) const
pure virtual

Indicates whether the stage can perform linear TTL sequencing.

Linear sequencing uses a delta and count instead of an arbitrary list of positions.

If true, the following methods must be implemented: SetStageLinearSequence(), StartStageSequence(), StopStageSequence().

◆ IsStageSequenceable()

virtual int MM::Stage::IsStageSequenceable ( bool &  isSequenceable) const
pure virtual

Indicates whether a stage can be sequenced (synchronized by TTLs).

If true, the following methods must be implemented: GetStageSequenceMaxLength(), StartStageSequence(), StopStageSequence(), ClearStageSequence(), AddToStageSequence(), and SendStageSequence().

◆ SendStageSequence()

virtual int MM::Stage::SendStageSequence ( )
pure virtual

Signal that we are done sending sequence values so that the adapter can send the whole sequence to the device

◆ SetStageLinearSequence()

virtual int MM::Stage::SetStageLinearSequence ( double  dZ_um,
long  nSlices 
)
pure virtual

Set up to perform an equally-spaced triggered Z stack.

After calling this function, StartStageSequence() must cause the stage to step by dZ_um on each trigger. On the Nth trigger, the stage must return to the position where it was when StartStageSequence() was called.


The documentation for this class was generated from the following files: