|
MMDevice 70
|
Volumetric Pump API. More...
#include <MMDevice.h>
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 |
Volumetric Pump API.
|
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.
|
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.
|
pure virtual |
Get the flowrate in microliter (uL) per second.
Required function of VolumetricPump API.
|
pure virtual |
Get the maximum volume of the pump in microliters (uL).
Required function of VolumetricPump API.
|
inlinevirtual |
Implements MM::Device.
|
pure virtual |
Get the current volume of the pump in microliters (uL).
Required function of VolumetricPump API.
|
pure virtual |
Home the pump.
If no homing is supported, just return DEVICE_UNSUPPORTED_COMMAND.
Optional function of VolumetricPump API.
|
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.
|
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.
|
pure virtual |
Check whether the pump requires homing before being operational.
Required function of VolumetricPump API.
|
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.
|
pure virtual |
Set the maximum volume of the pump in microliters (uL).
Required function of VolumetricPump API.
|
pure virtual |
Set the current volume of the pump in microliters (uL).
Required function of VolumetricPump API.
|
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.
|
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.