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

Volumetric Pump API. More...

#include <MMDevice.h>

Inheritance diagram for MM::VolumetricPump:
MM::Device CDeviceBase< MM::VolumetricPump, U > CVolumetricPumpBase< U >

Public Member Functions

virtual DeviceType GetType () const
 
virtual int Home ()=0
 Home the pump.
 
virtual int Stop ()=0
 Stop the pump.
 
virtual bool RequiresHoming ()=0
 Check whether the pump requires homing before being operational.
 
virtual int InvertDirection (bool inverted)=0
 Set the direction of the pump.
 
virtual int IsDirectionInverted (bool &inverted)=0
 Check whether the direction of the pump is inverted.
 
virtual int SetVolumeUl (double volUl)=0
 Set the current volume of the pump in microliters (uL).
 
virtual int GetVolumeUl (double &volUl)=0
 Get the current volume of the pump in microliters (uL).
 
virtual int SetMaxVolumeUl (double volUl)=0
 Set the maximum volume of the pump in microliters (uL).
 
virtual int GetMaxVolumeUl (double &volUl)=0
 Get the maximum volume of the pump in microliters (uL).
 
virtual int SetFlowrateUlPerSecond (double flowrate)=0
 Set the flowrate in microliter (uL) per second.
 
virtual int GetFlowrateUlPerSecond (double &flowrate)=0
 Get the flowrate in microliter (uL) per second.
 
virtual int Start ()=0
 Start dispensing/withdrawing until the minimum or maximum volume has been reached, or the pumping is manually stopped.
 
virtual int DispenseDurationSeconds (double durSec)=0
 Dispense/withdraw for the provided time.
 
virtual int DispenseVolumeUl (double volUl)=0
 Dispense/withdraw the provided volume.
 
- 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 = VolumetricPumpDevice
 

Detailed Description

Volumetric Pump API.

Member Function Documentation

◆ DispenseDurationSeconds()

virtual int MM::VolumetricPump::DispenseDurationSeconds ( double  durSec)
pure virtual

Dispense/withdraw for the provided time.

Uses the flowrate provided by GetFlowrate_uLperMin. Dispensing for an undetermined amount of time can be done with DBL_MAX. During the dispensing/withdrawal, Busy() should return "true".

Required function of VolumetricPump API.

◆ DispenseVolumeUl()

virtual int MM::VolumetricPump::DispenseVolumeUl ( double  volUl)
pure virtual

Dispense/withdraw the provided volume.

The implementation should cause positive volumes to be dispensed, whereas negative volumes should be withdrawn. The implementation should prevent the volume to go negative (i.e. stop the pump once the syringe is empty), or to go over the maximum volume (i.e. stop the pump once it is full). This automatically allows for dispensing/withdrawal for an undetermined amount of time by providing DBL_MAX for dispense, and DBL_MIN for withdraw.

During the dispensing/withdrawal, Busy() should return "true".

Required function of VolumetricPump API.

◆ GetFlowrateUlPerSecond()

virtual int MM::VolumetricPump::GetFlowrateUlPerSecond ( double &  flowrate)
pure virtual

Get the flowrate in microliter (uL) per second.

Required function of VolumetricPump API.

◆ GetMaxVolumeUl()

virtual int MM::VolumetricPump::GetMaxVolumeUl ( double &  volUl)
pure virtual

Get the maximum volume of the pump in microliters (uL).

Required function of VolumetricPump API.

◆ GetType()

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

Implements MM::Device.

◆ GetVolumeUl()

virtual int MM::VolumetricPump::GetVolumeUl ( double &  volUl)
pure virtual

Get the current volume of the pump in microliters (uL).

Required function of VolumetricPump API.

◆ Home()

virtual int MM::VolumetricPump::Home ( )
pure virtual

Home the pump.

If no homing is supported, just return DEVICE_UNSUPPORTED_COMMAND.

Optional function of VolumetricPump API.

◆ InvertDirection()

virtual int MM::VolumetricPump::InvertDirection ( bool  inverted)
pure virtual

Set the direction of the pump.

Certain pumps (e.g. peristaltic and DC pumps) don't have an apriori forward-reverse direction, as it depends on how it is connected. This function allows you to switch forward and reverse.

If the pump is uni-directional, this function does not need to be implemented (return DEVICE_UNSUPPORTED_COMMAND).

Optional function of VolumetricPump API.

◆ IsDirectionInverted()

virtual int MM::VolumetricPump::IsDirectionInverted ( bool &  inverted)
pure virtual

Check whether the direction of the pump is inverted.

Certain pumps (e.g. peristaltic and DC pumps) don't have an apriori forward-reverse direction, as it depends on how it is connected.

When the pump is uni-directional, this function should always assign false to inverted.

Required function of VolumetricPump API.

◆ RequiresHoming()

virtual bool MM::VolumetricPump::RequiresHoming ( )
pure virtual

Check whether the pump requires homing before being operational.

Required function of VolumetricPump API.

◆ SetFlowrateUlPerSecond()

virtual int MM::VolumetricPump::SetFlowrateUlPerSecond ( double  flowrate)
pure virtual

Set the flowrate in microliter (uL) per second.

The implementation should convert the provided flowrate to whichever unit the pump desires (steps/s, mL/h, V).

Required function of VolumetricPump API.

◆ SetMaxVolumeUl()

virtual int MM::VolumetricPump::SetMaxVolumeUl ( double  volUl)
pure virtual

Set the maximum volume of the pump in microliters (uL).

Required function of VolumetricPump API.

◆ SetVolumeUl()

virtual int MM::VolumetricPump::SetVolumeUl ( double  volUl)
pure virtual

Set the current volume of the pump in microliters (uL).

Required function of VolumetricPump API.

◆ Start()

virtual int MM::VolumetricPump::Start ( )
pure virtual

Start dispensing/withdrawing until the minimum or maximum volume has been reached, or the pumping is manually stopped.

Required function of VolumetricPump API.

◆ Stop()

virtual int MM::VolumetricPump::Stop ( )
pure virtual

Stop the pump.

The implementation should halt any dispensing/withdrawal, and make the pump available again (make Busy() return false).

Required function of VolumetricPump API.


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