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

#include <MMDevice.h>

Inheritance diagram for MM::SLM:
MM::Device CDeviceBase< MM::SLM, U > CSLMBase< U >

Public Member Functions

virtual DeviceType GetType () const
 
virtual int SetImage (unsigned char *pixels)=0
 
virtual int SetImage (unsigned int *pixels)=0
 
virtual int DisplayImage ()=0
 
virtual int SetPixelsTo (unsigned char intensity)=0
 
virtual int SetPixelsTo (unsigned char red, unsigned char green, unsigned char blue)=0
 
virtual int SetExposure (double interval_ms)=0
 
virtual double GetExposure ()=0
 
virtual unsigned GetWidth ()=0
 
virtual unsigned GetHeight ()=0
 
virtual unsigned GetNumberOfComponents ()=0
 
virtual unsigned GetBytesPerPixel ()=0
 
virtual int IsSLMSequenceable (bool &isSequenceable) const =0
 
virtual int GetSLMSequenceMaxLength (long &nrEvents) const =0
 
virtual int StartSLMSequence ()=0
 
virtual int StopSLMSequence ()=0
 
virtual int ClearSLMSequence ()=0
 
virtual int AddToSLMSequence (const unsigned char *const pixels)=0
 
virtual int AddToSLMSequence (const unsigned int *const pixels)=0
 
virtual int SendSLMSequence ()=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
 
 MM_DEPRECATED (virtual HDEVMODULE GetModuleHandle() const)=0
 
 MM_DEPRECATED (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 = SLMDevice
 

Detailed Description

Spatial Ligh Modulator (SLM) API. An SLM is a device that can display images. It is expected to represent a rectangular grid (i.e. it has width and height) of pixels that can be either 8 bit or 32 bit. Illumination (light source on or off) is logically independent of displaying the image. Likely the most widely used implmentation is the GenericSLM.

Member Function Documentation

◆ AddToSLMSequence() [1/2]

virtual int MM::SLM::AddToSLMSequence ( const unsigned char *const  pixels)
pure virtual

Adds a new 8-bit projection image to the sequence. The image can either be added to a representation of the sequence in the adapter, or it can be directly written to the device

Parameters
pixelsAn array of 8-bit pixels whose length matches that expected by the SLM.
Returns
errorcode (DEVICE_OK if no error)

◆ AddToSLMSequence() [2/2]

virtual int MM::SLM::AddToSLMSequence ( const unsigned int *const  pixels)
pure virtual

Adds a new 32-bit (RGB) projection image to the sequence. The image can either be added to a representation of the sequence in the adapter, or it can be directly written to the device

Parameters
pixelsAn array of 32-bit RGB pixels whose length matches that expected by the SLM.
Returns
errorcode (DEVICE_OK if no error)

◆ ClearSLMSequence()

virtual int MM::SLM::ClearSLMSequence ( )
pure virtual

Clears the SLM sequence from the device and the adapter. If this function 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 function, then call AddToSLMSequence(image) as often as needed.

Returns
errorcode (DEVICE_OK if no error)

◆ DisplayImage()

virtual int MM::SLM::DisplayImage ( )
pure virtual

Command the SLM to display the loaded image.

◆ GetBytesPerPixel()

virtual unsigned MM::SLM::GetBytesPerPixel ( )
pure virtual

Get the SLM number of bytes per pixel.

◆ GetExposure()

virtual double MM::SLM::GetExposure ( )
pure virtual

Find out the exposure interval of an SLM.

◆ GetHeight()

virtual unsigned MM::SLM::GetHeight ( )
pure virtual

Get the SLM height in pixels.

◆ GetNumberOfComponents()

virtual unsigned MM::SLM::GetNumberOfComponents ( )
pure virtual

Get the SLM number of components (colors).

◆ GetSLMSequenceMaxLength()

virtual int MM::SLM::GetSLMSequenceMaxLength ( 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)

◆ GetType()

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

Implements MM::Device.

◆ GetWidth()

virtual unsigned MM::SLM::GetWidth ( )
pure virtual

Get the SLM width in pixels.

◆ IsSLMSequenceable()

virtual int MM::SLM::IsSLMSequenceable ( bool &  isSequenceable) const
pure virtual

Lets the core know whether or not this SLM 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 IsSLMSequenceable returns true, the device adapter must also implement the sequencing functions for the SLM.

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

◆ SendSLMSequence()

virtual int MM::SLM::SendSLMSequence ( )
pure virtual

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

Returns
errorcode (DEVICE_OK if no error)

◆ SetExposure()

virtual int MM::SLM::SetExposure ( double  interval_ms)
pure virtual

Command the SLM to turn off after a specified interval.

◆ SetImage() [1/2]

virtual int MM::SLM::SetImage ( unsigned char *  pixels)
pure virtual

Load the image into the SLM device adapter.

◆ SetImage() [2/2]

virtual int MM::SLM::SetImage ( unsigned int *  pixels)
pure virtual

Load a 32-bit image into the SLM device adapter.

◆ SetPixelsTo() [1/2]

virtual int MM::SLM::SetPixelsTo ( unsigned char  intensity)
pure virtual

Command the SLM to display one 8-bit intensity.

◆ SetPixelsTo() [2/2]

virtual int MM::SLM::SetPixelsTo ( unsigned char  red,
unsigned char  green,
unsigned char  blue 
)
pure virtual

Command the SLM to display one 32-bit color.

◆ StartSLMSequence()

virtual int MM::SLM::StartSLMSequence ( )
pure virtual

Tells the device to start running a sequence (i.e. start switching between images sent previously, triggered by a TTL or internal clock).

Returns
errorcode (DEVICE_OK if no error)

◆ StopSLMSequence()

virtual int MM::SLM::StopSLMSequence ( )
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: