|
MMDevice 70
|
Single axis stage API. More...
#include <MMDevice.h>
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 | UsesOnStagePositionChanged (bool &result) const =0 |
| Stages can use the OnStagePositionChanged callback to signal updates about their position. Some adapters do so, others do not, in which case the UI code should 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 | GetFocusDirection (FocusDirection &direction)=0 |
| Return the focus direction. | |
| virtual int | IsStageSequenceable (bool &isSequenceable) const =0 |
| Indicate whether the stage can be sequenced (synchronized by TTLs). | |
| virtual int | IsStageLinearSequenceable (bool &isSequenceable) const =0 |
| Indicate whether the stage can perform linear TTL sequencing. | |
| virtual bool | IsContinuousFocusDrive () const =0 |
| virtual int | GetStageSequenceMaxLength (long &nrEvents) const =0 |
| virtual int | StartStageSequence ()=0 |
| virtual int | StopStageSequence ()=0 |
| virtual int | ClearStageSequence ()=0 |
| Remove all values in the sequence. | |
| virtual int | AddToStageSequence (double position)=0 |
| Add one value to the sequence. | |
| virtual int | SendStageSequence ()=0 |
| Signal that we are done sending sequence values so that the adapter can send the whole sequence to the device. | |
| virtual int | SetStageLinearSequence (double dZ_um, long nSlices)=0 |
| Set up to perform an equally-spaced triggered Z stack. | |
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 = StageDevice |
Single axis stage API.
|
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.
|
inlinevirtual |
Implements MM::Device.
|
pure virtual |
Indicate 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().
|
pure virtual |
Indicate whether the stage can be sequenced (synchronized by TTLs).
If true, the following methods must be implemented: GetStageSequenceMaxLength(), StartStageSequence(), StopStageSequence(), ClearStageSequence(), AddToStageSequence(), and SendStageSequence().
|
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.