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

ADC and DAC interface. More...

#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
 Indicate whether or not this DA device accepts sequences.
 
virtual int GetDASequenceMaxLength (long &nrEvents) const =0
 Return the maximum length of a sequence that the hardware can store.
 
virtual int StartDASequence ()=0
 Start running a sequence (i.e., start switching between voltages sent previously, triggered by a TTL).
 
virtual int StopDASequence ()=0
 Stop running the sequence.
 
virtual int ClearDASequence ()=0
 Clear the DA sequence from the device and the adapter.
 
virtual int AddToDASequence (double voltage)=0
 Add a new data point (voltage) to the sequence.
 
virtual int SendDASequence ()=0
 Send the complete 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 = SignalIODevice
 

Detailed Description

ADC and DAC interface.

Member Function Documentation

◆ AddToDASequence()

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

Add 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

Clear 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

Return the maximum length of a sequence that the hardware can store.

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

◆ GetType()

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

Implements MM::Device.

◆ IsDASequenceable()

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

Indicate 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

Send the complete sequence to the device.

If the individual data points were already sent to the device, there is nothing to be done.

Returns
errorcode (DEVICE_OK if no error)

◆ StartDASequence()

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

Start running a sequence (i.e., start switching between voltages sent previously, triggered by a TTL).

Returns
errorcode (DEVICE_OK if no error)

◆ StopDASequence()

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

Stop running the sequence.

Returns
errorcode (DEVICE_OK if no error)

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