MMDevice 70
Public Member Functions | Static Public Attributes | List of all members
MM::XYStage Class Referenceabstract

Dual axis stage API. More...

#include <MMDevice.h>

Inheritance diagram for MM::XYStage:
MM::Device CDeviceBase< MM::XYStage, U > CXYStageBase< U >

Public Member Functions

virtual DeviceType GetType () const
 
virtual int SetPositionUm (double x, double y)=0
 
virtual int SetRelativePositionUm (double dx, double dy)=0
 
virtual int SetAdapterOriginUm (double x, double y)=0
 
virtual int GetPositionUm (double &x, double &y)=0
 
virtual int GetLimitsUm (double &xMin, double &xMax, double &yMin, double &yMax)=0
 
virtual int Move (double vx, double vy)=0
 
virtual int SetPositionSteps (long x, long y)=0
 
virtual int GetPositionSteps (long &x, long &y)=0
 
virtual int SetRelativePositionSteps (long x, long y)=0
 
virtual int Home ()=0
 
virtual int Stop ()=0
 
virtual int UsesOnXYStagePositionChanged (bool &result) const =0
 XY stages can use the OnXYStagePositionChanged callback to signal updates about their position. Some stage adapters do so, others do not, in which case the UI code can use polling. This function signals whether the device adapters uses callbacks, so that the UI knows it does not need to poll this device. It is best practice to not change the result of this function (i.e. use a const value) as the UI will query the function only once.
 
virtual int SetOrigin ()=0
 Define the current position as the (hardware) origin (0, 0).
 
virtual int SetXOrigin ()=0
 Define the current position as X = 0 (in hardware if possible).
 
virtual int SetYOrigin ()=0
 Define the current position as Y = 0 (in hardware if possible).
 
virtual int GetStepLimits (long &xMin, long &xMax, long &yMin, long &yMax)=0
 
virtual double GetStepSizeXUm ()=0
 
virtual double GetStepSizeYUm ()=0
 
virtual int IsXYStageSequenceable (bool &isSequenceable) const =0
 Return whether a stage can be sequenced (synchronized by TTLs).
 
virtual int GetXYStageSequenceMaxLength (long &nrEvents) const =0
 
virtual int StartXYStageSequence ()=0
 
virtual int StopXYStageSequence ()=0
 
virtual int ClearXYStageSequence ()=0
 Remove all values in the sequence.
 
virtual int AddToXYStageSequence (double positionX, double positionY)=0
 Add one value to the sequence.
 
virtual int SendXYStageSequence ()=0
 Signal that we are done sending sequence values so that the adapter can send the whole sequence to the device.
 
- 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
 Check whether the given property can be used with sequences.
 
virtual int GetPropertySequenceMaxLength (const char *propertyName, long &nrEvents) const =0
 Return the largest sequence that can be stored in the device.
 
virtual int StartPropertySequence (const char *propertyName)=0
 Start execution of the sequence.
 
virtual int StopPropertySequence (const char *propertyName)=0
 Stop execution of the sequence.
 
virtual int ClearPropertySequence (const char *propertyName)=0
 Remove previously added sequence.
 
virtual int AddToPropertySequence (const char *propertyName, const char *value)=0
 Add one value to the sequence.
 
virtual int SendPropertySequence (const char *propertyName)=0
 Signal that we are done sending sequence values so that the adapter can send the whole sequence to the device.
 
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 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
 Shut down (unload) the device.
 
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 = XYStageDevice
 

Detailed Description

Dual axis stage API.

Member Function Documentation

◆ AddToXYStageSequence()

virtual int MM::XYStage::AddToXYStageSequence ( double  positionX,
double  positionY 
)
pure virtual

Add one value to the sequence.

Implemented in CXYStageBase< U >.

◆ ClearXYStageSequence()

virtual int MM::XYStage::ClearXYStageSequence ( )
pure virtual

Remove all values in the sequence.

Implemented in CXYStageBase< U >.

◆ GetType()

virtual DeviceType MM::XYStage::GetType ( ) const
inlinevirtual

Implements MM::Device.

◆ IsXYStageSequenceable()

virtual int MM::XYStage::IsXYStageSequenceable ( bool &  isSequenceable) const
pure virtual

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

If returning true, then an XYStage class should also inherit the SequenceableXYStage class and implement its methods.

◆ SendXYStageSequence()

virtual int MM::XYStage::SendXYStageSequence ( )
pure virtual

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

Implemented in CXYStageBase< U >.

◆ SetAdapterOriginUm()

virtual int MM::XYStage::SetAdapterOriginUm ( double  x,
double  y 
)
pure virtual

Implemented in CXYStageBase< U >.

◆ SetRelativePositionSteps()

virtual int MM::XYStage::SetRelativePositionSteps ( long  x,
long  y 
)
pure virtual

Implemented in CXYStageBase< U >.

◆ SetRelativePositionUm()

virtual int MM::XYStage::SetRelativePositionUm ( double  dx,
double  dy 
)
pure virtual

Implemented in CXYStageBase< U >.

◆ SetXOrigin()

virtual int MM::XYStage::SetXOrigin ( )
pure virtual

Define the current position as X = 0 (in hardware if possible).

Do not alter the Y coordinates.

Implemented in CXYStageBase< U >.

◆ SetYOrigin()

virtual int MM::XYStage::SetYOrigin ( )
pure virtual

Define the current position as Y = 0 (in hardware if possible).

Do not alter the X coordinates.

Implemented in CXYStageBase< U >.

◆ UsesOnXYStagePositionChanged()

virtual int MM::XYStage::UsesOnXYStagePositionChanged ( bool &  result) const
pure virtual

XY stages can use the OnXYStagePositionChanged callback to signal updates about their position. Some stage adapters do so, others do not, in which case the UI code can use polling. This function signals whether the device adapters uses callbacks, so that the UI knows it does not need to poll this device. It is best practice to not change the result of this function (i.e. use a const value) as the UI will query the function only once.

Implemented in CXYStageBase< U >.


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