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

#include <MMDevice.h>

Inheritance diagram for MM::SignalIO:
MM::Device CDeviceBase< MM::SignalIO, U > CSignalIOBase< U >

Public Member Functions

virtual DeviceType GetType () const
 
virtual int SetGateOpen (bool open=true)=0
 
virtual int GetGateOpen (bool &open)=0
 
virtual int SetSignal (double volts)=0
 
virtual int GetSignal (double &volts)=0
 
virtual int GetLimits (double &minVolts, double &maxVolts)=0
 
virtual int IsDASequenceable (bool &isSequenceable) const =0
 
virtual int GetDASequenceMaxLength (long &nrEvents) const =0
 
virtual int StartDASequence ()=0
 
virtual int StopDASequence ()=0
 
virtual int ClearDASequence ()=0
 
virtual int AddToDASequence (double voltage)=0
 
virtual int SendDASequence ()=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 = SignalIODevice
 

Detailed Description

ADC and DAC interface.

Member Function Documentation

◆ AddToDASequence()

virtual int MM::SignalIO::AddToDASequence ( double  voltage)
pure virtual

Adds a new data point (voltage) to the sequence The data point can either be added to a representation of the sequence in the adapter, or it can be directly written to the device

Returns
errorcode (DEVICE_OK if no error)

◆ ClearDASequence()

virtual int MM::SignalIO::ClearDASequence ( )
pure virtual

Clears the DA sequence from the device and the adapter. If this functions is not called in between running two sequences, it is expected that the same sequence will run twice. To upload a new sequence, first call this functions, then call AddToDASequence(double voltage) as often as needed.

Returns
errorcode (DEVICE_OK if no error)

◆ GetDASequenceMaxLength()

virtual int MM::SignalIO::GetDASequenceMaxLength ( long &  nrEvents) const
pure virtual

Returns the maximum length of a sequence that the hardware can store

Parameters
nrEventsmax length of sequence
Returns
errorcode (DEVICE_OK if no error)

◆ IsDASequenceable()

virtual int MM::SignalIO::IsDASequenceable ( bool &  isSequenceable) const
pure virtual

Lets the UI know whether or not this DA device accepts sequences If the device is sequenceable, it is usually best to add a property through which the user can set "isSequenceable", since only the user knows whether the device is actually connected to a trigger source. If isDASequenceable returns true, the device adapter must also inherit the SequenceableDA class and provide method implementations.

Parameters
isSequenceablesignals whether other sequence functions will work
Returns
errorcode (DEVICE_OK if no error)

◆ SendDASequence()

virtual int MM::SignalIO::SendDASequence ( )
pure virtual

Sends the complete sequence to the device If the individual data points were already send to the device, there is nothing to be done.

Returns
errorcode (DEVICE_OK if no error)

◆ StartDASequence()

virtual int MM::SignalIO::StartDASequence ( )
pure virtual

Tells the device to start running a sequence (i.e. start switching between voltages send previously, triggered by a TTL

Returns
errorcode (DEVICE_OK if no error)

◆ StopDASequence()

virtual int MM::SignalIO::StopDASequence ( )
pure virtual

Tells the device to stop running the sequence

Returns
errorcode (DEVICE_OK if no error)

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